O projeto Ruby on Rails publicou nesta semana correções para uma vulnerabilidade crítica no Active Storage, o componente do framework que cuida dos arquivos enviados por usuários, como fotos de perfil, documentos e anexos. A falha, registrada como GHSA-f3w6-w445-fwh9, recebeu nota 9.8 de 10 na escala CVSS. As versões corrigidas são a 8.1.4.1 e a 8.0.5.2.
O detalhe que torna o caso grave é a forma de ataque. Segundo a equipe do Rails, basta anexar um arquivo malicioso a um registro para disparar o problema. A aplicação não precisa abrir, redimensionar nem gerar miniatura da imagem. Qualquer formulário que aceite upload e use o Active Storage vira porta de entrada.
Onde está o defeito
O problema mora na relação entre o Active Storage e o ImageMagick, biblioteca de processamento de imagens usada por baixo dos panos. O ImageMagick escolhe o “coder”, o módulo que interpreta cada formato, olhando o conteúdo do arquivo. Sem uma política de segurança restritiva, um invasor consegue enviar um arquivo que se passa por imagem comum e aciona módulos perigosos. Com isso, é possível ler dados sigilosos do servidor e gravar arquivos arbitrários nele, o que costuma ser o primeiro passo para tomar a máquina inteira.
A descoberta é de RyotaK, pesquisador da empresa japonesa GMO Flatt Security, que reportou a brecha pelo programa de recompensas do HackerOne. Os mesmos pacotes de atualização também corrigem uma segunda vulnerabilidade, identificada como GHSA-v924-7rp8-4mxh.
O que muda nas versões novas
A partir da 8.1.4.1 e da 8.0.5.2, o Rails passa a aplicar por padrão uma política de segurança fechada para o ImageMagick. Ela bloqueia o coder MSL, os comandos que passam pelo Ghostscript (interpretador de PostScript e PDF) e outras funções capazes de ler arquivos externos. É o tipo de configuração que muita equipe deveria ter feito à mão e nunca fez, porque o ImageMagick vem permissivo de fábrica na maioria das distribuições Linux.
O aviso oficial pede atualização o quanto antes. Há uma recomendação extra para quem guarda os uploads no próprio servidor, com o serviço Disk do Active Storage: nesse cenário, a equipe orienta trocar imediatamente as chaves mestras e as demais credenciais da aplicação, já que um invasor pode ter lido esses segredos antes da correção.
Por que interessa a quem não programa
O Rails roda por trás de lojas virtuais, plataformas de assinatura, sistemas de gestão e muitos serviços web feitos por startups brasileiras. O usuário final não tem o que instalar, mas os dados dele ficam nesses servidores. Se uma empresa demorar a aplicar o patch, cadastros e documentos enviados por clientes ficam ao alcance de quem explorar a falha.
Para desenvolvedores e times de infraestrutura, a tarefa é direta: subir o Rails para 8.1.4.1 ou 8.0.5.2, rodar os testes e publicar. Quem usa o serviço Disk precisa somar a rotação de credenciais à lista. Projetos em séries mais antigas do framework devem conferir o aviso de segurança do Rails para ver se há correção para a versão em uso ou se a saída é migrar.
