Una sola línea HTTP y un atacante se convierte en administrador de tu servidor Git. Eso es lo que permite CVE-2026-20896, una vulnerabilidad crítica en la imagen Docker oficial de Gitea que ya está siendo sondeada activamente en internet. Con una puntuación CVSS de 9.8, este fallo de bypass de autenticación deja al descubierto repositorios privados, secretos y código fuente de miles de instalaciones self-hosted. Si administras Gitea en contenedores, este artículo te interesa (y probablemente deberías actuar hoy mismo).
Qué es CVE-2026-20896 y por qué es tan grave
Gitea es una de las plataformas Git self-hosted más populares por ser ligera, rápida y escrita en Go. Muchos equipos la despliegan mediante su imagen Docker oficial para montar en minutos su propio “GitHub privado”. El problema está precisamente ahí: en cómo viene configurada esa imagen por defecto.
La imagen Docker de Gitea incluía una plantilla app.ini que fijaba de forma predeterminada el valor REVERSE_PROXY_TRUSTED_PROXIES = *. Ese asterisco es un comodín que significa “confía en absolutamente todas las direcciones IP”. El valor seguro documentado debería ser 127.0.0.0/8,::1/128, es decir, confiar únicamente en el propio localhost.
La consecuencia es directa: cuando un administrador activa la autenticación mediante proxy inverso (ENABLE_REVERSE_PROXY_AUTHENTICATION = true) y deja el valor por defecto, cualquier cliente que pueda alcanzar el puerto del contenedor puede enviar una cabecera HTTP X-WEBAUTH-USER y autenticarse como cualquier usuario, sin contraseña ni token.
Cómo funciona el ataque: una cabecera para gobernarlos a todos
El mecanismo es tan sencillo como preocupante. Gitea, al confiar en el proxy inverso, asume que la cabecera X-WEBAUTH-USER ya fue validada por una capa anterior. Pero con el comodín *, esa validación nunca ocurre de verdad.
Un atacante remoto solo necesita construir una petición HTTP e incluir una cabecera como X-WEBAUTH-USER: admin. El servidor la acepta y le concede la sesión de ese usuario. Como explicó el investigador Ali Mustafa (@rz1027), quien descubrió y reportó el fallo: “con auto-registro activado, un nombre de usuario de admin da acceso de admin”. Los objetivos obvios son cuentas como admin o gitea_admin.
El resultado es un compromiso total: acceso a repositorios privados, tokens, claves, pipelines de CI/CD y todo el código fuente alojado. En entornos DevOps, hacerse con el servidor Git es a menudo la llave maestra hacia el resto de la infraestructura.
Versiones afectadas y la solución
El fallo afecta a las imágenes Docker de Gitea anteriores e incluyendo la versión 1.26.2. Se corrigió en la versión 1.26.3, donde se eliminó el comodín * y la autenticación por proxy inverso pasó a ser opt-in (desactivada por defecto). La recomendación es clara: actualiza cuanto antes a 1.26.3 o superior.
Explotación activa: la cuenta atrás ya empezó
Esto no es teórico. La empresa de seguridad cloud Sysdig detectó el primer intento de explotación en la naturaleza 13 días después de la divulgación pública. El primer sondeo provino de una IP de ProtonVPN (159.26.98.241) y, por ahora, se ha mantenido en fase de reconocimiento inicial. Según Michael Clark, director senior de investigación de amenazas en Sysdig, lo detectaron temprano, antes de que avanzara a una explotación real.
El dato que enciende las alarmas: existen alrededor de 6.200 instancias de Gitea expuestas a internet. Cada una que siga sin parchear es un objetivo trivial.
Cómo protegerte ahora mismo
Si no puedes actualizar de inmediato, aplica una mitigación temporal: restringe manualmente el valor de REVERSE_PROXY_TRUSTED_PROXIES a las IPs concretas de tu proxy de confianza, en lugar del comodín *. Además, revisa si realmente necesitas tener ENABLE_REVERSE_PROXY_AUTHENTICATION activado y no expongas el puerto del contenedor directamente a internet: colócalo siempre detrás del proxy autenticador previsto.
Preguntas frecuentes
¿Mi instalación de Gitea está en riesgo?
Estás en riesgo si usas la imagen Docker oficial en versión 1.26.2 o anterior y tienes activada la autenticación por proxy inverso con el valor por defecto REVERSE_PROXY_TRUSTED_PROXIES = *, especialmente si el puerto del contenedor es alcanzable directamente. Actualizar a 1.26.3 elimina el problema de raíz.
¿Cómo sé si me han atacado usando CVE-2026-20896?
Revisa tus logs en busca de peticiones que incluyan la cabecera X-WEBAUTH-USER provenientes de IPs externas o no confiables, así como inicios de sesión inesperados de cuentas administrativas. Cualquier acceso a cuentas como admin o gitea_admin sin la autenticación esperada es una señal de alerta.
¿Basta con actualizar a la versión 1.26.3?
Actualizar corrige la vulnerabilidad, pero si crees que tu instancia estuvo expuesta, deberías además rotar credenciales, tokens y claves SSH, revisar los repositorios en busca de cambios no autorizados y auditar los accesos administrativos. Parchear detiene el ataque; la respuesta a incidentes limpia lo que ya pudo pasar.
Conclusión
CVE-2026-20896 es un recordatorio brutal de que los valores por defecto de una imagen Docker pueden ser una puerta trasera. Un comodín aparentemente inofensivo convirtió miles de servidores Git en blancos triviales para cualquiera con acceso de red. La buena noticia es que la solución existe y es sencilla: actualizar a Gitea 1.26.3 o superior y endurecer la configuración del proxy inverso. En seguridad, la diferencia entre estar a salvo y ser comprometido a veces cabe en una sola línea de configuración. No dejes esa línea al azar.
Fuentes: The Hacker News, BleepingComputer, Security Affairs, Aviso de seguridad de Gitea (GitHub).