-
Notifications
You must be signed in to change notification settings - Fork 0
chore(deps): update dependency jinja2 to v3.1.6 [security] #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop-ng
Are you sure you want to change the base?
Conversation
Branch automerge failureThis PR was configured for branch automerge. However, this is not possible, so it has been raised as a PR instead. |
|
By default, I don't review pull requests opened by bots. If you would like me to review this pull request anyway, you can request a review via the |
Reviewer's Guide by SourceryThis PR updates the jinja2 dependency from version 3.1.3 to 3.1.5 to address multiple security vulnerabilities. The update also includes some bug fixes and improvements. Sequence diagram showing potential XSS vulnerability in xmlattr filtersequenceDiagram
actor Attacker
actor Victim
participant App
participant Jinja2
Note over Attacker, Jinja2: CVE-2024-34064 vulnerability (v3.1.3)
Attacker->>App: Submit malicious attribute key with '/' or '>'
App->>Jinja2: Use xmlattr filter with malicious key
Jinja2-->>App: Renders unsafe HTML attributes
App-->>Victim: Serves page with injected attributes
Note over Victim: Potential XSS attack
Note over Attacker, Jinja2: After fix in v3.1.5
Attacker->>App: Submit malicious attribute key
App->>Jinja2: Use xmlattr filter
Jinja2-->>App: Blocks keys with '/', '>', '='
App-->>Victim: Serves safe page
Sequence diagram showing sandbox escape vulnerabilitysequenceDiagram
actor Attacker
participant App
participant Jinja2
participant Python
Note over Attacker, Python: CVE-2024-56326 vulnerability (v3.1.3)
Attacker->>App: Submit template with malicious str.format reference
App->>Jinja2: Execute template in sandbox
Jinja2->>Python: Indirect str.format call via filter
Note over Python: Arbitrary code execution
Note over Attacker, Python: After fix in v3.1.5
Attacker->>App: Submit template with malicious str.format
App->>Jinja2: Execute template in sandbox
Jinja2-->>App: Blocks indirect format calls
Note over App: Attack prevented
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Welcome @renovate[bot]! 🎉Great PR! I've analyzed your code changes for:
Ready to see the full review?
Let's make your code even better together! 🚀 |
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Join our Discord community for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have skipped reviewing this pull request. Here's why:
- It seems to have been created by a bot (hey, renovate[bot]!). We assume it knows what it's doing!
- We don't review packaging changes - Let us know if you'd like us to change this.
|
Here's the code health analysis summary for commits Analysis Summary
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Summary
This PR updates the Jinja2 dependency from version 3.1.3 to 3.1.5 to address three critical security vulnerabilities in the NextGenContributions/nitpick repository.
- Updates
docs/requirements.txtto use Jinja2 3.1.5 to fix CVE-2024-34064 (XSS via xmlattr filter) - Patches CVE-2024-56326 vulnerability in sandboxed environment str.format handling
- Fixes CVE-2024-56201 compiler bug that could allow arbitrary code execution
- Includes improvements to async template handling and generator cleanup
- Maintains Python version compatibility requirements (>=3.8, <4.0)
💡 (1/5) You can manually trigger the bot by mentioning @greptileai in a comment!
1 file(s) reviewed, no comment(s)
Edit PR Review Bot Settings | Greptile
4517785 to
28c74b9
Compare
2df3310 to
d5df5aa
Compare
d5df5aa to
8dfe82e
Compare
🎉 Snyk checks have passed. No issues have been found so far.✅ security/snyk check is complete. No issues have been found. (View Details) |
Code Review Agent Run #f25c12Actionable Suggestions - 0Review Details
|
Changelist by BitoThis pull request implements the following key changes.
|
8dfe82e to
2e2c47e
Compare
Code Review Agent Run #627e90Actionable Suggestions - 0Review Details
|
2e2c47e to
706b996
Compare
Code Review Agent Run #4267b7Actionable Suggestions - 0Review Details
|
706b996 to
a3a9454
Compare
This PR contains the following updates:
==3.1.3→==3.1.6GitHub Vulnerability Alerts
CVE-2024-34064
The
xmlattrfilter 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 the previous GHSA-h5c8-rqwp-cp95 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
xmlattrfilter, 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.CVE-2024-56326
An oversight in how the Jinja sandboxed environment detects calls to
str.formatallows an attacker that controls the content of a template to execute arbitrary Python code.To exploit the vulnerability, an attacker needs to control the content of a template. Whether that is the case depends on the type of application using Jinja. This vulnerability impacts users of applications which execute untrusted templates.
Jinja's sandbox does catch calls to
str.formatand ensures they don't escape the sandbox. However, it's possible to store a reference to a malicious string'sformatmethod, then pass that to a filter that calls it. No such filters are built-in to Jinja, but could be present through custom filters in an application. After the fix, such indirect calls are also handled by the sandbox.CVE-2024-56201
A bug in the Jinja compiler allows an attacker that controls both the content and filename of a template to execute arbitrary Python code, regardless of if Jinja's sandbox is used.
To exploit the vulnerability, an attacker needs to control both the filename and the contents of a template. Whether that is the case depends on the type of application using Jinja. This vulnerability impacts users of applications which execute untrusted templates where the template author can also choose the template filename.
CVE-2025-27516
An oversight in how the Jinja sandboxed environment interacts with the
|attrfilter allows an attacker that controls the content of a template to execute arbitrary Python code.To exploit the vulnerability, an attacker needs to control the content of a template. Whether that is the case depends on the type of application using Jinja. This vulnerability impacts users of applications which execute untrusted templates.
Jinja's sandbox does catch calls to
str.formatand ensures they don't escape the sandbox. However, it's possible to use the|attrfilter to get a reference to a string's plain format method, bypassing the sandbox. After the fix, the|attrfilter no longer bypasses the environment's attribute lookup.Release Notes
pallets/jinja (jinja2)
v3.1.6Compare Source
Released 2025-03-05
|attrfilter does not bypass the environment's attribute lookup,allowing the sandbox to apply its checks. :ghsa:
cpwx-vrp4-4pq7v3.1.5Compare Source
Released 2024-12-21
str.format, such asby passing a stored reference to a filter that calls its argument.
:ghsa:
q2x7-8rv6-6q7hissues with names that contain f-string syntax.
:issue:
1792, :ghsa:gmj6-6f8f-6699clearandpopon known mutable sequencetypes. :issue:
2032renderfor an async template usesasyncio.run.:pr:
1952auto_aiterwarnings. :pr:1960aclose-ableAsyncGeneratorfromTemplate.generate_async. :pr:1960root_render_func()unclosed inTemplate.generate_async. :pr:1960:pr:
1960concatfunction for the current environmentwhen calling block references. :issue:
1701|uniqueasync-aware, allowing it to be used after anotherasync-aware filter. :issue:
1781|intfilter handlesOverflowErrorfrom scientific notation.:issue:
1921{% set ... %}call. :issue:
2021copy/pickle/etc) interaction withUndefinedobjects. :issue:
2025copy/picklesupport for the internalmissingobject.:issue:
2027Environment.overlay(enable_async)is applied correctly. :pr:2061FileSystemLoaderincludes the paths that weresearched. :issue:
1661PackageLoadershows a clearer error message when the package does notcontain the templates directory. :issue:
17051880urlizedoes not addmailto:to values like@a@b. :pr:1870@pass_context`` can be used with the ``|select`` filter. :issue:1624`setfor multiple assignment (a, b = 1, 2) does not fail when thetarget is a namespace attribute. :issue:
1413setin all branches of{% if %}{% elif %}{% else %}blocksdoes not cause the variable to be considered initially undefined.
:issue:
1253v3.1.4Compare Source
Released 2024-05-05
xmlattrfilter does not allow keys with/solidus,>greater-than sign, or
=equals sign, in addition to disallowing spaces.Regardless of any validation done by Jinja, user input should never be used
as keys to this filter, or must be separately validated first.
:ghsa:
h75v-3vvj-5mfjConfiguration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.