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.
{ "nvd_published_at": "2019-04-07T00:29:00Z", "cwe_ids": [ "CWE-693" ], "severity": "HIGH", "github_reviewed": true, "github_reviewed_at": "2020-06-16T20:57:35Z" }