CVE-2024-24795: Vulnerabilidad de división de respuesta HTTP (HTTP Response Splitting) en Apache HTTP Server

Apache HTTP Server es uno de los servidores web más utilizados en Internet, frecuentemente empleado como proxy inverso para gestionar y enrutar el tráfico hacia aplicaciones backend. Su estabilidad y rendimiento lo convierten en un componente crítico en muchos entornos empresariales y de alojamiento web.

Esta vulnerabilidad representa un riesgo significativo para las organizaciones que utilizan Apache en una configuración de proxy inverso. Un exploit exitoso permite una desincronización HTTP, un ataque sofisticado que puede conducir a un envenenamiento de la caché web (web cache poisoning) o al secuestro de sesiones. Un atacante podría desfigurar un sitio web, servir contenido malicioso a los usuarios o robar cookies de sesión sensibles para suplantar a usuarios legítimos y acceder a sus datos.

La vulnerabilidad es explotable cuando la aplicación backend, hacia la cual Apache actúa como proxy, presenta un defecto independiente que permite la inyección de encabezados de respuesta. Aunque no existen informes públicos de exploits activos para este CVE específico, la desincronización HTTP es una clase de ataque bien comprendida y existen pruebas de concepto (PoC) públicas, lo que aumenta la probabilidad de una posible explotación futura. Los proxies inversos expuestos a Internet son los que corren mayor riesgo.

ProductoApache HTTP Server
Fecha2025-12-06 12:19:05

Resumen técnico

La causa principal de la CVE-2024-24795 es una validación incorrecta de los encabezados de respuesta HTTP provenientes de las aplicaciones backend, un defecto clasificado como CWE-113: Neutralización inadecuada de secuencias CRLF en encabezados HTTP (‘HTTP Response Splitting’). Cuando funciona como proxy inverso, el servidor Apache no neutraliza correctamente los caracteres de retorno de carro y avance de línea (CRLF) presentes en estos encabezados.

Un atacante puede aprovechar este defecto comprometiendo una aplicación backend para inyectar secuencias CRLF maliciosas en un encabezado de respuesta. La cadena de ataque se articula de la siguiente manera:

  1. Un atacante explota un defecto independiente en una aplicación backend para inyectar un payload que contiene secuencias CRLF (\r\n) en un encabezado de respuesta HTTP.
  2. La aplicación backend envía la respuesta manipulada al proxy inverso Apache.
  3. El servidor Apache vulnerable reenvía esta respuesta sin eliminar los caracteres CRLF.
  4. Los clientes intermedios o las cachés interpretan la secuencia CRLF como el final de una respuesta y el inicio de una segunda respuesta controlada por el atacante. Esto desincroniza la conexión.

Esta desincronización permite a un atacante anteponer una respuesta maliciosa a la siguiente respuesta legítima en la misma conexión TCP, habilitando el envenenamiento de caché o el robo de datos de sesión del siguiente usuario.

Versiones afectadas:

  • Las versiones de Apache HTTP Server anteriores a la 2.4.59 son vulnerables.

Corrección disponible:

  • La vulnerabilidad ha sido corregida en la versión 2.4.59 (y posteriores) de Apache HTTP Server.

Un ejemplo conceptual de un encabezado de respuesta malicioso proveniente de un backend:

HTTP/1.1 200 OK
Injected-Header: value\r\n\r\nHTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length: 50\r\n\r\n<html><body>Malicious Content</body></html>

Recomendaciones

  • Aplicar el parche inmediatamente: actualizar todas las instancias del servidor Apache HTTP a la versión estable más reciente, 2.4.59 o superior, que incluye la corrección para esta vulnerabilidad.

  • Mitigaciones:

  • Reforzar todas las aplicaciones backend para impedir vulnerabilidades de inyección en los encabezados HTTP. Implementar una validación estricta de entradas y codificación de salida para todos los datos controlables por el usuario que se reflejen en los encabezados de respuesta.

  • Si no es posible aplicar el parche de inmediato, configurar un Web Application Firewall (WAF) o un proxy intermedio con reglas estrictas de filtrado CRLF para los encabezados de respuesta HTTP.

  • Búsqueda y monitoreo:

  • Monitorear los registros (logs) de las aplicaciones y del proxy en busca de respuestas inusuales provenientes de los servidores backend. En particular, buscar encabezados de respuesta HTTP que contengan secuencias CRLF codificadas en URL (%0d%0a).

  • Realizar auditorías en los servidores de caché para detectar anomalías, como encabezados Content-Length que no coincidan o contenido inesperado servido para recursos populares. Analizar los logs en busca de informes de respuestas múltiples recibidas para una sola solicitud.

  • Respuesta ante incidentes:

  • Si se sospecha de una intrusión, vaciar inmediatamente todas las cachés web relevantes (tanto del lado del servidor como del cliente, si es posible).

  • Invalidar todas las sesiones de usuario activas para mitigar el riesgo de secuestro de sesión.

  • Aislar los proxies inversos y los servidores backend involucrados para llevar a cabo una investigación forense.

  • Defensa en profundidad:

  • Realizar regularmente evaluaciones de seguridad y revisiones de código en las aplicaciones backend para identificar y corregir defectos de inyección de encabezados.

  • Implementar la segmentación de red para aislar los proxies inversos de los sistemas internos críticos.

[Callforaction-THREAT-Footer]