Aller au contenu

CVE-2026-94127 : débordement de tampon dans le tas du micro-noyau TMM de F5 BIG-IP APM

HERMES

SCORE DE MENACE HERMES & COMPROMISSION DU PÉRIMÈTRE

Cible : Passerelle d'entrée reverse-proxy & Frontière de fédération de jetons OAuth
Confiance : 98%
96 / 100
EXTRÊME

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 20 / 20
Activité de menace 20 / 20
Militarisation 20 / 20
Exposition 19 / 20
Prévalence 18 / 20
Impact 20 / 20
Maturité de l'exploit 20 / 20
Potentiel d'attaque en chaîne 19 / 20
⚖️ Divergence & Justification opérationnelle

Le standard CVSS v3.1 évalue la CVE-2026-94127 à 9.8 Critique (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). Le Hermes Threat Score lui attribue la note de 96 (EXTRÊME). La vulnérabilité est située au cœur même du micro-noyau de plan de données (TMM) des équipements F5. L'APM constituant la passerelle d'accès zéro-confiance et le mandataire inverse d'infrastructures d'entreprise névralgiques, une corruption de tas non authentifiée permet aux attaquants de compromettre des passerelles réseau à très haut débit en dépit de tout verrouillage d'administration.

HASS

SÉVÉRITÉ AGENTIQUE HASS & IMPACT SUR L'ISOLATION DES AGENTS

Cible : Passerelle d'entrée reverse-proxy & Frontière de fédération de jetons OAuth
Confiance : 95%
58 / 100
MODÉRÉ

Mesure le risque systémique spécifique découlant de l'autonomie, de l'autorité des outils et de l'exécution en cascade.

Décomposition des dimensions
Autonomie décisionnelle 15 / 20
Accès aux outils & APIs 16 / 20
Privilege 14 / 15
Persistence 13 / 15
External Impact 13 / 15
Propagation 13 / 15
⚖️ Divergence & Justification opérationnelle

F5 BIG-IP APM assure fréquemment la validation des jetons OAuth 2.0 et SAML protégeant l'accès aux plans d'orchestration agentiques, aux API d'inférence de modèles et aux lacs de données d'entreprise. Le détournement du micro-noyau TMM offre aux adversaires un accès en clair à l'ensemble des requêtes utilisateur, clés API et contextes avant même leur transmission aux moteurs d'agents.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-94127: F5 BIG-IP APM TMM Heap-Based Buffer Overflow Remote Code ExecutionVULNÉRABILITÉ

Nœuds connectés : 1
Relations sortantes actives
→ affectsCOMPOSANTF5 BIG-IP TMOS
98% VERY_HIGH

Enterprise application delivery controller, SSL VPN, and traffic management proxy operating system (TMOS).

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in F5 BIG-IP Access Policy Manager documented in Hermes dossier.”

Preuves vérifiées associées :

1. Contexte technique & matrice des versions affectées

Section intitulée « 1. Contexte technique & matrice des versions affectées »

Le Traffic Management Microkernel (TMM) est le composant système temps réel propriétaire s’exécutant en espace utilisateur avec un accès matériel direct aux interfaces réseau des plateformes BIG-IP. Il intercepte, déchiffre et inspecte les paquets réseau à débit nominal avant de relayer la logique applicative.

ParamètreSpécification techniqueImpact opérationnel
Identifiant CVECVE-2026-94127Avis F5 K000162605 / Notice CISA KEV
Classe de vulnérabilitéDébordement de tampon dans le tas (CWE-122)Copie mémoire sans vérification des limites lors du décodage binaire
Composant vulnérableMicro-noyau TMM (tmm) / Module OAuth APMPlan de données traitant l’entrée des paquets et la terminaison SSL
Mécanisme de déclenchementJeton Bearer OAuth malformé dans l’en-tête HTTP AuthorizationTroncation d’entier sur la taille des déclarations provoquant l’écrasement du tas
Privilèges requisAucun (PR:N)L’attaquant envoie des paquets vers tout serveur virtuel (VIP) avec profil OAuth
Privilèges obtenusRoot / Contexte TMM (uid=0 / micro-noyau)Détournement du plan de données, interception de flux ou arrêt du service
Versions affectéesBIG-IP 21.1.0, 17.5.0, 17.1.0 (avec APM et profil OAuth actif)Appliances physiques et éditions virtuelles (VE)
Correctifs d’urgenceHotfix-BIGIP-21.1.0.2.0.30.22-ENG, 17.5.1.9.0.160.12-ENG, 17.1.3.5.0.41.14-ENGRefonte du calcul de longueur des tampons et validation stricte des bornes

