
Scanner automatizado e auxiliar de correção para CVE-2026-31431, que detecta hosts Linux vulneráveis via SSH, verifica versões do kernel e aplica atualizações do kernel ou mitigações temporárias em múltiplas distribuições.
Copy Fail é um scanner de segurança automatizado e auxiliar de patch para detectar e corrigir a vulnerabilidade CVE-2026-31431 (Linux Kernel algif_aead Local Privilege Escalation) na sua infraestrutura Linux.
CVE-2026-31431 é uma vulnerabilidade de Local Privilege Escalation (LPE) no módulo do kernel Linux algif_aead (Asynchronous Cipher Interface for AEAD). Essa vulnerabilidade permite que um usuário local alcance escalonamento de privilégios para o nível root.
Esta ferramenta ajuda a:
Nota: Esta ferramenta é apenas para fins de auditoria e patch interno por sysadmins. Use apenas em sistemas que você possui ou tem autorização.

algif_aead (carregado/não carregado)Upgrade automático do kernel em hosts vulneráveis via gerenciador de pacotes:
Opção: Reboot automático após o patch
algif_aead via configuração modprobe.dBanco de dados de versões de kernel já corrigidas para:
paramiko>=3.0.0 # Biblioteca SSH
rich>=13.0.0 # Interface de terminal bonita
git clone https://github.com/gagaltotal/cve-2026-31431-copy-fail.git
cd cve-2026-31431-copy-fail
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
ou instalar manualmente:
pip install paramiko>=3.0.0 rich>=13.0.0
python3 copyfail_scanner.py --help
# Escanear sub-rede com chave SSH
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH_TO_KEY>
# Escanear vários hosts específicos
python3 copyfail_scanner.py --hosts <IP1>,<IP2>,<IP3> --user <USERNAME> [--password <PASSWORD>]
# Escanear + patch automático
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH> --patch
# Escanear + mitigação temporária
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH> --mitigate
| Opção | Descrição | Exemplo |
|---|---|---|
--subnet | Sub-rede CIDR de destino (mutuamente exclusivo com --hosts) | --subnet 192.168.1.0/24 |
--hosts | Lista de IPs separados por vírgula (mutuamente exclusivo com --subnet) | --hosts 192.168.1.10,192.168.1.20 |
--user | Nome de usuário SSH (obrigatório) | --user root |
--password | Senha SSH (opcional, use se não houver chave) | --password secret123 |
--key | Caminho da chave privada SSH | --key ~/.ssh/id_rsa |
--port | Porta SSH (padrão: 22) | --port 2222 |
--threads | Número de threads paralelas (padrão: 30) | --threads 50 |
--patch | Upgrade automático do kernel em hosts vulneráveis | --patch |
--reboot | Reboot automático após o patch (use com --patch) | --patch --reboot |
--mitigate | Aplicar mitigação temporária (desativar algif_aead) | --mitigate |
--output | Exportar resultados do escaneamento para arquivo JSON | --output resultados.json |
--yes | Pular prompt de confirmação antes de patch/mitigação | --yes |
python3 copyfail_scanner.py \
--subnet 192.168.1.0/24 \
--user ubuntu \
--key ~/.ssh/id_rsa
Saída: Exibe tabela de resultados do escaneamento e resumo
python3 copyfail_scanner.py \
--hosts 10.0.1.5,10.0.1.6,10.0.1.7 \
--user admin \
--password my_password123
python3 copyfail_scanner.py \
--subnet 172.16.0.0/16 \
--user root \
--key ~/.ssh/id_rsa \
--mitigate
Ação: Escaneia todos os hosts e desativa o módulo algif_aead nos hosts vulneráveis (solicita confirmação)
python3 copyfail_scanner.py \
--subnet 192.168.0.0/24 \
--user ubuntu \
--key ~/.ssh/id_rsa \
--patch
Ação: Faz upgrade do kernel, mas não reinicia automaticamente (requer reboot manual)
python3 copyfail_scanner.py \
--subnet 10.10.0.0/24 \
--user root \
--key ~/.ssh/id_rsa \
--patch \
--reboot \
--yes
Ação: Escaneia, aplica patch no kernel, reinicia automaticamente, pula confirmação