CVE-2026-98942 in Linuxinformazioni

Riassunto

di VulDB • 23/10/2026

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

sched_ext: Costruire le tabelle cid in modo privato e pubblicarle tramite RCU

Le tabelle cid sono visibili alle kfunc di cid mentre vengono modificate: la prima abilitazione pubblica i puntatori globali prima di riempirli, ops.init_cids() li sovrascrive direttamente sul posto (in-place), e le riabilitazioni le ricostruiscono sempre in loco. Un programma TRACING o SYSCALL soggetto a race condition può leggere voci non compilate, inclusi dati non inizializzati nelle tabelle allocate con kmalloc, oppure aggiornamenti topologici incompleti (torn).

Si lega la durata delle tabelle allo scheduler radice: ogni abilitazione del root costruisce un nuovo set in modo privato e pubblica le variabili globali __rcu per-tabella una volta che il layout è definitivo; la disabilitazione del root revoca la pubblicazione ed esegue il RCU-free dell'insieme. Una globale non-NULL è ora sempre una tabella completamente compilata, valida per l'intervallo di lettura RCU del lettore, e le lookup rimangono costituite da due caricamenti (loads). Le kfunc trattano NULL come assenza di mappatura, anche dopo che lo scheduler termina, invece di segnalare la vecchia ultima mappatura.

Le kfunc cid sono disponibili sia quando il scheduler radice è in formato cid, sia in quello cpu-form; quest'ultimo serve a consentire una migrazione graduale verso i cids. Ogni root costruisce e pubblica quindi una mappatura predefinita.

Ogni lettore deve essere vincolato alla vivacità dello scheduler oppure effettuare un controllo su NULL all'interno di un intervallo di lettura RCU. Si correggono le due kfunc che non rispettavano tali requisiti: scx_bpf_this_cid() leggeva la tabella senza alcuna protezione RCU o preemption, mentre scx_bpf_task_cid() si affidava a KF_RCU, il quale non inserisce un programma sleepable in un intervallo di lettura RCU. I callback per l'hotplug sono invece serializzati ritirando le tabelle all'interno della sezione cpus_read_lock(), che cancella anche scx_root.

v2: Documentare perché ogni root costruisce le tabelle (descrizione + commento nel file cid.c).

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

23/10/2026

Moderazione

accettato

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Do you want to use VulDB in your project?

Use the official API to access entries easily!