Update dependency twig/twig to v3.19.0 [SECURITY] #354
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:
3.14.2
->3.19.0
3.18.0
->3.19.0
Twig security issue where escaping was missing when using null coalesce operator
CVE-2025-24374 / GHSA-3xg3-cgvq-2xwr
More information
Details
When using the
??
operator, output escaping was missing for the expression on the left side of the operator.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
References
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
twigphp/Twig (twig/twig)
v3.19.0
Compare Source
??
Token::getType()
, useToken::test()
insteadToken::toEnglish()
ForElseNode
Twig\ExpressionParser::parseOnlyArguments()
andTwig\ExpressionParser::parseArguments()
(useTwig\ExpressionParser::parseNamedArguments()
instead)constant()
behavior when used with??
invoke
filter{}
optional for thetypes
tagLastModifiedExtensionInterface
and implementation inAbstractExtension
to track modification of runtime classesv3.18.0
Compare Source
SyntaxError
exceptions from undefined handlers when using theguard
tagTemplateWrapper::stream()
andTemplateWrapper::streamBlock()
)v3.17.1
Compare Source
v3.17.0
Compare Source
ConditionalExpression
andNullCoalesceExpression
(useConditionalTernary
andNullCoalesceBinary
instead)v3.16.0
Compare Source
InlinePrint
Source
instance toTokenStream
null
fromTwigFilter::getSafe()
andTwigFunction::getSafe()
, return[]
insteadv3.15.0
Compare Source
this can be a BC break if you don't use UPPERCASE constant names
plural
andsingular
filters in the String extensionTempNameExpression
in favor ofLocalVariable
NameExpression
in favor ofContextVariable
AssignNameExpression
in favor ofAssignContextVariable
MacroAutoImportNodeVisitor
MethodCallExpression
in favor ofMacroReferenceExpression
_self.xxx
(auto-imported) macrosfoo.bar(some: arg)
)guard
tag that allows to test if some Twig callables are available at compilation time\Closure
)not
unary operator in an expression with*
,/
,//
, or%
without using explicit parentheses to clarify precedence??
binary operator without explicit parentheses~
binary operator in an expression with+
or-
without using parentheses to clarify precedenceAbstractExpression
args to most constructor arguments for classes extendingAbstractExpression
power
expressions with a negative number in parenthesis ((-1) ** 2
)Node
directly. UseEmptyNode
orNodes
instead.Profile::getStartTime()
andProfile::getEndTime()
They were automatically converted to snake-cased before
attribute
function; use the.
notation and wrap the name with parenthesis insteadsandbox
tagdeprecation_info
instead of the other callable options)enum
functionxor
operatorConfiguration
📅 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 these updates again.
This PR has been generated by Renovate Bot.