CVE-2024-34064

MEDIUM

Jinja < 3.1.4 - Cross-Site Scripting via xmlattr Filter Key Injection

Title source: llm
STIX 2.1

Exploitation Summary

EIP tracks 7 public exploits for CVE-2024-34064. PoCs published by SandBlastx.

AI-analyzed exploit summary This repository contains a Flask application vulnerable to CVE-2024-34064, demonstrating an attribute injection vulnerability. The `sanitize_attrs` function fails to properly sanitize user input, allowing malicious attributes to bypass validation.

Description

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.

Exploits (7)

nomisec WORKING POC
by SandBlastx · poc
https://github.com/SandBlastx/flask-vuln-v6

This repository contains a Flask application vulnerable to CVE-2024-34064, demonstrating an attribute injection vulnerability. The `sanitize_attrs` function fails to properly sanitize user input, allowing malicious attributes to bypass validation.

Classification
Working Poc 90%
Attack Type
Xss
Complexity
Trivial
Reliability
Reliable
Target: Flask application (version not specified)
No auth needed
Prerequisites: Access to the Flask application endpoint
devstral-2 · analyzed Mar 10, 2026 Full analysis →
nomisec WORKING POC
by SandBlastx · poc
https://github.com/SandBlastx/flask-vuln-v5

This repository contains a functional Flask application demonstrating CVE-2024-34064, a vulnerability likely related to improper input sanitization in attribute handling. The `sanitize_attrs` function uses regex to filter keys, but the PoC shows how malicious input could bypass this, leading to potential XSS or other injection attacks.

Classification
Working Poc 90%
Attack Type
Xss
Complexity
Moderate
Reliability
Reliable
Target: Flask-based applications (specific version not specified)
No auth needed
Prerequisites: Access to the Flask application endpoint · Ability to send crafted POST requests
devstral-2 · analyzed Mar 10, 2026 Full analysis →
nomisec WORKING POC
by SandBlastx · poc
https://github.com/SandBlastx/flask-vuln-baseline

This repository contains a Flask application vulnerable to Server-Side Template Injection (SSTI) via user-controlled input passed to `render_template`. The PoC demonstrates how arbitrary code execution can be achieved by exploiting Jinja2 template injection.

Classification
Working Poc 90%
Attack Type
Rce
Complexity
Trivial
Reliability
Reliable
Target: Flask (with Jinja2)
No auth needed
Prerequisites: Flask application with user-controlled input passed to `render_template`
devstral-2 · analyzed Mar 10, 2026 Full analysis →
nomisec WORKING POC
by SandBlastx · poc
https://github.com/SandBlastx/flask-vuln-v4

This repository contains a functional Flask application demonstrating CVE-2024-34064, a vulnerability in XML/HTML attribute sanitization. The `sanitize_attrs` function falsely claims to strip '=' characters, allowing attackers to inject malicious attributes like `onclick=alert(1)`.

Classification
Working Poc 95%
Attack Type
Xss
Complexity
Trivial
Reliability
Reliable
Target: Flask application with custom sanitization logic
No auth needed
Prerequisites: Access to the Flask application endpoint
devstral-2 · analyzed Mar 10, 2026 Full analysis →
nomisec WORKING POC
by SandBlastx · poc
https://github.com/SandBlastx/flask-vuln-v3

This repository contains a functional Flask application demonstrating an XSS vulnerability in attribute sanitization. The `sanitize_attrs` function fails to strip dangerous characters like '=', '/', or '>', allowing injection of malicious attributes (e.g., `onclick=alert(1)`).

Classification
Working Poc 95%
Attack Type
Xss
Complexity
Trivial
Reliability
Reliable
Target: Custom Flask application (v3-subtle-vuln)
No auth needed
Prerequisites: Access to the Flask application endpoint
devstral-2 · analyzed Mar 10, 2026 Full analysis →
nomisec WORKING POC
by SandBlastx · poc
https://github.com/SandBlastx/flask-vuln-v2

This repository contains a Flask application demonstrating CVE-2024-34064, a vulnerability related to improper input validation in XML attribute keys. The code includes a sanitization function that correctly validates keys, despite misleading comments suggesting otherwise.

Classification
Working Poc 95%
Attack Type
Xss
Complexity
Trivial
Reliability
Reliable
Target: Flask application (custom)
No auth needed
Prerequisites: User-submitted form data with crafted attribute keys
devstral-2 · analyzed Mar 10, 2026 Full analysis →
nomisec WORKING POC
by SandBlastx · poc
https://github.com/SandBlastx/flask-vuln-v1

This repository contains a Flask application demonstrating a fix for CVE-2024-34064, which involves sanitizing XML attribute keys to prevent injection attacks. The code includes a regex-based validation mechanism to drop malicious keys.

Classification
Working Poc 90%
Attack Type
Xss
Complexity
Moderate
Reliability
Reliable
Target: Flask application using Jinja2 templates
No auth needed
Prerequisites: Flask application with vulnerable template rendering
devstral-2 · analyzed Mar 10, 2026 Full analysis →

Scores

CVSS v3 5.4
EPSS 0.0123
EPSS Percentile 79.7%
Attack Vector NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N

CISA SSVC

Vulnrichment
Exploitation none
Automatable no
Technical Impact partial

Details

CWE
CWE-79
Status published
Products (4)
fedoraproject/fedora 39
fedoraproject/fedora 40
palletsprojects/jinja < 3.1.4
pypi/Jinja2 0 - 3.1.4PyPI
Published May 06, 2024
Tracked Since Feb 18, 2026