2. Anatomie de la vulnérabilité & analyse de cause racine

Section intitulée « 2. Anatomie de la vulnérabilité & analyse de cause racine »

Troncation d’entier et copie non vérifiée dans parse_oauth_claims

Section intitulée « Troncation d’entier et copie non vérifiée dans parse_oauth_claims »

La faille réside dans le décodeur binaire de TMM chargé d’extraire les jetons porteurs (Bearer tokens) OAuth 2.0 et les jetons Web JSON (JWT). Lors du désencapsulage des déclarations (claims), l’analyseur calcule la quantité de mémoire requise à partir d’un champ de longueur non vérifié extrait du jeton, tout en exécutant une copie mémoire directe depuis le tampon du paquet brut :

// Logique vulnérable de traitement de jeton TMM (approximation décompilée)
int parse_oauth_claims(tmm_conn_t *conn, char *token_payload, uint32_t payload_len) {
// Entier non signé 16 bits tronqué à partir de la longueur 32 bits
uint16_t claim_size = *(uint16_t *)(token_payload + 4);
char *heap_chunk = tmm_heap_alloc(claim_size);
// VULNÉRABILITÉ : payload_len peut dépasser claim_size suite à la troncation d'entier
// Écrase les structures de contrôle tmm_conn_t adjacentes dans l'allocateur par blocs de TMM
if (heap_chunk) {
memcpy(heap_chunk, token_payload + 6, payload_len - 6);
process_claims(heap_chunk);
}
return 0;
}

La taille d’allocation étant transtypée en un entier non signé 16 bits (uint16_t), une charge utile dépassant 65 535 octets boucle modulo 65 536. Par exemple, une longueur totale de 65 540 octets conduit à l’allocation d’un bloc de seulement 4 octets, suivie d’un appel memcpy() transférant 65 534 octets dans ce segment exigu. Cette opération corrompt intégralement les blocs de mémoire voisins au sein de l’allocateur de TMM, écrasant pointeurs de fonctions et descripteurs de connexions actives.


3. Vecteurs d’attaque & déroulement forensique de l’exécution

Section intitulée « 3. Vecteurs d’attaque & déroulement forensique de l’exécution »
sequenceDiagram
autonumber
actor Attaquant as Attaquant distant
participant VIP as Serveur virtuel BIG-IP (VIP APM)
participant TMM as Micro-noyau TMM
participant Tas as Allocateur de tas TMM (Slab)
participant APM as Moteur d'évaluation OAuth APM
participant OS as Système sous-jacent BIG-IP / Plan de contrôle
Attaquant->>VIP: Négociation TLS & requête HTTP GET /oauth/v1/auth (TCP 443)
Note over Attaquant,VIP: Authorization: Bearer <jeton_malforme_65Ko>
VIP->>TMM: Dispatch du paquet vers un fil d'exécution de TMM
TMM->>Tas: Allocation mémoire basée sur l'entier tronqué (claim_size)
Tas-->>TMM: Renvoi de l'adresse du bloc sous-dimensionné
TMM->>Tas: Exécution de memcpy() non bornée excédant la capacité du bloc
Note over Tas: Corruption du tas : écrasement des structures tmm_conn_t
alt Détournement de flot d'exécution
TMM->>OS: Déviation du pointeur vers la charge hostile (Root / TMM)
OS-->>Attaquant: Prise de contrôle du plan de données & interception de sessions
else Crash du micro-noyau (Panic)
TMM-->>OS: Déclenchement d'un panic noyau / vidage mémoire (core dump)
Note over OS: Basculement haute disponibilité / Déni de service de la VIP
end
  1. Identification du serveur virtuel cible : l’attaquant cible une passerelle F5 BIG-IP exposant un serveur virtuel muni d’une politique Access Policy Manager (APM) associée à un profil d’authentification OAuth 2.0.
  2. Construction de la charge de débordement : l’attaquant émet une requête HTTP volumineuse contenant un jeton Bearer corrompu dans l’en-tête Authorization, arrangé pour que le champ de taille 16 bits subisse un dépassement arithmétique alors que la longueur totale transmise dépasse 65 Ko.
  3. Erreur d’allocation mémoire : TMM réceptionne le flux TLS et transfère la requête à la fonction parse_oauth_claims(). Le micro-noyau alloue un segment de mémoire minuscule correspondant à la valeur tronquée.
  4. Écrasement de la mémoire du tas : l’exécution de memcpy() déborde du bloc alloué et écrase les structures mémoire adjacentes, y compris les tables de contexte des sessions actives (tmm_conn_t) et les pointeurs d’aiguillage d’événements.
  5. Prise de contrôle OU arrêt brutal de service : si l’alignement mémoire est minutieusement calibré, l’adversaire prend le contrôle du processus TMM avec les privilèges les plus élevés ; dans le cas contraire, la corruption provoque le crash immédiat de TMM, entraînant l’interruption du trafic sur tous les serveurs virtuels de l’équipement.

