XSS in Pallets Jinja

CVE-2024-34064

Jinja is an extensible templating engine. The `xmlattr` filter in affected versions of Jinja accepts keys containing non-attribute characters. XML/HTML attributes cannot contain spaces, `/`, `>`, or `=`, as each would then be interpreted as starting a separate attribute. If an application accepts keys (as opposed to only values) as user input, and renders these in pages that other users see as well, an attacker could use this to inject other attributes and perform XSS. The fix for CVE-2024-22195 only addressed spaces but not other characters. Accepting keys as user input is now explicitly considered an unintended use case of the `xmlattr` filter, and code that does so without otherwise validating the input should be flagged as insecure, regardless of Jinja version. Accepting _values_ as user input continues to be safe. This vulnerability is fixed in 3.1.4.

Vulnerability class: XSS (Cross-Site Scripting)

EPSS: 0.010 (58.6th percentile) — read the EPSS interpretation.

CVSS v3 metric

CVSS v3 base score 5.4 (Medium). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N.

Affected products

Weakness classification (CWE)

Public proof-of-concept exploits

References

Frequently asked questions

What is CVE-2024-34064?
CVE-2024-34064 is a medium-severity vulnerability in Pallets Jinja, classified under Cross-site Scripting. CVSS score: 5.4/10. Published 2024-05-06.
How severe is CVE-2024-34064?
Medium severity. CVSS v3 base score is 5.4 out of 10.
Is CVE-2024-34064 known to be exploited?
13 public proof-of-concept repositories are indexed. Not currently listed in the CISA KEV catalog.