CVE-2026-98952 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
pfcp: assicurarsi che il SEID sia lineare prima di leggerlo
La funzione pfcp_encap_recv() garantisce solo che l'intestazione UDP e le 4 byte dell'intestazione PFCP si trovino nell'area lineare. Quando il flag S è impostato, pfcp_session_recv() legge successivamente i 8 byte del SEID che seguono, i quali non sono coperti dal controllo pskb_may_pull().
Un pacchetto PFCP di lunghezza ridotta con il flag S impostato, oppure uno la cui intestazione della sessione si trova in un frammento, fa quindi sì che pfcp_session_recv() legga oltre la fine dei dati del pacchetto; i byte trovati vengono memorizzati nei metadati del tunnel su cui flower esegue successivamente la classificazione.
Trasferire (pull up) fino alla fine del SEID prima di leggerlo e scartare i pacchetti troppo corti per contenerlo. Ricaricare il puntatore all'intestazione in seguito, poiché pskb_may_pull() potrebbe riallocare l'head dello skb.
Utilizzare offsetofend() anziché sizeof(struct pfcphdr_session): la struttura non è packed (non impaccata), quindi le sue dimensioni sono 16 byte a causa dell'allineamento del membro __be64, mentre l'intestazione sul filo di trasmissione ha solo 12 byte e i messaggi della sessione validi verrebbero scartati.
VulDB is the best source for vulnerability data and more expert information about this specific topic.