
Exploit para CVE-2026-31431, uma vulnerabilidade authencesn do kernel Linux que permite escalonamento local de privilégios para root e fuga de contêiner via AF_ALG e splice().
O módulo de criptografia authesn do kernel Linux introduziu em 2017 uma otimização in-place para operações AEAD (criptografia autenticada), que faz com que, sob condições específicas, páginas somente leitura no page cache possam ser incorretamente colocadas em um scatterlist de destino gravável. Um atacante, por meio da API de criptografia do kernel exposta pelo socket AF_ALG, combinada com a chamada de sistema splice(), explora essa falha lógica para realizar uma escrita arbitrária de 4 bytes no page cache de binários setuid (como /usr/bin/su), adulterando a lógica do programa e obtendo um shell root.
Todo o processo de exploração é de lógica linear, sem necessidade de janela de corrida (race window), sem offsets específicos do kernel e sem pré-instalação de ferramentas especiais.
Escalação local de privilégios para root: qualquer conta de usuário local comum pode escalar incondicionalmente para root.
Escape de contêiner: em ambientes Kubernetes/contêiner, o page cache é compartilhado com o host; um atacante dentro do contêiner pode romper os limites do contêiner, comprometendo o nó host e outros tenants no mesmo nó.
Comprometimento de ambientes CI/CD: ambientes CI que executam código não confiável, como GitHub Actions, GitLab Runner e Jenkins Agent, permitem que um atacante obtenha privilégios root no host do Runner por meio de um PR malicioso.
Ambientes de nuvem multi-tenant: serviços em nuvem que executam código de usuário, como Notebook, Serverless e sandboxes de Agent, permitem que um tenant escale para root no host.
Vulnerabilidade persistente por quase uma década: o código problemático foi introduzido em 2017 e, desde então, todas as distribuições Linux foram afetadas.
Todas as versões do kernel Linux construídas entre 2017 e o lançamento do patch, incluindo:
Atualize para uma versão do kernel que inclua o commit mainline a664bf3d603d. As principais distribuições estão lançando versões corrigidas gradualmente:
# Ubuntu / Debian
apt update && apt upgrade linux-image-$(uname -r)
# RHEL / CentOS / Rocky / Alma
dnf update kernel
# Amazon Linux
yum update kernel
# SUSE
zypper update kernel-default
Após a atualização, reinicie o sistema para que o novo kernel entre em vigor e verifique se o commit de correção está incluído com o seguinte comando:
grep -r "a664bf3d603d" /proc/version 2>/dev/null || uname -r
# Verifica se o commit de correção está incluído ou compare com o número da versão corrigida no anúncio oficial da distribuição
Desabilitar o módulo do kernel algif_aead bloqueia o caminho de exploração da vulnerabilidade:
# Desabilitar permanentemente (efetivo após reinicialização)
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
# Descarregar imediatamente (efetivo na sessão atual)
rmmod algif_aead 2>/dev/null || true
Avaliação do impacto de desabilitar algif_aead:
Sem impacto: dm-crypt/LUKS, kTLS, IPsec/XFRM, builds padrão de OpenSSL/GnuTLS/NSS, SSH e criptografia de keyring do kernel — esses componentes usam diretamente a API de criptografia do kernel, sem passar pelo AF_ALG.
Possível impacto: OpenSSL com o engine afalg explicitamente habilitado, alguns caminhos de offload de criptografia embarcados e aplicativos que vinculam diretamente sockets aead/skcipher/hash. Você pode verificar se algum processo no sistema atual está usando AF_ALG com lsof | grep AF_ALG ou ss -xa.
| Distribuição | Versões de kernel afetadas |
| Ubuntu 24.04 LTS | 6.17.0-1007-aws e anteriores |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 e anteriores |
| RHEL 14.3 | 6.12.0-124.45.1.el10_1 e anteriores |
| SUSE 16 | 6.12.0-160000.9-default e anteriores |
| Debian / Arch / Fedora / Rocky / Alma / Oracle | Versões de kernel do mesmo período são afetadas |