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

Vulnerabilidad en Gradle (CVE-2021-32751)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-78 Neutralización incorrecta de elementos especiales usados en un comando de sistema operativo (Inyección de comando de sistema operativo)
Fecha de publicación:
20/07/2021
Última modificación:
30/07/2021

Descripción

Gradle es una herramienta de construcción con un enfoque en la automatización de la construcción. En versiones anteriores a la 7.2, los scripts de inicio generados por el plugin `application` y el script `gradlew` son vulnerables a la ejecución de código arbitrario cuando un atacante es capaz de cambiar las variables de entorno del usuario que ejecuta el script. Esto puede afectar a aquellos que utilizan `gradlew` en sistemas tipo Unix o utilizan los scripts generados por Gradle en su aplicación en sistemas tipo Unix. Para que esta vulnerabilidad sea explotable, un atacante debe ser capaz de establecer el valor de determinadas variables de entorno y hacer que esas variables de entorno sean vistas por los scripts vulnerables. Este problema ha sido parcheado en Gradle 7.2 eliminando el uso de `eval` y requiriendo el uso del shell `bash`. Hay algunas soluciones disponibles. Para los sistemas CI/CD que utilizan la herramienta de construcción Gradle, se puede asegurar que los usuarios no confiables no puedan cambiar las variables de entorno para el usuario que ejecuta `gradlew`. Si no se puede actualizar a Gradle 7.2, se puede generar un nuevo script `gradlew` con Gradle 7.2 y utilizarlo para versiones anteriores de Gradle. En las aplicaciones que utilizan scripts de inicio generados por Gradle, se puede asegurar que los usuarios no confiables no puedan cambiar las variables de entorno del usuario que ejecuta el script de inicio. Un script de inicio vulnerable podría ser parcheado manualmente para eliminar el uso de `eval` o el uso de variables de entorno que afectan a la línea de comandos de la aplicación. Si la aplicación es lo suficientemente simple, se puede evitar el uso de los scripts de inicio ejecutando la aplicación directamente con el comando Java

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:gradle:gradle:*:*:*:*:*:*:*:* 7.2 (excluyendo)