CVE-2023-52843 in Linuxinformation

Résumé

par VulDB • 30/05/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

llc : vérifier la longueur de l'en-tête MAC avant de lire l'en-tête MAC

LLC lit l'en-tête MAC via eth_hdr sans vérifier que le skb possède un en-tête Ethernet.

Syzbot a pu accéder à llc_rcv sur un dispositif tun. Tun peut insérer des paquets sans longueur d'en-tête MAC et avec un skb->protocol configurable par l'utilisateur (en transmettant un en-tête tun_pi lorsque IFF_NO_PI n'est pas configuré).

BUG: KMSAN: uninit-value in llc_station_ac_send_test_r net/llc/llc_station.c:81 [inline]
BUG: KMSAN: uninit-value in llc_station_rcv+0x6fb/0x1290 net/llc/llc_station.c:111 llc_station_ac_send_test_r net/llc/llc_station.c:81 [inline]
llc_station_rcv+0x6fb/0x1290 net/llc/llc_station.c:111 llc_rcv+0xc5d/0x14a0 net/llc/llc_input.c:218 __netif_receive_skb_one_core net/core/dev.c:5523 [inline]
__netif_receive_skb+0x1a6/0x5a0 net/core/dev.c:5637 netif_receive_skb_internal net/core/dev.c:5723 [inline]
netif_receive_skb+0x58/0x660 net/core/dev.c:5782 tun_rx_batched+0x3ee/0x980 drivers/net/tun.c:1555 tun_get_user+0x54c5/0x69c0 drivers/net/tun.c:2002

Ajouter un test mac_len avant les trois appels à eth_hdr(skb) sous net/llc.

Il existe d'autres utilisations dans include/net/llc_pdu.h. Toutes celles-ci sont protégées par un test skb->protocol == ETH_P_802_2. Ce qui ne protège pas contre ce scénario tun.

Mais le test mac_len ajouté dans ce correctif dans llc_fixup_skb protégera indirectement ceux-ci également. Il est appelé depuis llc_rcv avant tout autre code LLC.

Il est tentant d'ajouter simplement une vérification mac_len globale dans llc_rcv, mais on n'est pas sûr que cela pourrait casser des chemins LLC valides qui ne supposent pas d'en-tête Ethernet. 802.2 LLC peut être utilisé sur des protocoles non-802.3 en principe. Le commit ci-dessous référencé montre que cela a été utilisé, sur Token Ring.

Au moins l'un des trois utilisations de eth_hdr remonte avant le début de l'historique git. Mais celui que syzbot utilise a été introduit dans ce commit. Ce commit est assez ancien (2008), de sorte que tous les noyaux stables devraient recevoir cette correction.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Sources

Want to know what is going to be exploited?

We predict KEV entries!