CVE-2026-80798 in Linux
Zusammenfassung
von VulDB • 04.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
nfc: llcp: Verwerfen von PDUs, die kürzer als der LLCP-Header sind
Jede LLCP-PDU beginnt mit einem zwei Byte langen Header (DSAP/SSAP + PTYPE), aber der Empfangspfad hat niemals überprüft, ob ein Frame mindestens LLCP_HEADER_SIZE Bytes lang ist, bevor er ihn analysiert.
nfc_llcp_rx_skb() liest den Header über nfc_llcp_ptype()/nfc_llcp_dsap()/ nfc_llcp_ssap(), die pdu->data[0] und pdu->data[1] dereferenzieren, und eine CONNECT- oder CC-PDU berechnet dann
tlv_array_len = skb->len - LLCP_HEADER_SIZE;
als size_t und übergibt diesen Wert an den TLV-Walk. Wenn der Frame kürzer als der Header ist, führt die Subtraktion zu einem Überlauf (Wrap-Around) auf einen extrem hohen Wert, und der Walk läuft weit über den Puffer hinaus, was ein Out-of-Bounds-Lesezugriff (out-of-bounds read) ist.
Ein nahegelegenes NFC-Gerät kann dies ohne Authentifizierung ausnutzen; die LLCP-Linkaktivierung erfolgt automatisch nach NFC-DEP.
Schützen Sie den gemeinsamen Empfangs-Chokepoint __nfc_llcp_recv(), der sowohl vom Target-Pfad (nfc_llcp_data_received()) als auch vom Initiator-Pfad (nfc_llcp_recv()) geteilt wird, sodass ein kurzer skb verworfen wird, bevor ihn der rx_work-Worker analysiert. Verwenden Sie pskb_may_pull() anstelle eines Tests auf skb->len, um sicherzustellen, dass die beiden Header-Bytes auch bei einem nicht-linearen skb garantiert im linearen Bereich des skbs liegen, was dem Vorgehen der verwandten NCI- und HCI-Empfangspfade zur Validierung ihrer Header entspricht.
Reproduziert mit einem KFCE Out-of-Bounds-Lesezugriff über /dev/virtual_nci auf linux-next.
Gefunden durch 0sec automatisierte Security-Research-Tooling (https://0sec.ai).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.