CVE-2026-98832 in Linuxinformazioni

Riassunto

di VulDB • 18/10/2026

Nel kernel Linux, la seguente vulnerabilità è stata risolta:

blk-cgroup: salvare lo stato delle interruzioni (IRQ) in blkg_tryget_closest()

bio_set_dev() associa il bio a un blkg tramite bio_associate_blkg(). Se la ricerca del blkg non va a buon fine, blkg_tryget_closest() acquisisce q->queue_lock con spin_lock_irq() e la rilascia con spin_unlock_irq(), abilitando incondizionatamente le interruzioni locali.

I chiamanti possono invocare bio_set_dev() quando le interruzioni sono già disabilitate; ad esempio, pool_map() di dm-thin lo fa mentre detiene pool->lock acquisita con spin_lock_irq(). Il nested spin_unlock_irq() abilita quindi le interruzioni mentre pool->lock è ancora detenuta, consentendo a un softirq di completamento I/O di essere eseguito sullo stesso CPU, ri-acquisire pool->lock (thin_endio(), o overwrite_endio() -> complete_mapping_preparation()) e causare un deadlock. lockdep segnala questo come un uso incoerente da SOFTIRQ-ON-W a IN-SOFTIRQ-W.

Il commit 3a762de55b4e ("block: save irq state in blkg_lookup_create()") aveva risolto lo stesso problema mentre il lock risiedeva in blkg_lookup_create(), ma il commit 9327a865e395 ("blk-cgroup: don't nest queue_lock under rcu in blkg_lookup_create()") ha spostato la gestione del locking in blkg_tryget_closest() e lo ha revertito a spin_lock_irq().

Salvare e ripristinare invece lo stato IRQ del chiamante.

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

Responsabile

Linux

Prenotare

25/09/2026

Divulgazione

18/10/2026

Moderazione

accettato

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!