
Scripts Bash para detetar e mitigar a CVE-2026-31431 (Copy Fail) escalonamento de privilégios local no kernel Linux através de socket AF_ALG, incluindo desativação de módulos e configuração de seccomp.
Este projeto fornece um conjunto de scripts Bash para detectar e mitigar a vulnerabilidade de escalonamento de privilégios locais CVE-2026-31431 (também conhecida como "Copy Fail") no kernel Linux.
a664bf3d603d e patches posterioresA vulnerabilidade existe na implementação do socket AF_ALG do kernel Linux, onde um atacante pode obter escalonamento local de privilégios ao construir uma operação de bind authencesn específica.
| Arquivo | Finalidade | Permissão de Execução |
|---|---|---|
check_cve_2026_31431.sh | Detecção de impacto da vulnerabilidade e avaliação de risco | Usuário comum ou root |
cve-2026-31431-mitigate.sh | Executa medidas de mitigação (desativa módulos, gera configuração seccomp) | Requer root |
bash check_cve_2026_31431.sh
O script verifica os seguintes itens:
CONFIG_CRYPTO_USER_API_AEADalgif_aead / af_algauthencesn (para determinar se já está mitigado)A saída final fornece o nível de risco geral: UNKNOWN / LOW / MEDIUM / HIGH.
Nota: O script de mitigação requer privilégios de root.
sudo bash cve-2026-31431-mitigate.sh
As operações de mitigação incluem:
/etc/modprobe.d/disable-algif-aead.conf para proibir o carregamento do módulo algif_aeadalgif_aead já estiver carregado, tentar descarregá-lo (rmmod)depmod -a para atualizar as dependências dos módulossudo bash cve-2026-31431-mitigate.sh --verify-only # Apenas verificação, sem gravar configuração
sudo bash cve-2026-31431-mitigate.sh --write-seccomp # Gera adicionalmente configuração seccomp para Docker
sudo bash cve-2026-31431-mitigate.sh --seccomp-path /path # Especifica o caminho de saída do seccomp
O critério de ouro para determinar se a mitigação foi eficaz: falha no bind authencesn.
O "Item de verificação 5: Verificação de mitigação (bind authencesn)" do script de detecção tenta executar:
import socket
s = socket.socket(38, 5, 0) # AF_ALG
s.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))
CONFIG_CRYPTO_USER_API_AEAD=y (compilado estaticamente no kernel), a desativação do módulo geralmente não funciona; a única opção é atualizar o kernel.algif_aead estiver em uso, o rmmod pode falhar ao descarregar; recomenda-se verificar após reinicialização em uma janela de manutenção.socket(AF_ALG).a664bf3d603d e patches posteriores.Os scripts foram testados nos seguintes ambientes:
grep, sed, lsmod, modprobe, rmmod, depmod)python3 ou python (para validação de socket AF_ALG)Licença MIT
Os scripts fornecidos neste projeto destinam-se apenas à detecção de segurança e mitigação temporária, não substituem a atualização oficial do patch do kernel. Antes de usar estes scripts, compreenda completamente suas operações (como desativar módulos do kernel) e valide primeiro em um ambiente de teste. O autor não se responsabiliza por quaisquer perdas diretas ou indiretas causadas pelo uso desta ferramenta.