CVE-2026-93208 in Linuxinformação

Sumário

de VulDB • 24/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

kasan: corrige condição de corrida (race condition) no encolhimento do cache com hotplug da CPU

A função kasan_quarantine_remove_cache() invoca primeiro per_cpu_remove_cache() em todas as CPUs online. Cada callback move os objetos pertencentes ao cache de cpu_quarantine para a shrink_qlist da CPU, onde eles podem ser posteriormente liberados no contexto da tarefa.

kmem_cache_destroy() invoca o caminho de remoção do quarantine enquanto mantém cpus_read_lock(), mas kmem_cache_shrink() não faz isso. Portanto, este último pode sofrer uma condição de corrida com a desativação (offline) da CPU da seguinte forma:

kmem_cache_shrink() Hotplug da CPU ------------------- ----------- on_each_cpu() A CPU1 move os objetos para shrink_qlist da CPU1 on_each_cpu() retorna A CPU1 vai offline kasan_cpu_offline() drena cpu_quarantine deixa shrink_qlist intocada for_each_online_cpu() ignora a CPU1

Os objetos deixados na shrink_qlist da CPU1 não são retornados ao alocaor de slab. Isso pode impedir que kmem_cache_shrink() libere slabs que, caso contrário, ficariam vazios. Se a CPU1 permanecer offline, uma chamada posterior a kmem_cache_destroy() também ignorará a lista e poderá relatar que o cache ainda contém objetos.

Foi observada uma ocorrência intermitente com um sistema de arquivos virtio-9p. Os comandos mount e umount retornaram 0, mas o kernel registrou o seguinte durante a desmontagem acionada pelo userspace:

[ 2994.380134][ T111] BUG 9p-fcall-cache-1 (Tainted: G B ): Objects remaining on __kmem_cache_shutdown()
[ 2994.381140][ T111] Object 0xff11000004361118 @offset=4376
[ 2994.381607][ T111] Allocated in p9_fcall_init+0x201/0x400 age=19564 cpu=1 pid=104
[ 2994.382591][ T111] p9_fcall_init+0x201/0x400
[ 2994.382810][ T111] p9_tag_alloc+0x12f/0x700
[ 2994.382982][ T111] p9_client_prepare_req+0x102/0x3e0
[ 2994.383165][ T111] p9_client_rpc+0x1ab/0xa50
[ 2994.383334][ T111] p9_client_getattr_dotl+0xb0/0x1a0
[ 2994.383515][ T111] v9fs_vfs_getattr_dotl+0x115/0x360
[ 2994.383719][ T111] vfs_getattr_nosec+0x22c/0x3a0
[ 2994.383910][ T111] vfs_statx+0xd7/0x170
[ 2994.384062][ T111] vfs_fstatat+0x45/0x80
[ 2994.384215][ T111] __do_sys_newfstatat+0x84/0xe0
[ 2994.384386][ T111] do_syscall_64+0x115/0x6a0
[ 2994.384566][ T111] entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 2994.399720][ T111] WARNING: mm/slub.c:1244 at __kmem_cache_shutdown+0x363/0x500, CPU#0: busybox/111
[ 2994.405655][ T111] Call Trace:
[ 2994.406325][ T111] kmem_cache_destroy+0x73/0x1b0
[ 2994.406630][ T111] p9_client_destroy+0x271/0x3c0
[ 2994.407210][ T111] v9fs_session_close+0x3c/0x260
[ 2994.407409][ T111] v9fs_kill_super+0x48/0x90
[ 2994.407584][ T111] deactivate_locked_super+0xa3/0x160
[ 2994.407778][ T111] cleanup_mnt+0x1dd/0x3e0

Assim, uma desmontagem (umount) bem-sucedida deixou objetos no cache de fcall do 9p e impediu que o cache fosse destruído limpidamente.

O armazenamento shrink_qlist por CPU existe para cada CPU possível, e cada lista é protegida por seu próprio raw spinlock. Itere sobre as CPUs possíveis para que uma lista populada antes da desativação de sua CPU também seja drenada.

for_each_possible_cpu() pode realizar mais trabalho do que for_each_online_cpu(), mas esta alteração afeta apenas kernels com CONFIG_KASAN_GENERIC. O trabalho extra é limitado aos caminhos de encolhimento e destruição do cache, não afetando o caminho rápido normal de alocação/liberação. Ele adiciona uma varredura protegida por raw-spinlock da lista shrink de cada CPU possível. Essas listas estão normalmente vazias; uma lista não vazia é percorrida para remover objetos pertencentes ao cache que está sendo encolhido ou destruído.

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

Responsável

Linux

Reservar

17/09/2026

Divulgação

24/09/2026

Moderação

aceite

Entrada

VDB-409412

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Do you need the next level of professionalism?

Upgrade your account now!