// For flags

CVE-2024-25129

Limited data exfiltration in CodeQL CLI

Severity Score

2.7
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

The CodeQL CLI repo holds binaries for the CodeQL command line interface (CLI). Prior to version 2.16.3, an XML parser used by the CodeQL CLI to read various auxiliary files is vulnerable to an XML External Entity attack. If a vulnerable version of the CLI is used to process either a maliciously modified CodeQL database, or a specially prepared set of QL query sources, the CLI can be made to make an outgoing HTTP request to an URL that contains material read from a local file chosen by the attacker. This may result in a loss of privacy of exfiltration of secrets. Security researchers and QL authors who receive databases or QL source files from untrusted sources may be impacted. A single untrusted `.ql` or `.qll` file cannot be affected, but a zip archive or tarball containing QL sources may unpack auxiliary files that will trigger an attack when CodeQL sees them in the file system. Those using CodeQL for routine analysis of source trees with a preselected set of trusted queries are not affected. In particular, extracting XML files from a source tree into the CodeQL database does not make one vulnerable. The problem is fixed in release 2.16.3 of the CodeQL CLI. Other than upgrading, workarounds include not accepting CodeQL databases or queries from untrusted sources, or only processing such material on a machine without an Internet connection. Customers who use older releases of CodeQL for security scanning in an automated CI system and cannot upgrade for compliance reasons can continue using that version. That use case is safe. If such customers have a private query pack and use the `codeql pack create` command to precompile them before using them in the CI system, they should be using the production CodeQL release to run `codeql pack create`. That command is safe as long as the QL source it precompiled is trusted. All other development of the query pack should use an upgraded CLI.

El repositorio de CodeQL CLI contiene archivos binarios para la interfaz de línea de comandos (CLI) de CodeQL. Antes de la versión 2.16.3, un analizador XML utilizado por la CLI de CodeQL para leer varios archivos auxiliares era vulnerable a un ataque de entidad externa XML. Si se utiliza una versión vulnerable de la CLI para procesar una base de datos CodeQL modificada maliciosamente o un conjunto especialmente preparado de fuentes de consulta QL, se puede hacer que la CLI realice una solicitud HTTP saliente a una URL que contenga material leído de un archivo local. elegido por el atacante. Esto puede resultar en una pérdida de privacidad o exfiltración de secretos. Los investigadores de seguridad y los autores de QL que reciben bases de datos o archivos fuente de QL de fuentes que no son de confianza pueden verse afectados. Un único archivo `.ql` o `.qll` que no sea de confianza no puede verse afectado, pero un archivo zip o tarball que contenga fuentes QL puede descomprimir archivos auxiliares que desencadenarán un ataque cuando CodeQL los vea en el sistema de archivos. Aquellos que usan CodeQL para análisis rutinarios de árboles fuente con un conjunto preseleccionado de consultas confiables no se ven afectados. En particular, extraer archivos XML de un árbol fuente a la base de datos CodeQL no lo hace vulnerable. El problema se solucionó en la versión 2.16.3 de CodeQL CLI. Además de actualizar, los workarounds incluyen no aceptar bases de datos CodeQL o consultas de fuentes no confiables, o solo procesar dicho material en una máquina sin conexión a Internet. Los clientes que utilicen versiones anteriores de CodeQL para el escaneo de seguridad en un sistema de CI automatizado y no puedan actualizar por motivos de cumplimiento pueden continuar usando esa versión. Ese caso de uso es seguro. Si dichos clientes tienen un paquete de consultas privado y usan el comando "codeql pack create" para precompilarlos antes de usarlos en el sistema CI, deberían usar la versión de producción de CodeQL para ejecutar "codeql pack create". Ese comando es seguro siempre que se confíe en la fuente QL que precompiló. Todos los demás desarrollos del paquete de consultas deben utilizar una CLI actualizada.

*Credits: N/A
CVSS Scores
Attack Vector
Local
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
None
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-02-05 CVE Reserved
  • 2024-02-22 CVE Published
  • 2024-02-23 EPSS Updated
  • 2024-08-01 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-611: Improper Restriction of XML External Entity Reference
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Github
Search vendor "Github"
Codeql-cli-binaries
Search vendor "Github" for product "Codeql-cli-binaries"
< 2.16.3
Search vendor "Github" for product "Codeql-cli-binaries" and version " < 2.16.3"
en
Affected