Descripción
La aplicación web otterdog evalúa, mediante eval() de Python, una cadena de formato construida a partir del cuerpo JSON del webhook de GitHub entrante. Cuando el valor de configuración GITHUB_WEBHOOK_SECRET no está definido o está vacío (el valor predeterminado en el código es None), la verificación de la firma HMAC se omite por completo, lo que permite que un cliente de red no autenticado alcance el sumidero eval() con entrada controlada por el atacante y ejecute código Python arbitrario en el host de la aplicación web.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- otterdog Afectadas: 0.9.0 y anteriores a 1.3.2 No afectadas: 1.3.2
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en gitlab.eclipse.orggitlab.eclipse.org/security/cve-assignment/-/work_items/554
- Referencia en github.comgithub.com/eclipse-csi/otterdog/security/advisories/GHSA-32xf-7j44-xq…
- Referencia en github.comgithub.com/eclipse-csi/otterdog/commit/bbc9e3ced3665f09fc4632f11b5867…
Ver el texto original en inglés (CVE.org)
[Eclipse CSI - otterdog] Unauthenticated remote code execution via eval() on format-string-injected webhook body when GITHUB_WEBHOOK_SECRET is unset
The otterdog webapp evaluates a format-string built from the incoming GitHub webhook JSON body using Python's eval(). When the GITHUB_WEBHOOK_SECRET configuration value is unset or empty (the code default is None), the HMAC signature check is skipped entirely, allowing an unauthenticated network client to reach the eval() sink with attacker-controlled input and execute arbitrary Python on the webapp host.