{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreiawkkiwvceawgzv7oz32rjglvkwxl3oz7bkwcwpxbd2mkby6xwhue",
    "uri": "at://did:plc:3pjw65epwlo3rzajhx6xg4br/app.bsky.feed.post/3mkosdluy5so2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreiglsck2otcp5qnxugckrvrkqz7blvwe3yqqky72n6hhzh6e6xybyu"
    },
    "mimeType": "image/png",
    "size": 628924
  },
  "path": "/2026/04/30/copy-fail-cve-2026-31431-como-mitigar-impedindo-o-acesso-a-root/",
  "publishedAt": "2026-04-30T04:06:58.000Z",
  "site": "https://assuntonerd.com.br",
  "tags": [
    "coffnix"
  ],
  "textContent": "**Copy Fail (CVE-2026-31431)** é uma vulnerabilidade de **escalonamento local de privilégio** no kernel Linux **QUE TOMOU CONTA DAS REDES SOCIAIS**. Ela foi divulgada publicamente em **29 de abril de 2026** e está ligada ao subsistema criptográfico do kernel, especialmente à interface **AF_ALG / algif_aead** e ao template criptográfico **authencesn**. Em termos práticos: um usuário local sem privilégios pode abusar de uma falha lógica para fazer uma escrita controlada de poucos bytes no **page cache** de um arquivo legível e, a partir disso, alterar o comportamento de binários privilegiados para obter root.\n\nO conceito central é que o kernel permite que programas em userspace usem algoritmos criptográficos via sockets **AF_ALG**. A falha apareceu em uma lógica de operação “in-place” em AEAD, isto é, quando a origem e o destino da operação criptográfica são tratados de forma inadequada como se pudessem compartilhar o mesmo espaço/mapeamento. O patch oficial basicamente remove essa complexidade e volta a operar “out-of-place”, porque não havia benefício real em operar in-place nesse caso.\n\nO nome **Copy Fail** vem justamente dessa ideia: uma cópia que deveria cair em um destino seguro acaba afetando um local errado/controlável. A exploração pública descreve uma cadeia envolvendo **AF_ALG** , **splice()** , page cache e uma escrita controlada de **4 bytes** em arquivo legível. Isso é perigoso porque muitos binários privilegiados do sistema, como `su`, `sudo`, `pkexec`, `passwd`, `mount`, `chsh` e `chfn`, normalmente são executáveis setuid-root e, em várias distribuições, também são legíveis por usuários comuns.\n\nO impacto é alto porque não é uma exploração remota: o atacante precisa ter **acesso local** ao sistema, por exemplo uma conta shell, usuário em servidor compartilhado, container mal isolado ou ambiente multiusuário. Mas, uma vez dentro, a falha pode permitir virar root sem depender de race condition, offsets específicos por distribuição ou tentativas instáveis. Os pesquisadores afirmam ter testado em Ubuntu, Amazon Linux, RHEL e SUSE, incluindo SUSE 16.\n\n> Nós como membros da OWASP Capítulo São Paulo, temos a missão de ajudar a mitigar este problema…\n\nA mitigação principal e correta é **atualizar o kernel** para uma versão que contenha o patch/revert de `algif_aead`. A mitigação com `chmod` é uma **defesa emergencial:** ela reduz a superfície de ataque removendo permissão de leitura de binários setuid sensíveis, mantendo a execução e o bit setuid. Então abaixo o comando de autoria do **Raphael Bastos** A.K.A. **coffnix** para executar o chmod removendo o direito de leitura dos comandos _passwd chsh chfn mount sudo pkexec_\n\n\n    for b in passwd chsh chfn mount sudo pkexec;\n       do p=$(readlink -f \"$(command -v \"$b\")\");\n       [ -n \"$p\" ] && chmod 4711 \"$p\"; done\n\nO brinquedo funciona assim: ele percorre a lista de binários sensíveis (`passwd`, `chsh`, `chfn`, `mount`, `sudo`, `pkexec`), encontra o caminho real de cada um com `command -v` e `readlink -f`, e aplica `chmod 4711` no arquivo encontrado.\n\nO modo **4711** significa:\n\n\n\n\n    4 = ativa o bit setuid\n\n\n\n\n    7 = dono/root pode ler, escrever e executar\n\n\n\n\n    1 = grupo só pode executar\n\n\n\n\n    1 = outros usuários só podem executar\n\nOu seja, o binário continua funcionando como setuid-root, mas deixa de ser **legível** por usuários comuns. Como a exploração depende de atingir arquivos legíveis no page cache, remover a permissão de leitura desses binários dificulta ou bloqueia essa cadeia específica contra esses alvos.\n\nEm sistemas de produção, eu usaria assim:\n\n\n    sudo sh -c 'for b in passwd chsh chfn mount sudo pkexec; do p=$(readlink -f \"$(command -v \"$b\")\"); [ -n \"$p\" ] && chmod 4711 \"$p\"; done'\n\nDepois valide:\n\n\n    ls -l /usr/bin/passwd /usr/bin/chsh /usr/bin/chfn /usr/bin/mount /usr/bin/sudo /usr/bin/pkexec\n\nVocê deve ver algo parecido com:\n\n\n    -rws--x--x root root ...\n\nResumo: **patch de kernel é a correção real** ; `chmod 4711` nos binários setuid é uma mitigação rápida para reduzir o alvo explorável enquanto o kernel corrigido não é aplicado.",
  "title": "Copy Fail (CVE-2026-31431) como mitigar/impedir o acesso a root."
}