CVE-2026-98610 in Linuxinfo

Zusammenfassung

von VulDB • 19.10.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

net/sched: sch_hfsc: Begrenzung des classify inner-filter walk mit einem Drift-Budget

hfsc_classify() wendet die „Filter dürfen nur nach unten zeigen“-Stufeprüfung (level check) nur dann an, wenn das Filterergebnis keine gebundene Klasse trägt. Ein mit einer flowid erstellter Filter hat bei der Bind-Zeit einmalig res.class gesetzt, sodass diese Prüfung während des Classifying niemals dafür ausgeführt wird. hfsc_adjust_levels() kann später die Stufe einer Klasse erhöhen, ohne bestehende Bindungen erneut zu validieren, was dazu führt, dass zwei zur Bind-Zeit jeweils legale Bindungen aufeinander zeigen; der classify walk springt dann endlos zwischen zwei internen Klassen hin und her, wobei die qdisc-Sperre gehalten wird und BH (Bottom Halves) deaktiviert ist – ein Soft-Lockup durch ein einzelnes Paket. Der steckengebliebene Walk löst den Watchdog aus:

watchdog: BUG: soft lockup - CPU#3 stuck for 13s! [ping:444]
RIP: 0010:u32_classify+0x542/0x17f0 ... tcf_classify+0x66/0xa0 hfsc_enqueue+0x166/0xdf0

Die Traversierung wird mit einem Budget für nicht-absteigende Hops begrenzt, der einzige Weg, auf dem ein konfigurierter Walk sich bewegen kann, ohne den Klassenbaum einmal abwärts zu traversieren, nachdem die Stufen nach der Bind-Zeit drifteten. Das Budget ist über den gesamten Walk kumulativ und wird bewusst bei einem absteigenden Hop nicht zurückgesetzt: Eine Kette, die einen Abstieg mit einem lateralen Hop abwechselt, würde das Budget bei jeder Runde zurückgeben und niemals auslösen. Absteigende Hops dekrementieren es nie, sodass legitim tiefe Bäume unbeeinflusst bleiben und eine terminierende laterale Kette weiterhin normal klassifiziert wird. Das Paket wird nach Erschöpfung des Budgets mit einer ratenbegrenzten Warnung verworfen, was die zusammengeführte HTB-Korrektur widerspiegelt.

Dies ist ein Follow-up zu Commit 729c4896ab82 („net/sched: sch_htb: limit htb_classify inner-class filter hops“), das dieselbe classify-Schleife auf der HTB-Seite begrenzte, aber den HFSC-Walk unbegrenzt ließ.

Bedingungen zur Reproduktion des Fehlers: - CONFIG_NET_SCHED, CONFIG_NET_SCH_HFSC, CONFIG_NET_CLS_U32, CONFIG_LOCKUP_DETECTOR. - Erstellen Sie einen Zyklus mit zwei zur Bind-Zeit legalen flowid-Bindungen und einem Level-Drift: Klasse X 1:1 (Kind von root) mit Blattkind 1:10; Klasse Y 1:2 (Geschwisterklasse von X) mit Kindern 1:20 und 1:200; Root-u32-Filter flowid 1:1; Filter auf X flowid 1:2 (legal, wenn Y ein Blatt ist); nachdem sich der Level von Y auf 2 erhöht hat, Filter auf Y flowid 1:1 (danach legal). Senden Sie ein einzelnes Paket (ping am Gerät). Ungepatchter Kernel: classify spinnt mit gehaltener qdisc-Sperre; bei softlockup_panic=1 tritt ein Panic auf. - Erreichbar von einem nicht privilegierten Benutzer über unshare -Urn (CAP_NET_ADMIN).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Zuständig

Linux

Reservieren

25.09.2026

Veröffentlichung

18.10.2026

Moderieren

akzeptiert

Eintrag

VDB-422113

EPSS

0.00000

KEV

nein

Aktivitäten

low

Quellen

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!