PT-2026-42692 · Debian+2 · Php-Twig+1

Publicado

2026-05-21

·

Atualizado

2026-06-13

·

CVE-2026-46640

CVSS v4.0

8.7

Alta

VetorAV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
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

CVE-2026-46640
GHSA-45VW-WH46-2VX8

Produtos afetados

Php-Twig
Twig/Twig