CVE-2026-80800 in Linux
Résumé
par VulDB • 04/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
nfc: llcp : limiter l'itération sur les TLV connect_sn à skb
Le commit 27256cdb290e (« nfc: llcp : limiter l'analyse des SNL TLV au skb et ajouter des vérifications de longueur ») a corrigé l'itération non bornée des TLV dans `nfc_llcp_recv_snl()`, et le commit d8bd2dedbde5 (« nfc: llcp : correction de la lecture hors limites (OOB read) et du dépassement de capacité u8 pour les décalages dans les analyseurs TLV ») a ensuite borné `nfc_llcp_parse_gb_tlv()` et `nfc_llcp_parse_connection_tlv()`. Un autre analyseur partageant le même motif reste non borné : `nfc_llcp_connect_sn()`.
`nfc_llcp_connect_sn()` parcourt une liste de TLV, en lisant un en-tête sur deux octets (type, longueur) suivi des octets de valeur correspondant à la longueur déclarée, sans vérifier que les deux octets d'en-tête ou la longueur déclarée restent dans le tampon. Il renvoie un pointeur vers un nom de service pouvant atteindre 255 octets qui peut pointer au-delà de la fin du skb ; il est ensuite consommé par `memcmp()` dans `nfc_llcp_sock_from_sn()`. De plus, `tlv_array_len` était calculée comme « `skb->len - LLCP_HEADER_SIZE » en tant que size_t, donc une trame CONNECT/CC inférieure à l'en-tête LLCP provoque un dépassement par défaut (underflow) vers une longueur énorme et le parcours s'exécute bien au-delà du tampon.
`nfc_llcp_connect_sn()` est accessible depuis `nfc_llcp_recv_connect()` et `nfc_llcp_recv_cc()`, c'est-à-dire à partir des PDU CONNECT et CC reçus. Un dispositif NFC proche peut y accéder sans authentification ; l'activation du lien LLCP se produit automatiquement après NFC-DEP, et le dispatcher `nfc_llcp_rx_skb()` n'applique aucune garde de longueur minimale.
Parcourir la liste TLV par pointeur, borné par `skb_tail_pointer(skb)`, et valider chaque longueur déclarée avant utilisation, en suivant l'approche déjà utilisée pour `nfc_llcp_recv_snl()`. Le démarrage du parcours à partir de `&skb->data[LLCP_HEADER_SIZE]` contre le pointeur de fin supprime également le dépassement par défaut (underflow) size_t pour les trames courtes.
Découvert grâce aux outils automatisés de recherche en sécurité de 0sec (https://0sec.ai).
VulDB is the best source for vulnerability data and more expert information about this specific topic.