
La Apache Software Foundation (ASF) ha publicado actualizaciones de seguridad que abordan varias vulnerabilidades de seguridad en su servidor HTTP, incluida una vulnerabilidad grave que podría conducir a la ejecución remota de código (RCE).
La vulnerabilidad se rastrea como CVE-2026-23918 (puntuación CVSS: 8,8) y se describe como un caso de «RCE doblemente libre y posible» en el procesamiento del protocolo HTTP/2. Este problema afectó al servidor Apache HTTP 2.4.66 y se resolvió 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 pidió un comentario, Dmitruk dijo a The Hacker News por correo electrónico que CVE-2026-23918 es grave porque puede explotarse para provocar una denegación de servicio (DoS) o RCE. Los detalles sobre cómo agregar vulnerabilidades se encuentran a continuación.
CVE-2026-23918 es una doble ruta de limpieza de secuencias gratuita en Apache httpd 2.4.66 mod_http2, específicamente h2_mplx.c. Este error ocurre cuando un cliente envía un RST_STREAM con un código de error distinto de cero inmediatamente después de un marco HTTP/2 HEADERS en la misma secuencia antes de que el multiplexor registre la secuencia.
A continuación, se activan dos devoluciones de llamada nghttp2 en secuencia: on_frame_recv_cb para RST y on_stream_close_cb para cerrar, las cuales finalmente llaman a h2_mplx_c1_client_rst -> m_stream_cleanup y empujan el mismo puntero h2_stream en la matriz de limpieza spurge dos veces. c1_purge_streams luego repite el spurge y llama a h2_stream_destroy -> apr_pool_destroy para cada entrada, la segunda llamada llega a la memoria que ya ha sido liberada.
Dmitruk agregó que DoS es fácil y funciona con la implementación predeterminada usando mod_http2 y MPM multiproceso. La ruta RCE, por otro lado, requiere Apache Portable Runtime (APR) con el asignador mmap, que es el predeterminado en los sistemas derivados de Debian y la imagen oficial httpd de Docker. Dmitruk explicó con más detalle:
El primero es la denegación de servicio. Esto es fácil. Una conexión TCP, dos tramas, sin autenticación, sin encabezados especiales, sin una URL específica y el trabajador falla. Apache lo reaparecerá, pero todas las solicitudes del trabajador bloqueado se descartarán y el patrón puede persistir mientras el atacante siga enviando.
El segundo resultado fue la ejecución remota de código, donde creamos una prueba de concepto que se ejecuta en x86_64. Esta cadena coloca una estructura h2_stream falsa en una dirección virtual liberada por 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 la estructura falsa y la cadena de comando.
El marcador está ubicado en una dirección fija durante la vida del servidor, incluso en ASLR. Esto hace que el camino RCE sea práctico. Se aplican las precauciones habituales. La explotación real requiere que el sistema() y el marcador compensen la fuga de información. La pulverización en montón es estocástica, pero se ejecuta en minutos en un entorno de laboratorio.
Dmitruk también señaló que las prehorquillas de MPM no se ven afectadas por defectos. Sin embargo, los investigadores advirtieron que la superficie de ataque es grande porque mod_http2 viene con compilaciones predeterminadas y HTTP/2 está ampliamente habilitado en entornos de producción. Teniendo en cuenta la gravedad de la falla, recomendamos aplicar las últimas correcciones para una protección óptima.
Source link