4. Investigation forensique & réponse à incident

Section intitulée « 4. Investigation forensique & réponse à incident »

Pour vérifier si un équipement F5 BIG-IP a fait l’objet d’une tentative d’exploitation de la CVE-2026-94127, les analystes DFIR doivent passer en revue l’état du micro-noyau et les vidages mémoire :

Commandes de triage de l’appliance et analyse mémoire

Section intitulée « Commandes de triage de l’appliance et analyse mémoire »
Fenêtre de terminal
# 1. Vérifier l'état du démon TMM et sa durée d'activité
tmsh show sys service tmm
# 2. Rechercher les erreurs de segmentation et panics TMM dans les journaux système
grep -E "panic|segfault|tmm.*died|heap corruption" /var/log/tmm* /var/log/messages
# 3. Lister les fichiers de vidage mémoire (core dumps) récents générés par TMM
ls -lh /var/core/core.tmm*
# 4. Extraire la trace d'appels (backtrace) d'un vidage mémoire avec gdb
gdb /usr/bin/tmm /var/core/core.tmm.0 -ex "bt" -ex "quit"
# 5. Examiner les sessions APM actives pour détecter des jetons anormaux
tmsh show apm session
# 6. Vérifier l'état de l'allocateur mémoire dans les tables TMM
tmctl memory_summary -s name,allocated,max_allocated

Implémentez ces règles de détection au sein de votre SIEM et de vos sondes de détection réseau :

title: F5 BIG-IP APM TMM Crash or Abnormal Core Generation
id: 94127b02-f5-tmm-overflow-detect01
status: critical
description: Détecte les indices de corruption du tas de TMM ou la génération anormale de fichiers core sur F5 BIG-IP.
author: Hermes Codex Detection Engineering
date: 2026-09-22
logsource:
category: application
product: f5_bigip
detection:
selection_tmm_log:
file: '/var/log/tmm*'
message|contains:
- 'tmm: segfault at'
- 'panic: tmm received signal'
- 'TMM heap corruption detected'
- 'assertion failed: claim_size'
selection_core:
file|startswith: '/var/core/'
file|contains: 'core.tmm'
condition: selection_tmm_log or selection_core
falsepositives:
- Pannes matérielles rares ou coupures d'alimentation causant le redémarrage de TMM.
level: critical
tags:
- attack.impact
- attack.t1499
- cve.2026-94127

6. Plan de remédiation & feuille de route de durcissement

Section intitulée « 6. Plan de remédiation & feuille de route de durcissement »

F5 a mis à disposition des correctifs d’ingénierie d’urgence décrits dans la notice K000162605 :

  • Pour BIG-IP 21.1.0 : installer Hotfix-BIGIP-21.1.0.2.0.30.22-ENG ou basculer sur la branche de maintenance corrigée.
  • Pour BIG-IP 17.5.0 : installer Hotfix-BIGIP-17.5.1.9.0.160.12-ENG.
  • Pour BIG-IP 17.1.0 : installer Hotfix-BIGIP-17.1.3.5.0.41.14-ENG.

Mesures conservatoires & atténuation opérationnelle

Section intitulée « Mesures conservatoires & atténuation opérationnelle »
  1. Dissociation temporaire du profil OAuth : si la validation des jetons OAuth n’est pas strictement requise, retirer le profil OAuth des politiques d’accès APM concernées.
  2. Filtrage de la taille des en-têtes en amont : déployer une règle WAF en amont pour rejeter immédiatement toute requête HTTP dont l’en-tête Authorization dépasse 2 048 octets.
  3. Surveillance du mécanisme de basculement HA : vérifier que les paires en haute disponibilité (HA) disposent d’un état de synchronisation optimal (bigstart status sod) afin d’assurer la continuité de service en cas d’interruption du micro-noyau.