Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en la acción CodeQL de GitHub (CVE-2021-32638)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-200 Revelación de información
Fecha de publicación:
25/05/2021
Última modificación:
02/07/2022

Descripción

La acción CodeQL de Github es proporcionada para ejecutar el escaneo de código basado en CodeQL en sistemas CI/CD que no son de GitHub y requiere un token de acceso de GitHub para conectarse a un repositorio de GitHub. El corredor y su documentación sugirieron previamente pasar el token de GitHub como un parámetro command-line al proceso en lugar de leerlo desde un archivo, entrada estándar o una variable de entorno. Este enfoque hizo que el token fuera visible para otros procesos en la misma máquina, por ejemplo, en la salida del comando "ps". Si el sistema de CI expone públicamente la salida de "ps", por ejemplo, al registrar la salida, entonces el token de acceso de GitHub puede ser expuesto más allá del alcance previsto. Los usuarios del corredor CodeQL en sistemas de terceros, que pasan un token de GitHub por medio de la marca "--github-auth", están afectados. Esto se aplica tanto a los usuarios de GitHub.com como a los de GitHub Enterprise. Los usuarios de la Action CodeQL en GitHub Actions no están afectados. El flag "--github-auth" ahora es considerado no seguro y obsoleto. La marca no documentada "--external-repository-token" ha sido eliminada. Para proporcionar de forma segura un token de acceso de GitHub al corredor de CodeQL, los usuarios deben ** hacer una de las siguientes acciones en su lugar **: Usar la marca "--github-auth-stdin" y pasar el token la línea de comando por medio de la entrada estándar O establecer la variable de entorno "GITHUB_TOKEN" para contener el token, luego llame al comando sin pasar el token. La flag anterior permanece presente para compatibilidad con workflows existentes. Si el usuario intenta especificar un token de acceso usando el flag "--github-auth", se presenta una advertencia de desaprobación impresa en el terminal que dirige al usuario a una de las opciones anteriores. Todas las versiones de CodeQL runner codeql-bundle-20210304 en adelante contienen los parches. Recomendamos actualizar a una versión reciente del corredor de CodeQL, almacenar un token el mecanismo de almacenamiento secreto de su sistema de CI y pasar el token al corredor de CodeQL usando "--github-auth-stdin" o la variable de entorno "GITHUB_TOKEN". Si todavía usa el flag anterior, asegúrese de que la salida del proceso, como la de "ps", no se conserve en los registros de CI

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:github:codeql_action:*:*:*:*:*:*:*:* 20210304 (excluyendo)