Aller au contenu

Ticketbleed Memory Disclosure in F5 BIG-IP

Divulgation de mémoire Ticketbleed dans F5 BIG-IP

Description

Cette vulnérabilité indique que le serveur est vulnérable aux attaques de type Ticketbleed, qui exploitent une gestion incorrecte des tickets de session dans les appliances F5 BIG-IP pour divulguer de la mémoire non initialisée contenant des données sensibles.

Ticketbleed se produit lorsque les implémentations TLS de F5 gèrent de manière incorrecte la longueur des identifiants de session lors de la reprise d'une session TLS. Lorsqu'un client envoie un identifiant de session (session ID) d'une longueur inférieure à 32 octets, le serveur alloue un tampon de la taille correspondante mais renvoie systématiquement 32 octets, exposant ainsi de la mémoire non initialisée dans le remplissage (padding).

Comment ça fonctionne :

  1. Le client envoie un ticket de session TLS avec un identifiant de session de moins de 32 octets (par ex., 16 octets).
  2. Le serveur F5 alloue un tampon correspondant à la longueur de l'identifiant de session du client.
  3. Le serveur répond avec un identifiant de session fixe de 32 octets, en remplissant l'espace manquant avec de la mémoire non initialisée.
  4. L'attaquant extrait jusqu'à 31 octets de mémoire par requête, pouvant contenir des données sensibles.

Exigences :

  • Appliance F5 BIG-IP avec les tickets de session activés (paramètre non défini par défaut).
  • Client utilisant des longueurs d'identifiant de session non standard (les navigateurs utilisent 32 octets par défaut).
  • Accès réseau distant au service TLS.

Example Scenario: Une entreprise utilise des répartiteurs de charge F5 BIG-IP avec les tickets de session activés. Une application utilisant la bibliothèque Go TLS se connecte avec des identifiants de session de 16 octets. Chaque connexion divulgue 16 octets de la mémoire du serveur, exposant potentiellement des données de session SSL, des clés de chiffrement ou d'autres informations sensibles provenant de connexions antérieures.

La vulnérabilité n'affecte que la pile TLS propriétaire de F5 (et non OpenSSL) et expose 31 octets à la fois comparativement aux 64 Ko de Heartbleed. Cela nécessite davantage de requêtes pour extraire des volumes significatifs de données, mais permet néanmoins une compromission totale de la session.

Recommandation

Pour atténuer les attaques Ticketbleed :

Défense principale - Mettre à jour F5 TMOS :

Mettez à niveau vers des versions corrigées de F5 BIG-IP : - 11.6.0 HF6 ou ultérieure - 12.0.0 HF4 ou ultérieure
- 12.1.0 HF1 ou ultérieure - 13.0.0 ou ultérieure

Atténuation immédiate - Désactiver les tickets de session :

Si l'application immédiate d'un correctif n'est pas possible, désactivez les tickets de session sur les profils SSL concernés :

# Via F5 CLI
tmsh modify ltm profile client-ssl [profile-name] options none

# Via l'interface web F5
Local Traffic > Profiles > SSL > Client > [Profile] > Configuration > Options
Remove "Session Ticket" from enabled options

Testing for Vulnerability:

# Test avec une longueur d'identifiant de session personnalisée
openssl s_client -connect target:443 -sess_out session.pem
openssl s_client -connect target:443 -sess_in session.pem -msg

# Vérifier les résultats du test SSL Labs
curl "https://api.ssllabs.com/api/v3/analyze?host=target.com"

Detection and Monitoring:

  • Surveillez la présence de modèles d'identifiants de session inhabituels dans les négociations (handshakes) TLS.
  • Recherchez des connexions avec des longueurs d'identifiants de session non standard (différentes de 32 octets).
  • Les dispositifs F5 journalisent l'utilisation des tickets de session lorsque la journalisation de débogage est activée.

Cette vulnérabilité n'affecte que les appliances F5 BIG-IP dont les tickets de session sont explicitement activés. Les navigateurs web standards ne sont pas affectés car ils utilisent par défaut des identifiants de session de 32 octets.

Liens

Normes

  • 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