
PoC exploit for CVE-2026-11104 demonstrating Jinja2 attr filter bypass in Flask, enabling server-side template injection and remote code execution.
|attr Filter Bypass# vulnerable_app.py - Flask with Jinja2 SSTI via 'attr' filter
from flask import Flask, request, render_template_string
app = Flask(__name__)
@app.route('/')
def index():
name = request.args.get('name', 'World')
# UNSAFE: directly renders user input as template
template = f"<h1>Hello {name}!</h1>"
return render_template_string(template)
if __name__ == '__main__':
app.run(port=5000)
|attr FilterA Flask application uses render_template_string with user input, allowing server-side template injection. Even if some keywords are blocked, the |attr filter can be used to bypass filters and achieve remote code execution.
pip install flask
python vulnerable_app.py
python exploit_ssti_attr.py