Jinja2 vulnerable to sandbox breakout through attr filter selecting format method
An oversight in how the Jinja sandboxed environment interacts with the `|attr` filter allows an attacker that controls the content of a template to execute arbitrary Python code. To exploit the vulnerability, an attacker needs to control the content of a template. Whether that is the case depends on the type of application using Jinja. This vulnerability impacts users of applications which execute untrusted templates. Jinja's sandbox does catch calls to `str.format` and ensures they don't escape the sandbox. However, it's possible to use the `|attr` filter to get a reference to a string's plain format method, bypassing the sandbox. After the fix, the `|attr` filter no longer bypasses the environment's attribute lookup.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2025-27516US | high8.8 | — | ||
Jinja is an extensible templating engine. Prior to 3.1.6, an oversight in how the Jinja sandboxed environment interacts with the |attr filter allows an attacker that controls the c… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/advisories/GHSA-cpwx-vrp4-4pq7ADVISORY
- https://github.com/pallets/jinjaPACKAGE
- https://github.com/pallets/jinja/commit/90457bbf33b8662926ae65cdde4c4c32e756e403FIX
- https://github.com/pallets/jinja/security/advisories/GHSA-cpwx-vrp4-4pq7WEB
- https://lists.debian.org/debian-lts-announce/2025/04/msg00022.htmlWEB
- https://lists.debian.org/debian-lts-announce/2025/04/msg00045.htmlWEB
- https://nvd.nist.gov/vuln/detail/CVE-2025-27516ADVISORY
- https://pypi.org/project/jinja2PACKAGE
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan