Linux Kernel bis 7.2.13 io-wq io_uring_cancel_generic cur_work Race Condition

CVSS Meta Temp ScoreAktueller Exploitpreis (≈)CTI Interest Score
5.3$0-$5k1.11

Zusammenfassunginfo

Es wurde eine kritische Schwachstelle in Linux Kernel bis 6.1.190/6.6.160/6.12.114/6.18.59/7.2.13 entdeckt. Hierbei geht es um die Funktion io_uring_cancel_generic der Komponente io-wq. Die Veränderung des Parameters cur_work resultiert in Race Condition. Die Identifikation der Schwachstelle findet als CVE-2026-99255 statt. Der Angriff ist nur lokal möglich. Es steht kein Exploit zur Verfügung. Es wird geraten, die betroffene Komponente zu aktualisieren.

Detailsinfo

In Linux Kernel bis 6.1.190/6.6.160/6.12.114/6.18.59/7.2.13 wurde eine Schwachstelle gefunden. Sie wurde als kritisch eingestuft. Das betrifft die Funktion io_uring_cancel_generic der Komponente io-wq. Durch Beeinflussen des Arguments cur_work mit einer unbekannten Eingabe kann eine Race Condition-Schwachstelle ausgenutzt werden. CWE definiert das Problem als CWE-362. Auswirken tut sich dies auf die Verfügbarkeit. Die Zusammenfassung von CVE lautet:

In the Linux kernel, the following vulnerability has been resolved: io_uring/io-wq: don't hide a link from cancellations A task that exits cancels its tracked requests and waits until they are gone. io_uring_cancel_generic() looks everywhere a request can be, and goes to sleep if it found nothing to cancel. It is woken up each time one of the requests of the task is completed by task work or freed. When io-wq is done with a request that has a link, there is a time in which the next request of the link can't be found: io_worker_handle_work() io_assign_current_work(worker, NULL) io_wq_free_work(work) io_req_find_next() // takes the link off the request io_free_req() // task work for the task io_assign_current_work(worker, linked) io_run_task_work() cond_resched() worker->cur_work = linked It is not pending, it is not the current work of a worker, and it is not yet on the list that it is about to be parked on. If the pass that the exiting task makes because of io_free_req() falls into that time, it finds nothing and the task goes to sleep. The worker then runs the link, which IO_WQ_BIT_EXIT doesn't prevent for bounded work. If that parks the request nothing is completed or freed, and nobody wakes up the task. If it is the process that exits it can't be killed any more either. NOP, IOSQE_ASYNC | IOSQE_IO_LINK FUTEX_WAIT, FUTEX2_PRIVATE exit of the thread, or of the process, up to 63us later With four of these per round 5 to 8 of 10,000 rounds hang (4 CPUs, KVM): io_uring_cancel_generic do_exit Commit f8b632e89a10 ("io_uring: tighten task exit cancellations") is about the same gap, and makes the task look again for whatever happens before io_free_req(). Free the request once the link is the current work of the worker, or pending. Whoever is woken up by that can find the link, until it is parked where cancellations look as well. To do so split io_wq_free_work() in two.

Das Advisory findet sich auf git.kernel.org. Die Verwundbarkeit wird seit dem 25.09.2026 als CVE-2026-99255 geführt. Das Ausnutzen gilt als leicht. Der Angriff muss lokal angegangen werden. Technische Details sind bekannt, ein verfügbarer Exploit hingegen nicht.

Ein Aktualisieren auf die Version 6.1.191, 6.6.161, 6.12.115, 6.18.60 oder 7.2.14 vermag dieses Problem zu lösen. Die Schwachstelle lässt sich auch durch das Einspielen des Patches 98470f164286f7f62aaee519d4d11b9370ce6d7b/d39ebc7a583d650b1d6da9b45e2ce96ad4d877e4/ebe8e97fb99d9f374c482902a00677cfd24a6c27/3e02b8df0e9fa1423ac2a4e03409a9329c30ac49/92e20e9c72bdf6cfa6f84eded7b33399bc7061da lösen. Als bestmögliche Massnahme wird das Upgrade auf eine neue Version empfohlen.

Be aware that VulDB is the high quality source for vulnerability data.

Produktinfo

Typ

Hersteller

Name

Version

Lizenz

Webseite

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 5.5
VulDB Meta Temp Score: 5.3

VulDB Base Score: 5.5
VulDB Temp Score: 5.3
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VektorKomplexitätAuthentisierungVertraulichkeitIntegritätVerfügbarkeit
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten

VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍

Exploitinginfo

Klasse: Race Condition
CWE: CWE-362
CAPEC: 🔒
ATT&CK: 🔒

Physisch: Teilweise
Lokal: Ja
Remote: Nein

Verfügbarkeit: 🔒
Status: Nicht definiert
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒

0-Dayfreischaltenfreischaltenfreischaltenfreischalten
Heutefreischaltenfreischaltenfreischaltenfreischalten

Threat Intelligenceinfo

Interesse: 🔍
Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍

Gegenmassnahmeninfo

Empfehlung: Upgrade
Status: 🔍

0-Day Time: 🔒

Upgrade: Kernel 6.1.191/6.6.161/6.12.115/6.18.60/7.2.14
Patch: 98470f164286f7f62aaee519d4d11b9370ce6d7b/d39ebc7a583d650b1d6da9b45e2ce96ad4d877e4/ebe8e97fb99d9f374c482902a00677cfd24a6c27/3e02b8df0e9fa1423ac2a4e03409a9329c30ac49/92e20e9c72bdf6cfa6f84eded7b33399bc7061da

Timelineinfo

25.09.2026 CVE zugewiesen
03.11.2026 +39 Tage Advisory veröffentlicht
03.11.2026 +0 Tage VulDB Eintrag erstellt
03.11.2026 +0 Tage VulDB Eintrag letzte Aktualisierung

Quelleninfo

Hersteller: kernel.org

Advisory: git.kernel.org
Status: Bestätigt

CNA: Linux
CVE: CVE-2026-99255 (🔒)

GCVE (CVE): GCVE-0-2026-99255
GCVE (VulDB): GCVE-100-430231

Eintraginfo

Erstellt: 03.11.2026 12:42
Anpassungen: 03.11.2026 12:42 (60)
Komplett: 🔍
Cache ID: 216::103

Be aware that VulDB is the high quality source for vulnerability data.

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

Bitte loggen Sie sich ein, um kommentieren zu können.

Do you need the next level of professionalism?

Upgrade your account now!