Vulnerabilidad “HollowByte” en OpenSSL Permite DoS con Cargas Útiles de 11 Bytes (Parche Silencioso) 

Se ha descubierto una vulnerabilidad crítica de Denegación de Servicio (DoS) en OpenSSL, denominada “HollowByte”. El fallo permite a un atacante remoto no autenticado colapsar servidores y agotar la memoria del sistema utilizando una carga útil maliciosa de apenas 11 bytes. Esta vulnerabilidad fue parcheada de forma “silenciosa” por los mantenedores de OpenSSL como una mejora de código, sin emitir un identificador CVE formal, lo que significa que las herramientas de escaneo de vulnerabilidades estándar no alertarán a los equipos de TI sobre este riesgo. 


Veredicto Analítico 
  • Estado: Confirmado y parcheado silenciosamente. Las correcciones han sido fusionadas en el código base de OpenSSL a través de los pull requests #30792, #30793 y #30794. 
  • Confianza: Absoluta. Validado por la investigación ofensiva de un equipo de seguridad y los parches aplicados en el repositorio oficial de OpenSSL. 
  • Riesgo para SOC, TDIR y Redes: Alto (Riesgo Crítico para la Disponibilidad). OpenSSL es el pilar de cifrado subyacente para servidores web (NGINX, Apache), bases de datos (MySQL, PostgreSQL) y entornos de ejecución de lenguajes (Node.js, Python, Ruby, PHP). Un atacante puede provocar caídas generalizadas por falta de memoria (Out-of-Memory / OOM) evadiendo los límites de conexión tradicionales. 
  • Urgencia Operativa: Alta. Dado que no existe un CVE que dispare alertas automatizadas, la gestión de la actualización debe ser impulsada proactivamente por los equipos de infraestructura y seguridad. 
  • Base del Veredicto: Deficiencia en la máquina de estados TLS de OpenSSL que realiza preasignaciones masivas de memoria basadas en la declaración del tamaño del paquete del atacante antes de recibir los datos reales, combinado con un comportamiento de fragmentación en el gestor de memoria de Linux (glibc). 

Hallazgos Clave 
  • Vulnerabilidad Identificada: “HollowByte” (Denegación de Servicio por Agotamiento de Memoria – Sin CVE asignado). 
  • Versiones Seguras: OpenSSL v4.0.1. También se han lanzado parches retrocompatibles para las versiones 3.6.3, 3.5.7, 3.4.6 y 3.0.21. 
  • Impacto en Pruebas: En servidores con NGINX, ráfagas de este ataque lograron congelar 547 MB de memoria en entornos de 1 GB de RAM (provocando el bloqueo por OOM), e inmovilizaron el 25% de la memoria en sistemas con 16 GB, todo esto sin superar los umbrales de limitación de conexiones (rate-limiting). 

Análisis Técnico: Mecanismo de Explotación 

La explotación de HollowByte se basa en abusar de la confianza ciega del protocolo de enlace y la gestión de memoria subyacente del sistema operativo: 

  • La Petición (El Engaño): El ataque se inicia durante el protocolo de enlace (Handshake) TLS. El atacante envía un mensaje ClientHello mínimo (11 bytes) con un encabezado manipulado que declara un tamaño de cuerpo de mensaje entrante extremadamente grande. 
  • Asignación a Ciegas: Las versiones vulnerables de OpenSSL leen el encabezado y ejecutan inmediatamente la función malloc() para asignar el búfer de recepción (hasta 131 KB por paquete), confiando en la longitud declarada sin validar si los datos realmente llegaron. El hilo del servidor queda bloqueado esperando datos inexistentes. 
  • Fragmentación Glacial (glibc): Cuando la conexión de ataque finalmente se interrumpe (o el atacante la corta), OpenSSL libera el búfer. Sin embargo, el gestor de memoria glibc de Linux no devuelve inmediatamente estas asignaciones al sistema operativo; las retiene para reutilizarlas. 
  • Colapso del Sistema (OOM): Al enviar oleadas continuas de conexiones con tamaños de declaración aleatorios, el atacante impide que el asignador de memoria reutilice los fragmentos liberados. Esto provoca un aumento continuo y permanente del Tamaño del Conjunto Residente (RSS – memoria RAM física ocupada), que no se vacía ni siquiera cuando el atacante se desconecta. El servidor termina colapsando (OOM Crash). 

Tácticas, Técnicas y Procedimientos (MITRE ATT&CK) 
  • Impacto: Denegación de Servicio en el Endpoint / Agotamiento de Recursos (Resource Exhaustion – T1499.002) enfocándose en la fragmentación de la memoria a nivel de aplicación. 
  • Impacto: Denegación de Servicio de Red (Network Denial of Service – T1498). 

Recomendaciones Operativas 

Para Administración de Redes, Servidores y Desarrollo (Acción Prioritaria) 

  • Actualización Proactiva (Core): Desplegar inmediatamente la versión 4.0.1 de OpenSSL o las versiones retrocompatibles correspondientes a la rama utilizada en su infraestructura (3.6.3, 3.5.7, 3.4.6 o 3.0.21). El parche introduce un “crecimiento incremental del búfer”, expandiendo la memoria solo a medida que llegan los bytes físicos a la tarjeta de red. 
  • Auditoría de Entornos Runtimes: Mapear y actualizar las dependencias de los entornos de ejecución (Node.js, Python, Ruby, PHP). Actualizar el OpenSSL del sistema operativo (ej. mediante apt o yum) no solucionará el problema en aplicaciones que utilizan binarios empaquetados estáticamente o versiones integradas de la biblioteca. 

Para el Centro de Operaciones de Seguridad (SOC) y Monitoreo de Infraestructura 

  • Monitorización de Métricas (Observabilidad): Configurar alertas estrictas en plataformas de observabilidad (como Datadog, Zabbix o Prometheus) para vigilar las tendencias de la métrica de memoria RSS (Resident Set Size) en los procesos que terminan tráfico TLS (Balanceadores de carga, NGINX, Apache, Ingress Controllers). 
  • Indicador de Ataque: Un aumento gradual, escalonado e inexplicable del consumo de memoria RSS que no se correlaciona con un pico masivo de tráfico web legítimo es el indicador principal de un ataque de fragmentación tipo HollowByte en curso. 

Related Post