CVE-2026-66066: Falha Crítica no Rails Expondo Arquivos do Servidor através de Uploads de Imagens

CVE-2026-66066: Falha Crítica no Rails Expondo Arquivos do Servidor através de Uploads de Imagens

SOC Prime Team
SOC Prime Team linkedin icon Seguir

Add to my AI research

Ruby on Rails lançou atualizações de segurança para uma vulnerabilidade crítica no Active Storage que pode permitir a um atacante não autenticado ler arquivos arbitrários de um servidor de aplicação através de uploads de imagens manipuladas. Rastreada como CVE-2026-66066 e classificada com 9.5 na escala CVSS, a falha pode expor segredos acessíveis ao processo Rails e potencialmente permitir execução remota de código ou movimento lateral para sistemas conectados.

O problema origina-se da interação entre o Active Storage e o libvips, a biblioteca de processamento de imagens selecionada por aplicações Rails usando load_defaults 7.0 e padrões posteriores. Em uma configuração padrão do Rails que aceita uploads de imagens de usuários não confiáveis, operações inseguras do libvips podem processar um arquivo malicioso e divulgar dados que nunca deveriam ser acessíveis através de uma imagem carregada.

Os detalhes mais importantes sobre o CVE-2026-66066 dizem respeito à sensibilidade das informações potencialmente expostas. Um atacante pode recuperar o ambiente do processo Rails, secret_key_base, a chave mestre do Rails, credenciais de banco de dados, chaves de armazenamento em nuvem e tokens de API de terceiros. Dependendo dos segredos obtidos, o ataque pode progredir de divulgação de arquivos arbitrários para falsificação de sessão, comprometimento da aplicação ou acesso a infraestrutura externa.

Análise do CVE-2026-66066

A fragilidade reside no processamento de variantes do Active Storage quando a aplicação usa o libvips. O libvips suporta numerosos carregadores, salvadores e outras operações para lidar com formatos de arquivo. Algumas dessas operações dependem de bibliotecas de terceiros e são classificadas como “não testadas” ou não confiáveis porque são inseguras para processar entrada hostil.

O Active Storage não bloqueava essas operações antes de passar anexos carregados para o analisador e transformador Vips. Como resultado, um upload manipulado pode invocar uma operação insegura e obter o conteúdo de arquivos arbitrários que podem ser lidos pelo trabalhador do Rails.

Nos cenários mais sérios, atacantes leem arquivos do servidor através de uploads de imagens e recuperam valores sensíveis do ambiente da aplicação. A falha não requer uma funcionalidade dedicada de redimensionamento ou thumbnail para ser exposta. De acordo com o aviso do Rails, gerar variantes de imagem não é um requisito separado para uma aplicação estar vulnerável.

CVE-2026-66066 afeta aplicações que atendem ambas as condições a seguir:

  • Usam libvips para processamento de imagens do Active Storage, tipicamente através de config.active_storage.variant_processor = :vips.
  • Permitem que usuários não confiáveis façam upload de imagens.

Os intervalos afetados reportados incluem Rails 7.0.0 a 7.2.3.1, Rails 8.0.0 a 8.0.5, e Rails 8.1.0 a 8.1.3. Aplicações Rails 6.0 e 6.1 também podem ser expostas quando administradores configuram explicitamente o Vips como o processador de imagens, embora não fosse o padrão para essas versões. Aplicações que usam MiniMagick em vez de Vips não estão expostas a esse caminho de ataque em particular.

Uma vez que a leitura de arquivos arbitrários é alcançada, os atacantes podem mirar em:

  • secret_key_base
  • config/master.key ou a variável de ambiente RAILS_MASTER_KEY
  • Segredos descriptografados de config/credentials.yml.enc
  • Nomes de usuário e senhas do banco de dados
  • Chaves de armazenamento Amazon S3, Google Cloud Storage, ou Azure
  • Tokens para pagamento, mensagens, monitoramento e outros serviços de terceiros

Obter o secret_key_base pode ser particularmente perigoso porque o Rails o usa para proteger dados assinados e criptografados da aplicação. Dependendo da aplicação e das cadeias de gadgets disponíveis, um valor roubado pode permitir a um atacante forjar dados confiáveis e possivelmente progredir para execução de código. Credenciais de nuvem ou API também podem suportar movimento lateral além do servidor Rails comprometido.

Uma prova de conceito (PoC) de terceiro para CVE-2026-66066 apareceu logo após a divulgação coordenada e afirma reproduzir uma cadeia de leitura de arquivos arbitrários para RCE em um ambiente Docker isolado. O Hacker News não havia verificado independentemente esse código no momento de seu relatório atualizado, enquanto as equipes de pesquisa originais intencionalmente retiveram detalhes sobre as mecânicas de exploração para dar aos administradores tempo para aplicar patches.

Atualmente, não há IOCs publicados por fornecedores para CVE-2026-66066 ou relatos confirmados de exploração em campo. A equipe de segurança do Rails disse não estar ciente de tentativas de exploração antes ou depois da divulgação, mas a ausência de ataques conhecidos não deve ser interpretada como evidência de que as aplicações expostas estão seguras.

