La Apache Software Foundation (ASF) ha publicado actualizaciones de seguridad para abordar varias vulnerabilidades de seguridad en el servidor HTTP, incluida una vulnerabilidad grave que podría conducir a la ejecución remota de código (RCE).
La vulnerabilidad, rastreada como CVE-2026-23918 (puntuación CVSS: 8,8), ha sido descrita como un caso de “doble RCE libre y posible” en el manejo del protocolo HTTP/2. Este problema afecta al servidor Apache HTTP 2.4.66 y se solucionó en la versión 2.4.67.
Al cofundador de Striga.ai, Bartlomiej Dmitruk, y al investigador de ISEC.pl, Stanislaw Strzalkowski, se les atribuye el descubrimiento y el informe de la vulnerabilidad.
Cuando se le contactó para hacer comentarios, Dmitruk le dijo a The Hacker News por correo electrónico que la gravedad de CVE-2026-23918 es crítica, ya que puede explotarse para lograr denegación de servicio (DoS) y RCE. Los detalles adicionales de la vulnerabilidad se encuentran a continuación:
CVE-2026-23918 es un doble libre en Apache httpd 2.4.66 mod_http2, específicamente en la ruta de limpieza de flujo de h2_mplx.c. El error se activa cuando un cliente envía una trama HTTP/2 HEADERS seguida inmediatamente por RST_STREAM con un código de error distinto de cero en la misma secuencia, antes de que el multiplexor haya registrado la secuencia.
Luego se activan dos devoluciones de llamada nghttp2 en secuencia, on_frame_recv_cb para el RST y on_stream_close_cb para el cierre, y ambos terminan llamando a h2_mplx_c1_client_rst -> m_stream_cleanup, que empuja el mismo puntero h2_stream a la matriz de limpieza spurge dos veces. Cuando c1_purge_streams luego itera spurge y llama a h2_stream_destroy -> apr_pool_destroy en cada entrada, la segunda llamada llega a la memoria que ya ha sido liberada.
El DoS, añadió Dmitruk, es trivial y funciona en cualquier implementación predeterminada con mod_http2 y un MPM multiproceso, mientras que la ruta RCE requiere un Apache Portable Runtime (APR) con el asignador mmap, que es el predeterminado en los sistemas derivados de Debian y en la imagen oficial de httpd Docker. Dmitruk explicó con más detalle:
La primera es la denegación de servicio, que es trivial: una conexión TCP, dos tramas, sin autenticación, sin encabezados especiales, sin una URL específica y el trabajador falla. Apache lo reaparece, pero todas las solicitudes del trabajador bloqueado se descartan y el patrón puede mantenerse mientras el atacante siga enviando.
El segundo resultado es la ejecución remota de código y creamos una prueba de concepto funcional en x86_64. La cadena coloca una estructura h2_stream falsa en la dirección virtual liberada mediante la reutilización de mmap, apunta su función de limpieza del grupo a system() y utiliza la memoria del marcador de Apache como un contenedor estable para las estructuras falsas y la cadena de comando.
El marcador se encuentra en una dirección fija durante toda la vida útil del servidor, incluso con ASLR, que es lo que hace que la ruta RCE sea práctica. Se aplican las advertencias habituales: la explotación práctica requiere una fuga de información para el sistema() y las compensaciones del marcador, y la pulverización del montón es probabilística, pero en condiciones de laboratorio la ejecución se realiza en minutos.
Dmitruk también señaló que la falla no afecta la prefork MPM. Sin embargo, el investigador advirtió que la superficie de ataque es grande ya que mod_http2 se incluye en versiones predeterminadas y HTTP/2 está ampliamente habilitado en implementaciones de producción. Dada la gravedad de la falla, se recomienda a los usuarios que apliquen las últimas soluciones para una protección óptima.



