Skip to main content

El plugin plugin-publish vulnerable de Gradle revela información confidencial

Escrito por
prioritize vulns

31 de marzo de 2020

0 minutos de lectura

Hace apenas unos días, el 27 de marzo, se divulgó y publicó una vulnerabilidad de seguridad —CVE-2020-7599— en el plugin plugin-publish de Gradle. Afecta a todas las versiones del paquete anteriores a la 0.11.0. Danny Thomas, de Developer Productivity en Netflix, encontró la vulnerabilidad el 4 de marzo y la reportó de inmediato a Gradle.

Información confidencial

El problema detectado en este paquete es una vulnerabilidad conocida como «Inserción de información confidencial». En este caso particular, el paquete muestra información confidencial en el archivo de registro. Cuando el autor de un plugin publica un plugin de Gradle mediante el plugin de Gradle com.gradle.plugin-publish, se le pasa una URL de AWS prefirmada. Si la compilación de Gradle se ejecuta con --info o un nivel inferior, esta URL se publica en el archivo de registro. Si este registro de compilación es de acceso público, como sucede en muchos sistemas de CI públicos, la URL puede usarse para realizar un ataque malicioso. Danny Thomas muestra un ejemplo de esta filtración de datos en esta compilación de CI pública.

Posible ataque

La URL es válida durante una hora y se puede reutilizar. Esto significa que un atacante podría usarla para reemplazar un plugin que se haya subido recientemente por un paquete malicioso. Tras investigar el problema, Gradle afirma que no se reemplazó ningún artefacto. También es importante señalar que, de forma predeterminada, la URL no aparece en los registros, ya que el nivel de registro predeterminado es LIFECYCLE, según la documentación de Gradle.

Solución

Como respuesta, Gradle lanzó una nueva versión del plugin de publicación que reduce el nivel de registro de la URL. Se recomienda actualizar el plugin plugin-publish a la versión 0.11.0. Además, asegúrate de no ejecutar Gradle con el nivel de registro --debug, ya que este todavía expone la URL. En general, reducir el nivel de registro es muy peligroso cuando los registros son de acceso público. Además de lanzar una versión corregida del plugin, Gradle también redujo la vigencia de la URL prefirmada para acortar el período de exposición al ataque. Lee más en su blog de seguridad.

Empieza con los desafíos de Capture the Flag

Aprende a resolver desafíos de captura la bandera con nuestro taller virtual introductorio a pedido.