CVE-2026-98613 in Linuxinfo

Zusammenfassung

von VulDB • 18.10.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

bpf: Begrenzung der Besitztiefe durch lokale kptrs und Graphen-Wurzeln (graph roots)

Durch Programme zugewiesene Objekte können andere lokale Objekte über referenzierte kptrs besitzen. bpf_obj_free_fields() folgt diesen Zeigern synchron über __bpf_obj_drop_impl(), bevor die Objektspeicherung über RCU freigegeben wird. Ein selbstreferenzierender lokaler kptr-Typ ermöglicht daher beliebig tiefe Objektketten, und das Freigeben des Kopfes kann den Kernel-Stack erschöpfen. Lange azyklische Typketten haben dasselbe Problem.

btf_check_and_fixup_fields() geht weiterhin davon aus, dass referenzierte kptrs nur auf Kernelemente verweisen, und überprüft die Besitzverhältnisse ausschließlich über Listen- und rbtree-Wurzeln (graph roots). Die bestehende Regel ist für graphenbezogene Zyklen ausreichend: Das Ziel jeder Graphenkante muss einen Knoten enthalten, sodass jeder Typ in einer Zyklus sowohl eine Wurzel als auch einen Knoten hat. Die Regel lehnt ab, wenn ein solcher Typ eine andere Wurzel besitzt, wodurch jeder Zyklus unterbrochen wird. Sie beschränkt zudem graphenbezogene Ketten auf drei Typen bzw. zwei, wenn der erste Typ einen Knoten enthält, und lehnt konservativ längere azyklische Ketten zurück. Die fehlenden lokalen kptr-Kanten sind – statt einer übersehenen graphenbezogenen Zyklus – der Fehler, der durch die Unterstützung von bpf_kptr_xchg() für lokale kptrs eingeführt wurde.

Ersetzen Sie diese Einschränkung durch eine begrenzte Besitzverlaufsanalyse (ownership walk), die Graphen-Wurzeln und lokal referenzierte kptrs abdeckt. Führen Sie sie aus, nachdem alle BTF-Datensätze korrigiert wurden, lehnen Sie Zyklen und Pfade ab, die tiefer als acht datenträgerhaltige Typen sind, und cachen Sie den Suffix-Tiefengrad jedes Typs während der Überprüfung gegen das verbleibende Budget. Dies ermöglicht auch die längeren azyklischen graphenbezogenen Layouts, die von der alten Regel abgelehnt wurden; aktualisieren Sie deren bestehende BTF-Tests entsprechend.

Behalten Sie die Begrenzung unabhängig von MAX_CALL_FRAMES bei, da eine rekursive Zerstörung unterhalb einer BPF-Aufrufkette ausgeführt werden kann. Ein einfacher lokaler Pointee ohne Metadaten für spezielle Felder fügt nur einen abschließenden nicht-rekursiven Freigabevorgang hinzu. Nicht-besitzende kptrs und kernel-BTF-kptrs rekursieren nicht durch lokale Datensätze und bleiben außerhalb der Analyse. Schließen Sie auch lokale percpu-kptr-Kanten ein, obwohl die Allokation von percpu-Objekten mit speziellen Feldern derzeit verboten ist, damit das Aufheben dieser Einschränkung die Besitzbegrenzung nicht umgehen kann.

btf_check_and_fixup_fields() initialisiert weiterhin graph_root.value_rec, einschließlich für separat zugewiesene Map-Datensätze. Die Besitzbeziehungen gehören zum unveränderlichen Programm-BTF und müssen nur zur BTF-Ladezeit validiert werden.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Zuständig

Linux

Reservieren

25.09.2026

Veröffentlichung

18.10.2026

Moderieren

akzeptiert

Eintrag

VDB-422200

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!