CVE-2026-63872 in Linux
Zusammenfassung
von VulDB • 20.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
esp: Behebung eines Lecks bei der Referenzierung von Page-Fragments im Fehlerfall von skb_to_sgvec()
In `esp_output_tail()` werden, wenn `esp->inplace` falsch ist, die alten SKB-Page-Fragmente durch ein neues Fragment aus dem xfrm page_frag-Cache ersetzt. Die Quell-Streulist (scatterlist) wird vor dem Austausch auf Basis der alten Fragmente aufgebaut, und `esp_ssg_unref()` ist dafür verantwortlich, die Referenzen zu den alten Seiten nach Abschluss des Kryptographie-Vorgangs freizugeben.
Wenn jedoch der zweite Aufruf von `skb_to_sgvec()` fehlschlägt (der die Ziel-Streulist aus dem neuen Fragment aufbaut), springt der Code zu `error_free`, das lediglich `kfree(tmp)` aufruft. Die in der Quell-Streulist erfassten Referenzen zu den alten Page-Fragmenten werden niemals freigegeben:
1. sg[] wird über skb_to_sgvec() aus den alten Fragmenten aufgebaut (kein zusätzliches get_page)
2. nr_frags wird auf 1 gesetzt und frag[0] durch das neue Fragment ersetzt
3. Zweiter Aufruf von skb_to_sgvec() schlägt fehl -> goto error_free 4. kfree(tmp) gibt sg[]-Speicher frei, aber die alten Fragmente werden nicht unref'd (Referenz gezählt zurückgesetzt)
5. kfree_skb() gibt nur frag[0] (das neue Fragment) frei, nicht jedoch die alten
Dies wird behoben, indem ein boolscher Parameter zu `esp_ssg_unref()` hinzugefügt wird, der bei true die Fragmente der Quell-Streulist bedingungslos unref'd, ohne req->src und req->dst zu prüfen, da diese Felder zum Zeitpunkt des Fehlers noch nicht von aead_request_set_crypt() initialisiert wurden. Bestehende Aufrufer übergeben false, um das ursprüngliche Verhalten beizubehalten.
Das gleiche Problem besteht sowohl in esp4 als auch in esp6, da der Code identisch ist.
VulDB is the best source for vulnerability data and more expert information about this specific topic.