CWE-1336
Neutralização Imprópria de Elementos Especiais Usados em um Motor de Templates
Sobre
O produto usa um motor de templates para inserir ou processar entrada influenciada externamente, mas não neutraliza, ou neutraliza incorretamente, elementos especiais ou sintaxe que podem ser interpretados como expressões de template ou outras diretivas de código quando processados pelo motor.
Muitas aplicações web usam motores de templates que permitem aos desenvolvedores inserir valores influenciados externamente em texto livre ou mensagens, a fim de gerar uma página web, documento, mensagem, etc. completos. Tais motores incluem Twig, Jinja2, Pug, Java Server Pages, FreeMarker, Velocity, ColdFusion, Smarty e muitos outros - incluindo o próprio PHP. Alguns CMS (Content Management Systems) também usam templates. Motores de templates frequentemente têm sua própria linguagem personalizada de comandos ou expressões. Se um atacante puder influenciar a entrada de um template antes de ele ser processado, então o atacante pode invocar expressões arbitrárias, ou seja, realizar ataques de injeção. Por exemplo, em algumas linguagens de template, um atacante poderia injetar a expressão "{{7*7}}" e determinar se a saída retorna "49". A sintaxe varia dependendo da linguagem. Em alguns casos, ataques do estilo XSS podem funcionar, o que pode obscurecer a causa raiz se o desenvolvedor não investigar de perto a causa raiz do erro. Motores de templates podem ser usados no servidor ou no cliente, então ambos os "lados" poderiam ser afetados pela injeção. Os mecanismos de ataque ou as tecnologias afetadas podem ser diferentes, mas o erro é fundamentalmente o mesmo.
Consequências comuns
- Integridade → Executar Código ou Comandos Não Autorizados
Mitigações
- Arquitetura e Projeto: Escolha um motor de templates que ofereça um modo sandbox ou restrito, ou que ao menos limite o poder de quaisquer expressões, chamadas de função ou comandos disponíveis.
- Implementação: Use o modo sandbox ou restrito do motor de templates, se disponível.
CVEs com esta fraqueza
Perguntas frequentes
O que é CWE-1336?
O produto usa um motor de templates para inserir ou processar entrada influenciada externamente, mas não neutraliza, ou neutraliza incorretamente, elementos especiais ou sintaxe que podem ser interpretados como expressões de template ou outras diretivas de código quando processados pelo motor.
Quais plataformas CWE-1336 afeta?
CWE-1336 já foi observada em: Java, PHP, Python, JavaScript, Interpreted, Not OS-Specific, Not Technology-Specific, AI/ML, +1.
Quantas CVEs a Rainforest acompanha para CWE-1336?
O Rainforest Labs acompanha atualmente 1 CVEs publicadas associadas a CWE-1336. Elas estão listadas nesta página.
Potencialize sua estratégia de segurança com a Rainforest
Descubra vulnerabilidades cedo, priorize ameaças críticas e proteja o que realmente importa. A Rainforest simplifica suas operações de segurança, economizando tempo e reduzindo custos, para você focar no que move o seu negócio.
