Uma imagem preparada permite escrever ficheiros em servidores Ruby on Rails

04.11.2026 4 min 5

O Ruby on Rails, o framework web que faz funcionar muitas lojas online, produtos SaaS e startups, corrigiu uma falha crítica: um atacante sem qualquer conta podia escrever ficheiros arbitrários no servidor bastando carregar uma imagem preparada. O erro está no Active Storage, o componente do Rails que trata do envio de ficheiros, e afeta as aplicações que processam imagens com o ImageMagick. Tem uma pontuação de 9,8 em 10, segundo o aviso de segurança do Rails. A correção saiu a 4 de novembro no Rails 8.0.5.2 e 8.1.4.1.

Como um único envio compromete o servidor

O ImageMagick decide como ler um ficheiro pelo seu conteúdo, não pelo nome. Alguns dos seus «codificadores» não se limitam a descodificar uma imagem: seguem instruções dentro do ficheiro e leem ou escrevem outros ficheiros no disco. O Active Storage não restringia nenhum deles e executa o seu analisador ImageMagick assim que um ficheiro é anexado. «Basta anexar o ficheiro enviado; não é preciso nenhuma chamada a variant, preview ou analyze», diz o aviso.

Se a aplicação guarda os ficheiros no disco local (o serviço Disk), o atacante pode também ler qualquer ficheiro a que a aplicação tenha acesso. Entre eles costumam estar o secret_key_base e as credenciais de bases de dados, armazenamento na nuvem e serviços de terceiros. Com elas, avisa o documento, um atacante pode chegar à execução remota de código ou passar para os sistemas ligados. A falha foi comunicada pelo investigador ryotak através do HackerOne. O Rails diz que lhe foi reportada uma cadeia de ataque, «mas não assumimos que seja a única».

Que aplicações são afetadas

Uma aplicação é vulnerável se as três condições se verificarem:

  • As imagens são processadas pelo ImageMagick. É o processador de variantes :mini_magick, o predefinido nas aplicações com load_defaults 6.1 ou anterior. Desde o Rails 7.0, as aplicações novas usam libvips, pelo que só ficam expostas se alguém as tiver mudado de volta para o ImageMagick.
  • O ImageMagick corre sem uma política restrita. As políticas incluídas nos pacotes Debian e Ubuntu não bloqueiam os codificadores envolvidos.
  • Desconhecidos podem enviar ficheiros: avatares, fotos de produtos, anexos em pedidos de suporte.

Estão afetadas as versões do activestorage anteriores à 8.0.5.2 e o ramo 8.1 antes da 8.1.4.1. Os ramos antigos não terão correção: a equipa do Rails diz que as versões anteriores já não têm suporte e recomenda passar pelo menos para a série 8.0, cujo suporte de segurança, ainda assim, termina a 7 de novembro de 2026. A mesma versão corrige outros 20 problemas de segurança, quatro deles de gravidade alta, incluindo uma falha distinta nas pré-visualizações de vídeo que podia levar à execução de código através do FFmpeg.

O aviso não menciona ataques reais. Mas, depois de publicada a correção, os atacantes podem comparar o código antigo com o novo para descobrir onde estava a falha, por isso cada dia sem atualizar aumenta o risco.

O que os programadores devem fazer

  • Atualize para o Rails 8.0.5.2 ou 8.1.4.1. Se usa o mini_magick, precisa também do mini_magick 5.1 ou mais recente, caso contrário a aplicação falha no arranque.
  • Se não puder atualizar já, copie a política do ImageMagick da versão corrigida para o policy.xml do sistema. No mínimo, bloqueie o codificador MSL, os codificadores do Ghostscript e o delegado gs.
  • Se os ficheiros eram guardados com o serviço Disk, mude o secret_key_base, a chave mestra, todo o conteúdo do credentials.yml.enc, as palavras-passe das bases de dados e do armazenamento e os tokens de terceiros. O aviso pede que não se guarde o segredo antigo como alternativa.
  • Se a aplicação gera PDF ou PostScript através do ImageMagick, depois de aplicar a política volte a permitir apenas os codificadores de que precisa.

Quem usa sites feitos em Rails não tem nada para instalar. O risco para essas pessoas é que os dados de clientes de uma loja ou serviço por atualizar sejam roubados, e isso depende da rapidez com que os programadores atualizam.

ruby on railsimagemagickvulnerabilidadeatualização de segurançacódigo abertoservidoresfuga de dadoscibersegurança

Leia também