OpenSSL ha corregido silenciosamente una vulnerabilidad crítica llamada HollowByte que permitía a atacantes provocar una denegación de servicio (DoS) mediante el agotamiento de la memoria del servidor antes de iniciar cualquier handshake de seguridad.
Por qué importa: Esta falla afectaba a múltiples aplicaciones y servidores que usan OpenSSL, poniendo en riesgo la disponibilidad de sistemas críticos sin que las defensas tradicionales detectaran el ataque.
Lo esencial
- HollowByte permitía enviar un payload malicioso de solo 11 bytes para forzar una preasignación de buffer no liberada.
- El ataque bloqueaba hilos de trabajo esperando datos que nunca llegaban, consumiendo memoria indefinidamente.
- La vulnerabilidad fue corregida en OpenSSL 4.0.1 y versiones anteriores mediante backport silencioso.
Detalles técnicos de HollowByte
La vulnerabilidad se originaba porque versiones antiguas de OpenSSL preasignaban buffers de recepción basándose en el tamaño declarado en el encabezado de 4 bytes del mensaje handshake, antes de recibir datos reales. Un atacante podía enviar un payload de 11 bytes que indicaba un tamaño mayor, causando una asignación de hasta 131 KB que no se liberaba inmediatamente.
El hilo de trabajo quedaba bloqueado esperando datos que nunca llegaban, y aunque OpenSSL liberaba el buffer, la biblioteca GNU C Library (glibc) retenía la memoria para reutilización, impidiendo que el sistema operativo la recuperara. Esto permitía que múltiples conexiones maliciosas fragmentaran y agotaran la memoria del servidor.


