CVE-2024-35797 in Linux
Sumário
de VulDB • 23/06/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
mm: cachestat: corrige dois bugs em shmem
Quando o cachestat no shmem sofre uma condição de corrida (race condition) com troca (swapping) e invalidação, existem dois possíveis erros:
1) Um erro na operação swapin pode ter resultado em um entry de swap corrompido ("poisoned") no xarray do inode do shmem. Chamar get_shadow_from_swap_cache() nesse caso resultará em uma acesso fora dos limites (out-of-bounds) ao array swapper_spaces[].
Valide o entry com non_swap_entry() antes de prosseguir.
2) Quando encontramos um valid swap entry no inode do shmem, a shadow entry no swapcache pode ainda não existir: a E/S de troca (swap IO) está em andamento e estamos antes da chamada __remove_mapping; as operações swapin, invalidação ou swapoff removeram a sombra do swapcache depois que vimos o entry de troca do shmem.
Isso enviará um NULL para workingset_test_recent(). Como esta última opera puramente sobre bits de ponteiro, não causará uma falha (crash) - node 0, ID memcg 0, timestamp de evicção 0, etc., são todos inputs válidos -, mas trata-se de um teste incorreto. Em teoria, isso poderia resultar em uma contagem falsa de "recentemente evitado" ("recently evicted").
Um falso positivo desse tipo não seria catastrófico. Mas para maior clareza do código e (futuro) robustez, seja explícito sobre este caso.
Interrompa a execução se get_shadow_from_swap_cache() retornar NULL.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.