Uma quarta vulnerabilidade foi identificada no núcleo do Linux (CVE-2026-46300) nas últimas duas semanas, permitindo que um usuário não privilegiado obtenha direitos de root ao sobrescrever dados no cache de páginas. A vulnerabilidade recebeu o codinome Fragnesia ou Copy Fail 3.0. A essência da vulnerabilidade é semelhante a vulnerabilidades anteriores, como Copy Fail e Dirty Frag. Assim como no caso do Dirty Frag, a nova vulnerabilidade está presente no subsistema xfrm-ESP, mas é causada por um erro diferente e requer uma correção separada. Um exploit funcional está disponível.
A vulnerabilidade se manifesta em núcleos do Linux lançados após 5 de maio, devido à ativação acidental com a correção da vulnerabilidade Dirty Frag. Para mitigar a vulnerabilidade Fragnesia, foi proposta uma correção para o núcleo do Linux. A análise dessa correção mostrou que ela era insuficiente, levando à preparação de uma segunda versão do patch.
A vulnerabilidade está presente no subsistema xfrm na implementação do mecanismo de encapsulamento do protocolo ESP (Encapsulating Security Payload) em TCP (ESP-in-TCP, RFC 8229), utilizado para encapsular tráfego IPsec sobre TCP. Para evitar a sobrecarga excessiva, operações utilizando o algoritmo AES-GCM eram executadas in-loco através da operação XOR nos dados no cache de páginas. Devido a um erro lógico, condições eram criadas permitindo sobrescrever 1 byte no cache de páginas em um deslocamento escolhido. Repetindo as operações, é possível alterar byte a byte o conteúdo de qualquer arquivo no cache de páginas.
Todas as operações de leitura de arquivos retornam primeiramente o conteúdo do cache de páginas. Quando os dados no cache de páginas são modificados, as operações de leitura de arquivos resultarão na devolução de informações que não estão realmente armazenadas no dispositivo, mas sim dados alterados. A exploração da vulnerabilidade consiste em modificar o cache de páginas para um arquivo executável com a flag suid root, previamente lido para o cache de páginas. No exploit proposto pelos pesquisadores, os primeiros 192 bytes do arquivo /usr/bin/su no cache de páginas são sobrescritos por código para executar /usr/bin/sh. A execução subsequente do utilitário 'su' resultará no carregamento na memória não do arquivo executável original do dispositivo, mas sim uma cópia alterada do cache de páginas.
Para explorar a vulnerabilidade Fragnesia, é necessário que a criação de espaços de nomes de identificadores de usuários (user namespace) esteja permitida no sistema. No Ubuntu, tal operação é, por padrão, proibida, mas pode ser autorizada através do sysctl "kernel.apparmor_restrict_unprivileged_userns=0" ou perfis do AppArmor. Em outras distribuições, a disponibilidade do "user namespace" para usuários não privilegiados depende de configurar o sysctl "kernel.unprivileged_userns_clone" (se for 0, está proibido).
Atualizações com correções para o kernel Linux e pacotes de kernel nas distribuições ainda não foram publicadas. O status da resolução das vulnerabilidades nas distribuições pode ser avaliado nas seguintes páginas: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora. Como uma medida de proteção alternativa, é possível bloquear o carregamento dos módulos do kernel esp4 e esp6:
sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 2>/dev/null; true"
Fonte: opennet.ru
