
Quick mitigation and patch script for CVE-2026-31431 (Copy Fail) on Ubuntu/Debian VPS
🌐 English | Português | Español | 中文 | Íslenska
Mitigação e correção em um comando para o CVE-2026-31431 — a vulnerabilidade "Copy Fail" do kernel Linux que permite escalada local de privilégios. O script desativa o módulo algif_aead afetado, atualiza o kernel via apt e (opcionalmente) instala um timer do systemd para manter o sistema atualizado.
Desenvolvido para servidores Ubuntu (também compatível com sistemas baseados em Debian).
⚠️ Revise o script antes de executar. Esta é uma ferramenta de segurança que roda como root. Leia o
copyfail.shantes de redirecioná-lo para osudo. Sempre prefira o processo oficial de atualização de kernel da sua distribuição quando possível.
CVE-2026-31431 ("Copy Fail") é uma falha lógica no módulo algif_aead do kernel (interface de socket AEAD da API de cripto em espaço de usuário). Um usuário local sem privilégios pode disparar uma escrita determinística de 4 bytes no page cache de qualquer arquivo legível — inclusive binários setuid — e obter acesso root em segundos. A falha foi introduzida em 2017 (commit 72548b093ee3) e afeta todo kernel construído entre 2017 e a correção. Este script desativa o módulo vulnerável enquanto você aplica o patch oficial da sua distribuição.
apt-get e awk disponíveissudo)wget -O copyfail.sh https://raw.githubusercontent.com/paulorlima9/copyfail-fix/main/copyfail.sh
chmod +x copyfail.sh
sudo ./copyfail.sh
Na primeira execução, o script irá:
/etc/modprobe.d/disable-algif.conf para bloquear o módulo algif_aeadalgif_aead se estiver carregadoapt-get update && apt-get upgrade -y para baixar o kernel corrigidoUm reboot é necessário após o upgrade para carregar o novo kernel.
sudo ./copyfail.sh [opções]
| Opção | Curto | Descrição |
|---|---|---|
--help | -h | Exibe a mensagem de ajuda |
--mitigate | -m | Aplica apenas a mitigação (desabilita o módulo algif_aead) |
--upgrade | -u | Atualiza apenas kernel/pacotes (apt-get upgrade) |
--check | -c | Exibe o status atual (versão do kernel, módulo, mitigação) |
--revert | -r | Reverte a mitigação (após o kernel estar corrigido e reiniciado) |
--supervision | -s | Ativa atualizações automáticas diárias via timer do systemd |
Correção completa — aplica mitigação e atualiza o kernel:
sudo ./copyfail.sh
Apenas verificar status:
sudo ./copyfail.sh --check
Apenas mitigação (sem atualizar o kernel):
sudo ./copyfail.sh --mitigate
Reverter mitigação após confirmar que o kernel foi corrigido e reiniciado:
sudo ./copyfail.sh --revert
Ativar atualização automática diária (Supervision):
sudo ./copyfail.sh --supervision
O recurso Supervision instala um timer do systemd que executa apt-get upgrade uma vez a cada 24 horas, garantindo que os patches de kernel sejam aplicados assim que a distribuição publicá-los.
Quando ativado, duas units do systemd são criadas:
copyfail-fix-supervision.service — serviço oneshot que executa o script com --upgradecopyfail-fix-supervision.timer — timer que dispara o serviço diariamente (e 5 minutos após o boot)# Verificar status do timer
systemctl status copyfail-fix-supervision.timer
# Ver próxima execução agendada
systemctl list-timers copyfail-fix-supervision.timer
# Desativar atualizações automáticas
sudo systemctl stop copyfail-fix-supervision.timer
sudo systemctl disable copyfail-fix-supervision.timer
# Disparar uma atualização manualmente
sudo systemctl start copyfail-fix-supervision.service
install algif_aead /bin/false em /etc/modprobe.d/disable-algif.conf para impedir o carregamento do módulo no próximo bootrmmod algif_aead para descarregá-lo do kernel em execução (ignorado se o módulo estiver em uso — reboot necessário)apt-get update seguido de um apt-get upgrade não-interativo para instalar o pacote de kernel mais recente--check, inspeciona uname -r, lsmod, o arquivo modprobe e o pacote linux-image-* mais recente--revert, remove o arquivo modprobe e recarrega o módulo via modprobeDurante a execução, o script exibe indicadores de progresso:
+ (verde) — ação aplicada- (vermelho) — ação revertida. (cinza) — ação ignorada (já aplicada ou não aplicável)! (amarelo) — aviso (ex: reboot necessário)MIT