Mitigação do CVE-2026-66066

Administradores devem atualizar o Active Storage para uma das seguintes versões corrigidas:

  • Rails 7.2.3.2 ou posterior
  • Rails 8.0.5.1 ou posterior
  • Rails 8.1.3.1 ou posterior

Rails 7.0 e 7.1 não estão mais sob suporte de segurança e não receberão uma correção retroativa. Aplicações rodando nesses branches devem migrar para Rails 7.2.3.2 ou uma versão mais recente suportada.

A configuração corrigida também requer libvips 8.13 ou posterior. Aplicações que usam diretamente o gem ruby-vips devem rodar ruby-vips 2.2.1 ou posterior. A correção chama Vips.block_untrusted(true) durante a inicialização do Active Storage, impedindo operações inseguras do libvips de processar uploads hostis.

Atualizar fecha o caminho de processamento vulnerável, mas não invalida segredos que possam já ter sido divulgados. As organizações devem tratar cada valor lido pelo processo da aplicação Rails como potencialmente comprometido e rotacioná-lo. Isso inclui segredos de assinatura de aplicação, chaves mestras, credenciais de banco de dados, chaves de serviços de armazenamento e tokens de terceiros.

Trocar o secret_key_base invalidará sessões ativas e exigirá que os usuários façam login novamente. Também afeta cookies criptografados, cookies assinados, IDs globais assinados e URLs do Active Storage previamente emitidos. Administradores não devem manter um segredo exposto como uma opção de retorno após a rotação.

Quando uma atualização imediata do Rails não for possível, aplicações usando libvips 8.13 ou posterior podem definir a seguinte variável de ambiente:

VIPS_BLOCK_UNTRUSTED

Aplicações usando ruby-vips 2.2.1 ou posterior podem alternativamente adicionar a seguinte chamada a um inicializador:

Vips.block_untrusted(true)

Versões do Libvips anteriores a 8.13 não podem bloquear as operações inseguras. Nesses ambientes, não há solução alternativa segura apenas com configuração. Administradores devem atualizar o libvips ou remover a dependência, como removendo ruby-vips do Gemfile onde não for necessário.

A detecção do CVE-2026-66066 deve começar com um inventário de aplicações usando Active Storage, Vips e uploads de imagens não confiáveis. Equipes de segurança devem revisar logs de aplicações e proxies para atividades de upload incomuns, formatos de imagem inesperados, erros repetidos de processamento de variantes e solicitações seguidas por uso suspeito de sessão ou credenciais.

Para detectar exposição ao CVE-2026-66066, as equipes devem verificar as versões exatas do Active Storage, libvips e ruby-vips, ao invés de confiar apenas na versão principal do Rails. As aplicações também devem ser revisadas quanto a evidências de acesso não autorizado envolvendo credenciais que estavam disponíveis para o processo do Rails.

Proof of Value

 

FAQ

O que é o CVE-2026-66066 e como ele funciona?

CVE-2026-66066 é uma vulnerabilidade crítica de leitura de arquivo arbitrário no Active Storage do Ruby on Rails. O Active Storage permitia operações inseguras do libvips para processar uploads controlados pelo atacante, permitindo a um usuário não autenticado recuperar arquivos legíveis pelo processo da aplicação Rails. Segredos da aplicação roubados podem então suportar execução remota de código ou movimento lateral.

Quando o CVE-2026-66066 foi descoberto pela primeira vez?

As datas de descoberta privada não foram publicamente divulgadas. A questão foi reportada independentemente por pesquisadores do Ethiack e GMO Flatt Security, e o aviso de segurança coordenado do Rails foi publicado em 29 de julho de 2026.

Qual é o impacto do CVE-2026-66066 nos sistemas?

O impacto direto é a divulgação arbitrária de arquivos. Atacantes podem obter segredos de assinatura da aplicação, credenciais do Rails, senhas de banco de dados, chaves de armazenamento em nuvem ou tokens de terceiros. Dependendo dos dados expostos e da configuração da aplicação, o comprometimento pode escalar para falsificação de sessão, execução remota de código ou acesso a serviços conectados.

O CVE-2026-66066 ainda pode me afetar em 2026?

Sim. Aplicações Rails continuam expostas se usarem uma versão vulnerável do Active Storage, processarem imagens com libvips e aceitarem uploads de usuários não confiáveis. Aplicações Rails 7.0 e 7.1, que já chegaram ao fim de vida, também estão em risco e devem ser atualizadas para um branch suportado.

Como posso me proteger do CVE-2026-66066?

Atualize para Rails 7.2.3.2, 8.0.5.1, 8.1.3.1, ou uma versão posterior; garanta que o libvips esteja na versão 8.13 ou mais recente; e use ruby-vips 2.2.1 ou posterior onde aplicável. Rotacione todos os segredos disponíveis ao processo de aplicação e revise a atividade de upload em busca de possível exploração.

Junte-se à plataforma Detection as Code da SOC Prime para melhorar a visibilidade das ameaças mais relevantes para o seu negócio. Para ajudá-lo a começar e gerar valor imediato, agende uma reunião agora com os especialistas da SOC Prime.

More Articles