Pesquisadores da Universidade de Tecnologia de Graz, na Áustria, descobriram um novo ataque cross-cache (PDF) que pode contornar as defesas modernas do kernel e fornecer acesso de leitura e escrita arbitrário. Os exploits envolvidos afetam as versões do kernel Linux 5.19 e 6.2.
A equipe chamou a técnica de ataque de SLUBStick. Este vetor de ataque aproveita a reutilização de memória do alocador do kernel de uma maneira inovadora, tornando-o mais confiável do que a maioria dos outros ataques cross-cache. Enquanto a maioria dos ataques cross-cache tem uma taxa de sucesso de apenas 40%, os pesquisadores elevaram o SLUBStick a uma taxa de sucesso de 99% para caches genéricos frequentemente usados.
Essa taxa de sucesso vem apesar das proteções de segurança modernas disponíveis para o kernel Linux. Reconhecendo a suscetibilidade do kernel Linux a vulnerabilidades de segurança de memória, pesquisadores e desenvolvedores de kernel incluíram defesas para inibir o sucesso dos ataques cross-cache.
No entanto, o SLUBStick é capaz de contornar a Prevenção de Execução em Modo Supervisor (SMEP), a Prevenção de Acesso em Modo Supervisor (SMAP) e a Randomização do Layout do Espaço de Endereços do Kernel (KASLR). Os pesquisadores observam que as defesas atuais do kernel prometem reduzir a ameaça do SLUBStick, mas nenhuma atualmente fornece proteção abrangente. Portanto, o perigo de exploração via SLUBStick ainda é natural, mesmo com as defesas do kernel em uso.
O SLUBStick aproveita uma vulnerabilidade de heap na gestão de memória do Linux para obter privilégios elevados, escapar de ambientes sandbox em máquinas virtuais e obter acesso root ao sistema host. Pior ainda, a técnica usa um exploit de canal lateral para observar o uso de memória e determinar o momento exato de realocar ou não um hash de memória. Isso significa que o SLUBStick pode prever e controlar a reutilização de memória para aumentar sua taxa de sucesso.
Para que o SLUBStick funcione, os atacantes precisam de acesso local ao sistema Linux atacado. O ataque também requer a presença de uma vulnerabilidade de heap no kernel Linux, encontrada tanto no kernel Linux 5.19 quanto no kernel 6.2.
Os pesquisadores analisaram sistematicamente o ataque nas duas versões do kernel Linux, descobrindo que o SLUBStick era eficaz na execução em cache genérico de kmalloc-08 a kmalloc-4096. Usando uma vulnerabilidade sintética e nove CVEs reais, eles testaram o método de ataque para escalar privilégios e obter acesso root.
O SLUBStick foi testado em máquinas virtuais x86 e aarch64, e é igualmente eficaz em processadores baseados em Intel e AMD, bem como em CPUs Arm. A equipe observa que a técnica de ataque proporcionada pelo SLUBStick “aumenta significativamente a confiabilidade dos ataques cross-cache de caches genéricos e os torna práticos para exploração.” Em outras palavras, o SLUBStick pode tornar outros ataques mais bem-sucedidos e eficazes.
Fonte: Stefan Gast

