Desde la 2.4.55, publicada en enero de 2023, hasta la 2.4.70, todas las versiones de Apache HTTP Server con HTTP/2 activado tienen una condición de carrera que puede acabar en ejecución remota de código. La Apache Software Foundation la ha clasificado como crítica (CVE-2026-119618) y la corrige en la 2.4.71, publicada el 11 de noviembre de 2026. La encontraron por separado el escáner de código abierto de Anthropic, que la reportó el 26 de octubre, y el equipo de investigación de vulnerabilidades de Google Cloud, que llegó a ella ocho días después.
Qué falla en mod_http2
El fallo está en la función assign_headers() de mod_http2, el módulo que implementa HTTP/2 en httpd. Varios hilos acceden a un recurso compartido sin la sincronización adecuada y eso corrompe el heap. Según el análisis de Wiz, un atacante remoto y sin autenticar puede convertir esa corrupción en ejecución de código con los privilegios del proceso del servidor web. Cuando Wiz publicó su análisis no había exploit público ni ataques conocidos, pero si dos equipos dieron con ella por su cuenta en ocho días, lo prudente es asumir que otros también lo harán.
Wiz da una idea de la exposición: el 64 % de los entornos cloud que analiza tiene recursos con una versión vulnerable y el 51 % los tiene expuestos a Internet. Esa cifra mira la versión, no la configuración, así que es un techo: solo estás expuesto si HTTP/2 está activo.
¿Estoy afectado?
Hacen falta tres cosas a la vez: una versión entre la 2.4.55 y la 2.4.70, el módulo mod_http2 cargado y h2 (sobre TLS) o h2c (en claro) en la directiva Protocols de algún servidor o virtual host. Por defecto Protocols solo permite http/1.1, así que HTTP/2 es algo que alguien activó a propósito. Si heredaste la configuración de una plantilla, compruébalo igualmente.
apachectl -v # versión
apachectl -M | grep http2 # ¿está cargado http2_module?
grep -RniE '^\s*Protocols' /etc/httpd /etc/apache2 2>/dev/null
# Desde fuera: ¿negocia HTTP/2? (responde "2" si sí)
curl -sI --http2 https://tu-dominio -o /dev/null -w '%{http_version}\n'Si compilas mod_h2 por separado desde GitHub, las versiones afectadas son de la 2.0.8 a la 2.0.42.
Cómo actualizar a la 2.4.71
- Contenedores: la imagen oficial ya publica
httpd:2.4.71,httpd:2.4.71-alpineyhttpd:2.4.71-trixie. Fija la etiqueta con versión en elDockerfileen lugar dehttpd:2.4olatest, para que el cambio quede en el historial y no dependa de cuándo se reconstruya la imagen. - Paquetes de la distribución: Las distribuciones suelen aplicar el parche sobre su propia versión sin cambiar a la 2.4.71. Comprueba el aviso de seguridad de tu distribución para CVE-2026-119618 y no te fíes solo del número que devuelve
apachectl -v. - Compilado desde el código fuente: descarga la 2.4.71 de la página oficial y verifica la firma antes de compilar.
FROM httpd:2.4.71-alpineSi no puedes actualizar hoy, apaga HTTP/2
La mitigación oficial es dejar Protocols http/1.1 y quitar h2 y h2c. La trampa está en que Protocols se define por servidor y por virtual host: cambiarla en httpd.conf no sirve si un <VirtualHost> declara su propio Protocols h2 http/1.1, y en las instalaciones con muchos sitios eso es lo habitual. Revisa todos los ficheros que encuentre el grep de arriba, o directamente deja de cargar mod_http2: la documentación de Apache garantiza que un protocolo no disponible en Protocols simplemente se ignora.
apachectl configtest && apachectl gracefulEl graceful recarga la configuración sin cortar las conexiones abiertas. El coste es pasar a HTTP/1.1 entre el cliente y Apache, con más conexiones por cliente y algo más de latencia en páginas con muchos recursos. Si delante tienes una CDN o un balanceador que habla HTTP/2 con los navegadores, el usuario apenas lo notará.
Las otras dos CVE de la 2.4.71
La versión corrige además CVE-2026-106023 (importante), una desreferencia de puntero nulo en mod_md que tumba el proceso hijo y afecta desde la 2.4.30; y CVE-2026-109163 (baja), un desbordamiento de un byte en la pila de mod_vhost_alias que solo afecta a la 2.4.69 y la 2.4.70. Ninguna de las dos se mitiga desactivando HTTP/2, así que la mitigación es un parche temporal, no un sustituto de la actualización.
Antes de llevarla a producción
- Comprueba la versión real dentro del contenedor o el paquete con el aviso de tu distribución, no solo la etiqueta.
- Pasa
apachectl configtestcon la configuración de producción: la 2.4.71 también cambiamod_remoteip: las listas de proxies de confianza ahora se aplican por virtual host y se combinan con las del servidor principal, con un aviso en el log si ambos las definen. - Repite la prueba con
curl --http2para confirmar que HTTP/2 sigue negociándose si lo has mantenido, o que ya no lo hace si has aplicado la mitigación. - Si apagaste HTTP/2 como medida temporal, apunta cuándo volver a activarlo para no quedarte en HTTP/1.1 por olvido.
Fuentes
- Apache HTTP Server 2.4 vulnerabilities, Apache Software Foundation.
- CHANGES 2.4.71, Apache Software Foundation.
- Critical RCE Vulnerability in Apache HTTP Server, Wiz, 11 de noviembre de 2026.
- Directiva Protocols, documentación de Apache httpd.
- Imagen oficial httpd, Docker Hub.