PT-2026-42692 · Twigphp+5 · Twig+2
CVE-2026-46640
·
Publicado
2026-05-21
·
Atualizado
2026-07-14
CVSS v3.1
8.8
Alta
| Vetor | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
Twig versões anteriores a 3.15.0
Description
A sintaxe de atributo dinâmico
obj.(expr) permite que o atributo seja uma expressão arbitrária. Quando o receptor é self (ou qualquer alias {% import %}) e a expressão entre parênteses é uma literal de string, o DotExpressionParser desvia para o caminho de chamada de macro e concatena a string controlada pelo invasor em um nome MacroReferenceExpression sem validação de identificador. Subsequentemente, o MacroReferenceExpression::compile() emite esse nome de forma bruta no código PHP gerado. Um invasor que consiga fornecer a fonte do template pode injetar e executar PHP arbitrário no template compilado durante o tempo de carregamento do template, ocorrendo antes que o checkSecurity() seja chamado. Isso resulta em um bypass completo da SandboxExtension, mesmo quando um sandbox habilitado globalmente com uma lista de permissões SecurityPolicy vazia é utilizado.Recommendations
Atualize para uma versão onde o parser valide se o atributo dinâmico resolve para um identificador de macro válido antes do roteamento através do
MacroReferenceExpression e onde o compilador de referência de macro emita o nome através de um caminho devidamente escapado.Exploit
Correção
Code Injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Twig
Php-Twig
Twig/Twig