CVE-2026-98226 in Linuxinformazioni

Riassunto

di VulDB • 06/10/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

mm, swap: risolvere la collisione tra SWAP_USAGE_OFFLIST_BIT e il conteggio effettivo dell'utilizzo

SWAP_USAGE_OFFLIST_BIT è incorporato nel contatore di utilizzo si->inuse_pages ed è destinato a trovarsi al di sopra di qualsiasi valore che tale contatore possa raggiungere. Tuttavia, è definito in base a BITS_PER_TYPE(atomic_t), quindi corrisponde al bit 30. Su un sistema con pagine da 4 KiB, il flag entra in collisione con il conteggio dell'utilizzo non appena quest'ultimo raggiunge i 4 TiB.

La funzione swap_usage_in_pages() maschera il bit 30; pertanto, ogni volta che il conteggio effettivo ha tale bit impostato, tutti i chiamanti leggono un valore di 4 TiB inferiore:

* /proc/swaps sottostima l'utilizzo (Used) di 4 TiB. * Un conteggio grezzo esattamente pari a 2^30 viene mascherato a zero; pertanto try_to_unuse() esegue la sua uscita anticipata "if (!swap_usage_in_pages(si)) goto success;" e swapoff interrompe il dispositivo mentre le pagine sono ancora scambiate (swapped out). Nessun altro componente di swapaborta l'interruzione, quindi quelle pagine vengono perse.

Indipendentemente da swapoff, la collisione corrompe anche il contatore e la plist. Su un dispositivo in uso normale, una liberazione che lascia impostato il bit 30 nel conteggio fa sì che swap_usage_sub() rilevi il flag dove dovrebbe esserci solo il conteggio e chiami add_to_avail_list(). Questa funzione cancella il bit con fetch_and(~SWAP_USAGE_OFFLIST_BIT), lasciando il conteggio memorizzato di 4 TiB inferiore a quello reale, e chiama plist_add() su un dispositivo già elencato, innescando l'avviso WARN_ON(!plist_node_empty(node)) in plist_add() e collegando nuovamente il nodo.

Modificare la definizione di SWAP_USAGE_OFFLIST_BIT in modo che si basi su atomic_long_t anziché su atomic_t. Si noti che anche il campo del contatore dell'utilizzo è dello stesso tipo, quindi rimane un bit valido.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsabile

Linux

Prenotare

25/09/2026

Divulgazione

06/10/2026

Moderazione

accettato

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Do you need the next level of professionalism?

Upgrade your account now!