Ticketbleed Memory Disclosure in F5 BIG-IP
Divulgación de memoria Ticketbleed en F5 BIG-IP
Descripción
Esta vulnerabilidad indica que el servidor es susceptible a los ataques de Ticketbleed, que explotan un manejo incorrecto de los tickets de sesión (session tickets) en los dispositivos F5 BIG-IP para filtrar memoria no inicializada que contiene datos confidenciales.
Ticketbleed se produce cuando las implementaciones TLS de F5 manejan incorrectamente la longitud de los identificadores de sesión (session IDs) durante la reanudación de una sesión TLS. Cuando un cliente envía un identificador de sesión con una longitud inferior a 32 bytes, el servidor asigna un búfer del tamaño correcto, pero siempre devuelve 32 bytes, exponiendo así memoria no inicializada en el relleno (padding).
Cómo funciona:
- El cliente envía un ticket de sesión TLS con un identificador de sesión de menos de 32 bytes (por ejemplo, 16 bytes).
- El servidor F5 asigna un búfer que coincide con la longitud del identificador de sesión del cliente.
- El servidor responde con un identificador de sesión fijo de 32 bytes, rellenando con memoria no inicializada.
- El atacante extrae hasta 31 bytes de memoria por petición que contienen datos confidenciales.
Requisitos:
- Dispositivo F5 BIG-IP con los tickets de sesión habilitados (configuración no predeterminada).
- Cliente que utiliza longitudes de identificador de sesión no estándar (los navegadores utilizan 32 bytes de forma predeterminada).
- Acceso remoto por red al servicio TLS.
Example Scenario: Una empresa utiliza equilibradores de carga F5 BIG-IP con los tickets de sesión habilitados. Una aplicación que utiliza la biblioteca Go TLS se conecta con identificadores de sesión de 16 bytes. Cada conexión filtra 16 bytes de la memoria del servidor, lo que podría exponer datos de sesiones SSL, claves de cifrado u otra información confidencial de conexiones anteriores.
La vulnerabilidad afecta únicamente a la pila TLS privativa de F5 (no a OpenSSL) y expone 31 bytes a la vez en comparación con los 64 KB de Heartbleed, por lo que requiere más peticiones para extraer datos significativos, pero sigue permitiendo el compromiso total de la sesión.
Recomendación
Para mitigar los ataques de Ticketbleed:
Defensa Principal - Actualizar F5 TMOS:
Actualice a las versiones parcheadas de F5 BIG-IP:
- 11.6.0 HF6 o posterior
- 12.0.0 HF4 o posterior
- 12.1.0 HF1 o posterior
- 13.0.0 o posterior
Mitigación Inmediata - Deshabilitar Tickets de Sesión:
Si no es posible aplicar el parche de inmediato, deshabilite los tickets de sesión en los perfiles SSL afectados:
# A través de la CLI de F5
tmsh modify ltm profile client-ssl [profile-name] options none
# A través de la interfaz web de F5
Local Traffic > Profiles > SSL > Client > [Profile] > Configuration > Options
Remove "Session Ticket" from enabled options
Testing for Vulnerability:
# Prueba con longitud personalizada de ID de sesión
openssl s_client -connect target:443 -sess_out session.pem
openssl s_client -connect target:443 -sess_in session.pem -msg
# Comprobar resultados de la prueba de SSL Labs
curl "https://api.ssllabs.com/api/v3/analyze?host=target.com"
Detection and Monitoring:
- Supervise los patrones inusuales de identificadores de sesión en los intercambios (handshakes) TLS.
- Busque conexiones con longitudes de identificadores de sesión no estándar (diferentes de 32 bytes).
- Los dispositivos F5 registran el uso de los tickets de sesión cuando el registro de depuración está activado.
Esta vulnerabilidad afecta únicamente a los dispositivos F5 BIG-IP que tienen los tickets de sesión habilitados explícitamente. Los navegadores web estándar no se ven afectados, ya que utilizan identificadores de sesión de 32 bytes de forma predeterminada.
Enlaces
Estándares
- SOC2_CONTROLS:
- CC_6_7
- CC_7_1
- CCPA:
- CCPA_1798_150
- GDPR:
- ART_32
- HIPAA_CONTROLS:
- SECURITY255
- SECURITY258
- SECURITY212
- SECURITY213
- PCI_STANDARDS:
- REQ_4_1
- REQ_6_2
- REQ_11_3