Vulnerabilidades exploráveis remotamente no núcleo FreeBSD, Vim e Emacs

No FreeBSD, uma vulnerabilidade (CVE-2026-4747) foi corrigida, permitindo a execução de código em nível de kernel por meio do envio de pacotes de rede para um servidor NFS. O problema se manifesta ao utilizar o módulo kgssapi.ko, que implementa a API RPCSEC_GSS no lado do kernel. Além do kernel, a vulnerabilidade afeta aplicativos em espaço do usuário que utilizam a biblioteca librpcgss_sec e executam funções de servidor RPC. Aplicativos semelhantes, que não fazem parte do sistema base do FreeBSD, também podem ser atacados por meio do envio de pacotes de rede.

O problema está presente na implementação da API GSS (Generic Security Services), que permite o estabelecimento de canais de comunicação autenticados e protegidos com servidor. O RPCSEC_GSS é aplicado em servidores NFS para proteger o acesso ao Sun RPC usando autenticação baseada em Kerberos e criptografia do tráfego entre o servidor e o cliente. O problema é causado pelo fato de que, ao verificar a assinatura, os dados do pacote são copiados para um buffer fixo sem a devida verificação de correspondência de tamanho. A falha se manifesta antes da autenticação, mas requer a capacidade de enviar pacotes de rede ao servidor NFS. Um exploit está disponível, permitindo a execução remota de /bin/sh com permissões de root.

A vulnerabilidade foi descoberta por um funcionário da empresa Anthropic com a ajuda do assistente de IA Claude. Notavelmente, pesquisadores externos da equipe Calif usaram o Claude para escrever um exploit funcional, fornecendo apenas o relatório geral sobre a vulnerabilidade publicado pelo projeto FreeBSD como informação. Além da exploração direta da vulnerabilidade, o modelo de IA implantou uma máquina virtual com uma configuração vulnerável, configurou a depuração remota e a leitura de crash dumps do kernel, e organizou a execução de /bin/sh no exploit, após conseguir a execução de código em nível de kernel. Foram necessárias 4 horas de trabalho do modelo Claude para criar o exploit.

Os pesquisadores que desenvolveram o exploit não se limitaram a isso e continuaram os experimentos, utilizando Claude para identificar vulnerabilidades no Vim e no Emacs, que permitem a execução de seu código ao abrir arquivos especialmente formatados nos editores. Notavelmente, os prompts para o modelo se resumiam a tarefas primitivas, como "encontrar uma vulnerabilidade 0-day no Vim que surge ao abrir um arquivo". No final, o modelo Claude conseguiu identificar vulnerabilidades anteriormente desconhecidas.

A vulnerabilidade no Vim (CVE-2026-34714) é causada por um erro ao processar a opção tabpanel no modo modeline, que está habilitado por padrão (":set modeline"), oferecendo a capacidade de definir opções de edição no arquivo processado. De acordo com os desenvolvedores do Vim, através do modeline é permitida a configuração de um número limitado de opções, cujas expressões são executadas em um modo sandbox, permitindo apenas operações seguras mais simples.

A opção tabpanel não tinha a flag P_MLE definida, permitindo que a expressão %{expr} fosse utilizada, executada sem ativar o modo modelineexpr. Para contornar a isolação sandbox, foi explorada uma falha na função autocmd_add(), que carecia de verificações de segurança adequadas ao vincular uma ação ao evento SafeStateAgain, permitindo a execução de um comando após sair da isolação sandbox. A vulnerabilidade foi corrigida na versão Vim v9.2.0272. Um exemplo de linha que provoca a execução do utilitário "id" e direciona a saída para o arquivo "\/tmp\/calif-vim-rce-poc": /* vim: set showtabpanel=2 tabpanel=%{%autocmd_add([{‘event’\:’SafeStateAgain’,’pattern’\:’*’,’cmd’\:’!id>\/tmp\/calif-vim-rce-poc’,’once’\:1}])%}: *\/

A vulnerabilidade no Emacs é causada pelo processamento automático do conteúdo do diretório .git\/ quando ele está situado no mesmo diretório que o arquivo aberto. Nesse caso, ao abrir um arquivo, o Emacs executa os comandos "git ls-files" e "git status", que são realizados no contexto do conteúdo de ".git\/". Para facilitar a execução de código, basta abrir um arquivo no Emacs de um diretório que contenha o subdiretório .git\/ com o arquivo de configuração "config", incluindo a opção "core.fsmonitor" com o comando que o atacante deseja executar. Os mantenedores do GNU Emacs se recusaram a corrigir a vulnerabilidade, afirmando que o problema estava no Git.

Adicionalmente, pode-se notar mais duas vulnerabilidades:

  • CVE-2026-33150 — acesso à memória após sua liberação no manipulador io_uring da biblioteca libfuse, potencialmente permitindo a execução de código quando os recursos disponíveis se esgotam durante o uso de sistemas de arquivos implementados via FUSE (Filesystem in Userspace).
  • CVE-2026-34743 — estouro de buffer na implementação da função lzma_index_append() da biblioteca liblzma. O problema se manifesta ao usar a função lzma_index_decoder() para decodificar um índice que não contém registros, resultando em uma alocação de buffer menor do que o necessário. Observa-se que a API de baixo nível lzma_index* é utilizada em aplicações raramente, e é pouco provável que existam aplicações em que as condições necessárias para exploração do índice sejam atendidas. A vulnerabilidade foi corrigida na atualização XZ Utils 5.8.3.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster