Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-7fxw-r6jv-74c8

Опубликовано: 21 мая 2026
Источник: github
Github: Прошло ревью
CVSS4: 5.8

Описание

Twig: {% sandbox %}{% include %} skips checkSecurity() on cached templates (incomplete fix for CVE-2024-45411)

Description

The fix for CVE-2024-45411 / GHSA-6j75-5wfj-gh66 added an explicit $loaded->unwrap()->checkSecurity() call in CoreExtension::include() so that a template already cached in Environment::$loadedTemplates is re-checked when included with sandboxed = true.

The deprecated but still functional {% sandbox %}{% include ... %}{% endsandbox %} tag path was not updated: it compiles to enableSandbox(); yield from $this->load(...)->unwrap()->yield(...); disableSandbox(); with no checkSecurity() re-invocation. If the included template was loaded once outside the sandbox in the same Environment instance, its constructor (and therefore its compiled checkSecurity() call) already ran while isSandboxed() was false, so the tags/filters/functions allowlist enforced by SecurityPolicy::checkSecurity() is never applied.

An attacker who can author the included template gains access to every filter, function and tag registered in the environment, regardless of the sandbox policy.

Resolution

The compiled output of {% sandbox %}{% include %} now calls checkSecurity() on the loaded template, matching the behaviour of CoreExtension::include() with sandboxed = true.

Credits

Twig would like to thank Claude Mythos Preview (via Project Glasswing) for reporting the issue and providing the fix.

Пакеты

Наименование

twig/twig

composer
Затронутые версииВерсия исправления

< 3.26.0

3.26.0

EPSS

Процентиль: 18%
0.00265
Низкий

5.8 Medium

CVSS4

Дефекты

CWE-693

Связанные уязвимости

CVSS3: 8.1
ubuntu
28 дней назад

Twig is a template language for PHP. Prior to 3.26.0, {% sandbox %}{% include %} can include a template that was previously loaded outside the sandbox without re-invoking checkSecurity(), allowing the cached template to use tags, filters, and functions that should have been denied by SecurityPolicy::checkSecurity(). This issue is fixed in version 3.26.0.

CVSS3: 8.1
nvd
28 дней назад

Twig is a template language for PHP. Prior to 3.26.0, {% sandbox %}{% include %} can include a template that was previously loaded outside the sandbox without re-invoking checkSecurity(), allowing the cached template to use tags, filters, and functions that should have been denied by SecurityPolicy::checkSecurity(). This issue is fixed in version 3.26.0.

CVSS3: 8.1
debian
28 дней назад

Twig is a template language for PHP. Prior to 3.26.0, {% sandbox %}{% ...

EPSS

Процентиль: 18%
0.00265
Низкий

5.8 Medium

CVSS4

Дефекты

CWE-693