CVE-2026-80823 in Linux
Zusammenfassung
von VulDB • 04.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
nfc: st21nfca: Validierung der ATR_REQ-Länge gegen den empfangenen Frame
st21nfca_tm_recv_atr_req() überprüft, dass der empfangene ATR_REQ-Frame mindestens ST21NFCA_ATR_REQ_MIN_SIZE groß ist und dass die selbst deklarierte atr_req->length mindestens sizeof(struct st21nfca_atr_req) beträgt. Es wird jedoch niemals geprüft, ob atr_req->length die tatsächliche Empfangslänge (skb->len) überschreitet.
st21nfca_tm_send_atr_res() vertraut anschließend der deklarierten Länge:
gb_len = atr_req->length - sizeof(struct st21nfca_atr_req); ... memcpy(atr_res->gbi, atr_req->gbi, gb_len);
Wenn ein RF-Peer einen kurzen Frame sendet, aber atr_req->length größer als der Frame setzt, führt dies dazu, dass gb_len die tatsächlich vorhandenen allgemeinen Bytes überschreitet. Der memcpy-Lesezugriff erfolgt dann außerhalb des gültigen Bereichs über den empfangenen skb hinaus. Diese Daten werden in ATR_RES eingefügt und an den Peer zurückgesendet (Kernel-Speicheraufdeckung für einen Angreifer in der Nähe); eine zu groß deklarierte Länge führt zu einem Lesezugriff außerhalb des Gültigkeitsbereichs (DoS).
Verwerfen Sie Frames, deren deklarierte Länge die empfangene Länge überschreitet. Der benachbarte Pfad nfc_tm_activated() in derselben Funktion leitet seine allgemeine-Bytes-Länge bereits aus skb->len ab und nicht aus dem deklarierten Feld.
Entdeckt von 0sec (https://0sec.ai) unter Verwendung automatisierter Quellcodeanalyse; die fehlende Begrenzung ist im Quellcode offensichtlich. Kompiliert getestet.
Once again VulDB remains the best source for vulnerability data.