Execução remota de código na geração de imagens com o ImageResponse
O ImageResponse do next/og permite gerar imagens a partir do conteúdo definido pela aplicação. Sua implementação no Node.js é afetada por uma falha em uma dependência usada nesse processamento. Quando um atacante consegue fornecer valores inseridos no conteúdo de um SVG ou em seus atributos e estilos, a geração da imagem pode levar à execução de código no servidor. A falha depende desse caminho de entrada, por isso você precisa revisar como a imagem é montada.
Casos de uso afetados
- Você mantém uma rota de geração de imagens que usa o ImageResponse do next/og no Node.js e insere o parâmetro value da URL no elemento title de um SVG. Esse é o exemplo apresentado no comunicado: o atacante controla o texto enviado à rota e esse texto chega ao SVG processado pela versão afetada.
- Sua aplicação permite personalizar uma imagem com valores externos que viram atributos ou estilos de um SVG. Esse uso também está entre as condições afetadas quando a renderização ocorre pelo ImageResponse no Node.js e o atacante consegue controlar esses valores.
Confira na sua instância
Localize no código as importações de ImageResponse a partir de next/og e confira o runtime das rotas que geram imagens. Nas rotas executadas no Node.js, acompanhe o caminho do parâmetro recebido até o SVG, incluindo o elemento title e os valores usados em atributos ou estilos. No ambiente que executa a aplicação, confira a versão instalada do next com npm ls next e compare-a com a faixa >= 16.2.0 < 16.3.6. Após atualizar para a versão corrigida 16.3.6 e publicar o novo build, repita a consulta no ambiente publicado. Gere uma imagem com uma entrada comum para conferir o funcionamento da rota, sem interpretar esse teste funcional como comprovação de ausência da vulnerabilidade.
Versões afetadas e correções
| Linha | Afetadas | Corrigidas |
|---|---|---|
| next (npm) | >= 16.2.0 < 16.3.6 | 16.3.6 |
O aviso corresponde à CVE-2026-94545 e informa a pontuação 9,5 no CVSS 4.0. A implementação Edge do ImageResponse e as aplicações que não inserem valores controlados por um atacante no SVG estão fora das condições afetadas. Quando a atualização precisar aguardar, a orientação temporária é remover esses valores do conteúdo do SVG e de seus atributos e estilos renderizados no Node.js. A correção disponível no Next.js precisa ser aplicada ao ambiente para atualizar a versão executada.
