Update dependency Jinja2 to v3 [SECURITY] #129
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==2.10.1
->==3.1.4
GitHub Vulnerability Alerts
CVE-2020-28493
This affects the package jinja2 from 0.0.0 and before 2.11.3. The ReDOS vulnerability of the regex is mainly due to the sub-pattern [a-zA-Z0-9.-]+.[a-zA-Z0-9.-]+ This issue can be mitigated by Markdown to format user content instead of the urlize filter, or by implementing request timeouts and limiting process memory.
CVE-2024-22195
The
xmlattr
filter in affected versions of Jinja accepts keys containing spaces. XML/HTML attributes cannot contain spaces, as each would then be interpreted as 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. Note that accepting keys as user input is not common or a particularly intended use case of thexmlattr
filter, and an application doing so should already be verifying what keys are provided regardless of this fix.CVE-2024-34064
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 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
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.Release Notes
pallets/jinja (Jinja2)
v3.1.4
Compare Source
Released 2024-05-05
xmlattr
filter 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-5mfj
v3.1.3
Compare Source
Released 2024-01-10
empty. :pr:
1858
xmlattr
filter does not allow keys with spaces. :ghsa:h5c8-rqwp-cp95
{% trans %}
blocksmore helpful. :pr:
1918
v3.1.2
Compare Source
Released 2022-04-28
Environment.overlay
to match__init__
.:issue:
1645
FileSystemBytecodeCache
. :issue:1654
v3.1.1
Compare Source
Released 2022-03-25
:issue:
1637
v3.1.0
Compare Source
Released 2022-03-24
Drop support for Python 3.6. :pr:
1534
Remove previously deprecated code. :pr:
1544
WithExtension
andAutoEscapeExtension
are built-in now.contextfilter
andcontextfunction
are replaced bypass_context
.evalcontextfilter
andevalcontextfunction
are replaced bypass_eval_context
.environmentfilter
andenvironmentfunction
are replacedby
pass_environment
.Markup
andescape
should be imported from MarkupSafe.recompiled.
Context
subclasses is no longersupported. Override
resolve_or_missing
instead ofresolve
.unicode_urlencode
is renamed tourl_quote
.Add support for native types in macros. :issue:
1510
The
{% trans %}
tag can usepgettext
andnpgettext
bypassing a context string as the first token in the tag, like
{% trans "title" %}
. :issue:1430
Update valid identifier characters from Python 3.6 to 3.7.
:pr:
1571
Filters and tests decorated with
@async_variant
are pickleable.:pr:
1612
Add
items
filter. :issue:1561
Subscriptions (
[0]
, etc.) can be used after filters, tests, andcalls when the environment is in async mode. :issue:
1573
The
groupby
filter is case-insensitive by default, matchingother comparison filters. Added the
case_sensitive
parameter tocontrol this. :issue:
1463
Windows drive-relative path segments in template names will not
result in
FileSystemLoader
andPackageLoader
loading fromdrive-relative paths. :pr:
1621
v3.0.3
Compare Source
Released 2021-11-09
:issue:
1535
when parsing values on Python 3.10. :pr:
1537
:issue:
1514
hash(Node)
behavior. Nodes are hashed by idagain :issue:
1521
PackageLoader
works when the package is a single module file.:issue:
1512
v3.0.2
Compare Source
Released 2021-10-04
to still be referenced outside of it. :issue:
1427
compile_templates
deterministic for filter and importnames. :issue:
1452, 1453
Undefined
to act likeStrictUndefined
for thein
operator. :issue:1448
environments. :issue:
1494
PackageLoader
will not include a current directory (.) pathsegment. This allows loading templates from the root of a zip
import. :issue:
1467
v3.0.1
Compare Source
Released 2021-05-18
1418
imports in user projects. :issue:
1426
1433
autoescape
andwith_
extensions shows more relevant context. :issue:
1429
jinja2.Markup
without an argument.Use
markupsafe.Markup
instead. :issue:1438
render
for an async template usesasyncio.new_event_loop
This fixes a deprecation that Python 3.10 introduces. :issue:
1443
v3.0.0
Compare Source
Released 2021-05-11
Drop support for Python 2.7 and 3.5.
Bump MarkupSafe dependency to >=1.1.
Bump Babel optional dependency to >=2.1.
Remove code that was marked deprecated.
Add type hinting. :pr:
1412
Use :pep:
451
API to load templates with:class:
~loaders.PackageLoader
. :issue:1168
Fix a bug that caused imported macros to not have access to the
current template's globals. :issue:
688
Add ability to ignore
trim_blocks
using+%}
. :issue:1036
Fix a bug that caused custom async-only filters to fail with
constant input. :issue:
1279
Fix UndefinedError incorrectly being thrown on an undefined variable
instead of
Undefined
being returned onNativeEnvironment
on Python 3.10. :issue:1335
Blocks can be marked as
required
. They must be overridden atsome point, but not necessarily by the direct child. :issue:
1147
Deprecate the
autoescape
andwith
extensions, they arebuilt-in to the compiler. :issue:
1203
The
urlize
filter recognizesmailto:
links and takesextra_schemes
(orenv.policies["urlize.extra_schemes"]
) torecognize other schemes. It tries to balance parentheses within a
URL instead of ignoring trailing characters. The parsing in general
has been updated to be more efficient and match more cases. URLs
without a scheme are linked as
https://
instead ofhttp://
.:issue:
522, 827, 1172
, :pr:1195
Filters that get attributes, such as
map
andgroupby
, canuse a false or empty value as a default. :issue:
1331
Fix a bug that prevented variables set in blocks or loops from
being accessed in custom context functions. :issue:
768
Fix a bug that caused scoped blocks from accessing special loop
variables. :issue:
1088
Update the template globals when calling
Environment.get_template(globals=...)
even if the template wasalready loaded. :issue:
295
Do not raise an error for undefined filters in unexecuted
if-statements and conditional expressions. :issue:
842
Add
is filter
andis test
tests to test if a name is aregistered filter or test. This allows checking if a filter is
available in a template before using it. Test functions can be
decorated with
@pass_environment
,@pass_eval_context
,or
@pass_context
. :issue:842
, :pr:1248
Support
pgettext
andnpgettext
(message contexts) in i18nextension. :issue:
441
The
|indent
filter'swidth
argument can be a string toindent by. :pr:
1167
The parser understands hex, octal, and binary integer literals.
:issue:
1170
Undefined.__contains__
(in
) raises anUndefinedError
instead of a
TypeError
. :issue:1198
Undefined
is iterable in an async environment. :issue:1294
NativeEnvironment
supports async mode. :issue:1362
Template rendering only treats
\n
,\r\n
and\r
as linebreaks. Other characters are left unchanged. :issue:
769, 952, 1313
|groupby
filter takes an optionaldefault
argument.:issue:
1359
The function and filter decorators have been renamed and unified.
The old names are deprecated. :issue:
1381
pass_context
replacescontextfunction
andcontextfilter
.pass_eval_context
replacesevalcontextfunction
andevalcontextfilter
pass_environment
replacesenvironmentfunction
andenvironmentfilter
.Async support no longer requires Jinja to patch itself. It must
still be enabled with
Environment(enable_async=True)
.:issue:
1390
Overriding
Context.resolve
is deprecated, overrideresolve_or_missing
instead. :issue:1380
v2.11.3
Compare Source
Released 2021-01-31
urlize
filter by reducing regexbacktracking. Email matching requires a word character at the start
of the domain part, and only word characters in the TLD. :pr:
1343
v2.11.2
Compare Source
Released 2020-04-13
__getattr__
, like:class:
~unittest.mock.Mock
to be treated as a:func:
contextfunction
. :issue:1145
wordcount
filter to trigger :class:Undefined
methodsby wrapping the input in :func:
soft_str
. :pr:1160
:issue:
1162
AttributeError
on access doesn't cause a recursion error.:issue:
1177
~loaders.PackageLoader
from 2.10 whichremoved the dependency on setuptools and pkg_resources, and added
limited support for namespace packages. The changes caused issues
when using Pytest. Due to the difficulty in supporting Python 2 and
:pep:
451
simultaneously, the changes are reverted until 3.0.:pr:
1182
:pr:
1178
namespace()
assignment object in templates works inasync environments. :issue:
1180
lstrip_blocks
is enabled. :issue:1138
~nativetypes.NativeEnvironment
doesn't evaluateintermediate strings during rendering. This prevents early
evaluation which could change the value of an expression.
:issue:
1186
v2.11.1
Compare Source
Released 2020-01-30
(
{{ data.items[1:] }}
) in an async template. :issue:1141
v2.11.0
Compare Source
Released 2020-01-27
version to support Python 2.7 and 3.5.
ChainableUndefined
class to support getitem andgetattr on an undefined object. :issue:
977
{%+
syntax (with NOP behavior) whenlstrip_blocks
isdisabled. :issue:
748
default
parameter for themap
filter. :issue:557
:func:
meta.find_undeclared_variables
. :issue:931
2.56e-3. :issue:
912
, :pr:922
legibility, like 12_345. :pr:
923
LRUCache.setdefault
. :pr:1000
trim
filter takes an optional string of characters to trim.:pr:
828
jinja2.ext.debug
extension adds a{% debug %}
tag toquickly dump the current context and available filters and tests.
:issue:
174
, :pr:798, 983
:issue:
857
, :pr:858
{{ 2 * (3 < 5) }}
outputs "2" instead of "False".:issue:
755
, :pr:938
boolean
,false
,true
,integer
andfloat
tests. :pr:
824
finalize
function is only applied to theoutput of expressions (constant or not), not static template data.
:issue:
63
FileSystemLoader
, a templatecan have the same name as a directory. :issue:
821
Undefined
when omitting theelse
clausein a
{{ 'foo' if bar }}
expression, regardless of theenvironment's
undefined
class. Omitting theelse
clause is avalid shortcut and should not raise an error when using
:class:
StrictUndefined
. :issue:710
, :pr:1079
loop
control variables such aslength
andrevindex0
when looping over a generator. :issue:459, 751, 794
,:pr:
993
it, in order to avoid a slow initial import. :issue:
765
|map
filter will await the filtercall if needed. :pr:
913
loop
attributes, the iterator is notadvanced ahead of the current iteration unless
length
,revindex
,nextitem
, orlast
are accessed. This makes itless likely to break
groupby
results. :issue:555
, :pr:1101
loop
attributeslength
andrevindex
work for async iterators. :pr:1101
be awaited if needed. :pr:
1101
~loader.PackageLoader
doesn't depend on setuptools orpkg_resources. :issue:
970
PackageLoader
has limited support for :pep:420
namespacepackages. :issue:
1097
os.PathLike
objects in:class:
~loader.FileSystemLoader
and :class:~loader.ModuleLoader
.:issue:
870
~nativetypes.NativeTemplate
correctly handles quotesbetween expressions.
"'{{ a }}', '{{ b }}'"
renders as the tuple('1', '2')
rather than the string'1, 2'
. :issue:1020
~nativetypes.NativeTemplate
directly creates a:class:
~nativetypes.NativeEnvironment
instead of a default:class:
Environment
. :issue:1091
LRUCache.copy()
, the copy's queue methods point tothe correct queue. :issue:
843
system encoding. :issue:
889
|wordwrap
filter treats existing newlines as separate paragraphsto be wrapped individually, rather than creating short intermediate
lines. :issue:
175
break_on_hyphens
parameter to|wordwrap
filter.:issue:
550
passed the context. :pr:
1108
the result follows Python's behavior of returning
False
if anycomparison returns
False
, rather than only the last one.:issue:
1102
and source for Python >= 3.7. :issue:
1104
internal compiler frames. :issue:
763
DerivedContextReference
node that can be used byextensions to get the current context and local variables such as
loop
. :issue:860
that were previously overlooked. :issue:
733
TemplateSyntaxError.source
is not empty when raised from anincluded template. :issue:
457
Undefined
value toget_template
(such as throughextends
,import
, orinclude
), raises anUndefinedError
consistently.select_template
will show theundefined message in the list of attempts rather than the empty
string. :issue:
1037
TemplateSyntaxError
can be pickled. :pr:1117
v2.10.3
Compare Source
Released 2019-10-04
setup.py
that was preventinginstallation.
v2.10.2
Compare Source
Released 2019-10-04
range
in the sandboxed environment usesxrange
onPython 2 to avoid memory use. :issue:
933
using debug builds of Python 3.7. :issue:
1050
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, 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.