jinja2 3.1.6
- Source
- https://github.com/pallets/jinja
- Tag scanned
3.1.6- Compared with
3.1.5(0 signals introduced since)- Files
- 89 scanned, 15 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 12 info
- Scan time
- 8.8 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 10 of 10 warn and critical signals; 10 demoted to info.
- Disclude version
- 4.1.0
- Scanned (UTC)
- 2026-10-21 22:04
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
dismissed A documentation sentence mentioning the word 'eval' in prose.
Reasoning
The snippet is prose in reStructuredText documentation ('eval context object itself.'), not a call to eval. The finding is a false match on the word in text.
-
r -
�ׇׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣ৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூ… -
��ꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ⟨U+FE00⟩-⟨U+FE0F⟩︠-︯︳︴﹍-﹏_𐇽𐋠𐍶-𐍺𐨁-𐨃𐨅𐨆𐨌-𐨏𐨸-𐨿𐨺𐫦𐫥𐴤-𐽆𐴧-𐽐𑀀-𑀂𑀸-𑁆𑁿-𑂂𑂰-𑂺𑄀-𑄂𑄧-𑄴𑅅𑅆𑅳𑆀-𑆂𑆳-𑇀𑇉-𑇌𑈬-𑈷𑈾𑋟-𑋪𑌀-𑌃𑌻𑌼𑌾-𑍄𑍇𑍈𑍋-𑍍𑍗…likely benign A long line of Unicode characters defining the valid identifier character set for the template engine.Reasoning
This file is Jinja2's generated Unicode identifier table, a regex character class of ID_Start/ID_Continue ranges. Invisible and variation-selector code points are expected in such a table. The 'encoded payload' reading does not fit a regex character class.
-
=likely benign Loads cached compiled template bytecode from a file in the bytecode cache.Reasoning
marshal.load on a bytecode cache file is Jinja2's documented bytecode cache feature. It is a real code-object sink, so the risk is that an attacker who can write the cache directory could run code. That is a known trust-boundary property, not hidden malicious intent.
-
# Raise an exception at the correct line number. : =likely benign Builds a code object that raises an exception at the template line for traceback rewriting.Reasoning
This compiles a constructed string that raises an exception at a chosen line number, to rewrite tracebacks for template errors. The string is built from integers and a fixed name, so it is a legitimate debugging technique.
-
return . # type: ignorelikely benign Executes the generated template code to produce a traceback frame.Reasoning
exec runs compiled template code during traceback rewriting, with the code produced by the template compiler. This is the expected use in this debugging module.
-
""" return compile(source, filename, "exec") @typing.overloadlikely benign Compiles generated template source into a Python code object.Reasoning
This is the core template compile step, turning template source into a code object. Compiling template source is the purpose of the engine.
-
= = =likely benign Executes compiled template code to create the template module namespace.Reasoning
This executes a compiled template code object in a namespace when loading a template from bytecode or source. It is the normal template loading path.
-
=likely benign Dynamically imports the package named in PackageLoader to locate templates.Reasoning
This imports a package module by name to load templates through PackageLoader. The module name comes from the loader's configuration by the developer, not from untrusted input.
-
return returnlikely benign Dynamically imports a module or attribute from a dotted import name.Reasoning
This is the import_string helper, which imports a dotted name supplied by the developer. Dynamic import is its purpose, and it is a documented utility.
-
return returnlikely benign Fallback dynamic import resolving an attribute from a dotted import name.Reasoning
This is the same import_string helper's fallback path for resolving an attribute from a dotted name. It is a legitimate utility, with the same reasoning as the finding above.
Reproduce This Scan
Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
&&