CVE-2026-98134
Beschreibung
Im Linux-Kernel wurde die folgende Sicherheitsanfälligkeit behoben: bpf: check cond jmp op(): Richtig schließen, wenn das Register null ist Nicholas Carlini meldete einen Fehler, wenn der Verifier falsch schließen kann, dass ein Zeiger nicht null ist. Der Fehler tritt auf, wenn zwei Zeiger verglichen werden und einer von ihnen einen Typ mit dem Flag PTR MAYBE NULL hat, der jedoch erlaubt, dass ein Wert zur Laufzeit NULL ist. Hier ist ein Beispiel: // `a` ist PTR TO MEM | MEM RDONLY | PTR UNTRUSTED // `a` ist 0 zur Laufzeit. // `b` ist PTR TO MAP VALUE | PTR MAYBE NULL void *a = bpf rdonly cast(0, 0); int *b = bpf map lookup elem(...); wenn (a == b) *b = 42; // verifier fängt keine Null-Pointer-Dereference Dies geschieht aufgrund eines Sonderfalls in check cond jmp op(), der versucht, PTR MAYBE NULL-Flags von Zeigertypen zu entfernen, wenn Vergleiche wie `rA == rB` verarbeitet werden, wenn entweder rA oder rB nicht null sein können. Die Nichtnull-Eigenschaft wird auf der Grundlage des Fehlens des Flags PTR MAYBE NULL auf dem Typ rA oder rB abgeleitet. Aber das reicht nicht für Typen wie PTR TO MEM, wie im Beispiel. Dieser Patch ersetzt den Aufruf type may be null() durch reg not null(), der eine Allowlist von Typen enthält, für die das Fehlen von PTR MAYBE NULL tatsächlich bedeutet, dass der Wert zur Laufzeit nicht NULL sein kann. Im Moment lässt die Liste in reg not null() zwei Typen aus, für die PTR MAYBE NULL gilt: PTR TO XDP SOCK und PTR TO BUF. Um rückwärtskompatibel zu bleiben und vorausgesetzt, dass nur ein Vergleich zwischen Zeigern des gleichen Typs sinnvoll ist, erweitert dieser Commit reg not null(). W/o eine solche Erweiterung z. B. verifier jeq infer not null/null ptr to map value fehlschlägt. reg not null() kann weiter erweitert werden, aber ich halte das für den vorliegenden Fix für unerheblich. Explizite base type(...) != PTR TO BTF ID-Prüfungen in check cond jmp op() können mit der Migration zu reg not null() entfernt werden, aber das ist eine Verhaltensänderung, da der Sonderfall mit dem Matching für PTR TO BTF ID beginnen würde, die auch is trusted reg() ist. Ich lasse die Verhaltensänderung aus diesem Commit aus.
Quellen & weiterführende Informationen
Hier werden ausschließlich tatsächlich zu dieser Schwachstelle gespeicherte Quellenbelege angezeigt.
Was ist zur Behebung zu tun?
Herstellerhinweise prüfen und das betroffene Produkt kurzfristig patchen oder kompensierende Schutzmaßnahmen aktivieren.
Empfohlene Schritte
- Betroffene Systeme identifizieren: linux linux kernel.
- Exposition prüfen: Internet-Erreichbarkeit, Admin-Oberflächen, VPN, Mail- oder Webdienste.
- Hersteller-Advisory öffnen und verfügbare Updates, Workarounds oder Deaktivierungen prüfen.
- Nacharbeiten dokumentieren: betroffene Assets, Maßnahme, Zeitpunkt, Restrestrisiko.
Übergangsmaßnahmen
- Zugriff auf betroffene Dienste auf vertrauenswürdige Netze einschränken.
- WAF/IDS/EDR-Regeln und Hersteller-IOCs aktivieren, sofern verfügbar.
- Nicht benötigte Funktionen, Plugins oder Dienste temporär deaktivieren.