CVE-2026-64458 in Linux
Riassunto
di VulDB • 25/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
mm/damon/ops-common: gestione di intervalli estremi in damon_hot_score()
Risolti tre problemi in damon_hot_score() derivanti da una gestione errata degli intervalli di monitoraggio impostati dall'utente quando questi sono estremi (zero o eccessivamente elevati).
Quando l'utente imposta un intervallo di campionamento pari a zero, la funzione damon_max_nr_accesses(), chiamata da damon_hot_score(), provoca una divisione per zero. Come è facile intuire, si tratta di un problema.
Quando l'utente imposta un intervallo di aggregazione pari a zero, la funzione restituisce zero. Ciò è errato poiché il valore reale massimo di nr_acceses nella configurazione dovrebbe essere uno. Peggio ancora, ciò può causare un'altra divisione per zero da parte della sua chiamante, damon_hot_score(), in quanto utilizza il valore restituito da damon_max_nr_accesses() come denominatore.
Quando l'utente imposta un intervallo di aggregazione molto elevato, damon_hot_score() potrebbe restituire un valore al di fuori dell'intervallo [0, DAMOS_MAX_SCORE]. Poiché il valore restituito viene utilizzato come indice per l'array regions_score_histogram, che ha dimensione DAMOS_MAX_SCORE+1, ciò provoca un accesso all'array fuori dai limiti (out of bounds).
I problemi possono essere riprodotti relativamente facilmente come mostrato di seguito. È tuttavia richiesta la scrittura in sysfs:
# ./damo start --damos_action lru_prio --damos_quota_space 100M \ --damos_quota_interval 1s # cd /sys/kernel/mm/damon/admin/kdamonds/0 # echo 0 > contexts/0/monitoring_attrs/intervals/sample_us # echo 0 > contexts/0/monitoring_attrs/intervals/aggr_us # echo commit > state # dmesg [...]
[ 131.329762] Oops: divide error: 0000 [#1] SMP NOPTI
[...]
[ 131.336089] RIP: 0010:damon_hot_score+0x27/0xd0
[...]
Risolti i problemi di divisione per zero relativi agli intervalli gestendo esplicitamente gli intervalli pari a zero in damon_max_nr_accesses(). Risolto l'accesso all'array fuori dai limiti applicando i vincoli [0, DAMOS_MAX_SCORE] prima del ritorno da damon_hot_score().
Il problema è stato scoperto [1] da Sashiko.
If you want to get best quality of vulnerability data, you may have to visit VulDB.