Jinja2 sandbox escape via string formatting
In Pallets Jinja before 2.10.1, `str.format_map` allows a sandbox escape. The sandbox is used to restrict what code can be evaluated when rendering untrusted, user-provided templates. Due to the way string formatting works in Python, the `str.format_map` method could be used to escape the sandbox. This issue was previously addressed for the `str.format` method in Jinja 2.8.1, which discusses the issue in detail. However, the less-common `str.format_map` method was overlooked. This release applies the same sandboxing to both methods. If you cannot upgrade Jinja, you can override the `is_safe_attribute` method on the sandbox and explicitly disallow the `format_map` method on string objects.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2019-10906US | high8.6 | — | ||
In Pallets Jinja before 2.10.1, str.format_map allows a sandbox escape. | ||||
references
External citations — patches, advisories, analysis.
- http://lists.opensuse.org/opensuse-security-announce/2019-05/msg00030.htmlWEB
- http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00064.htmlWEB
- https://access.redhat.com/errata/RHSA-2019:1152WEB
- https://access.redhat.com/errata/RHSA-2019:1237WEB
- https://access.redhat.com/errata/RHSA-2019:1329WEB
- https://github.com/advisories/GHSA-462w-v97r-4m45ADVISORY
- https://github.com/pallets/jinjaPACKAGE
- https://github.com/pypa/advisory-database/tree/main/vulns/jinja2/PYSEC-2019-217.yamlWEB
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