Skip to content
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

Update dependency twig/twig to v3.11.2 [SECURITY] #576

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 9, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
twig/twig (source) 3.4.3 -> 3.11.2 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2024-45411

Description

Under some circumstances, the sandbox security checks are not run which allows user-contributed templates to bypass the sandbox restrictions.

The security issue happens when all these conditions are met:

  • The sandbox is disabled globally;
  • The sandbox is enabled via a sandboxed include() function which references a template name (like included.twig) and not a Template or TemplateWrapper instance;
  • The included template has been loaded before the include() call but in a non-sandbox context (possible as the sandbox has been globally disabled).

Resolution

The patch ensures that the sandbox security checks are always run at runtime.

Credits

We would like to thank Fabien Potencier for reporting and fixing the issue.

CVE-2024-51754

Description

In a sandbox, an attacker can call __toString() on an object even if the __toString() method is not allowed by the security policy when the object is part of an array or an argument list (arguments to a function or a filter for instance).

Resolution

The sandbox mode now checks the __toString() method call on all objects.

The patch for this issue is available here for the 3.11.x branch, and here for the 3.x branch.

Credits

We would like to thank Jamie Schouten for reporting the issue and Fabien Potencier for providing the fix.

CVE-2024-51755

Description

In a sandbox, and attacker can access attributes of Array-like objects as they were not checked by the security policy.
They are now checked via the property policy and the __isset() method is now called after the security check.
This is a BC break.

Resolution

The sandbox mode now ensures access to array-like's properties is allowed.

The patch for this issue is available here for the 3.11.x branch, and here for the 3.x branch.

Credits

We would like to thank Jamie Schouten for reporting the issue and Nicolas Grekas for providing the fix.


Release Notes

twigphp/Twig (twig/twig)

v3.11.2

Compare Source

  • [BC BREAK] Fix a security issue in the sandbox mode allowing an attacker to call attributes on Array-like objects
    They are now checked via the property policy
  • Fix a security issue in the sandbox mode allowing an attacker to be able to call toString()
    under some circumstances on an object even if the __toString() method is not allowed by the security policy

v3.11.1

Compare Source

v3.11.0

Compare Source

  • Deprecate OptimizerNodeVisitor::OPTIMIZE_RAW_FILTER
  • Add Twig\Cache\ChainCache and Twig\Cache\ReadOnlyFilesystemCache
  • Add the possibility to deprecate attributes and nodes on Node
  • Add the possibility to add a package and a version to the deprecated tag
  • Add the possibility to add a package for filter/function/test deprecations
  • Mark ConstantExpression as being @final
  • Add the find filter
  • Fix optimizer mode validation in OptimizerNodeVisitor
  • Add the possibility to yield from a generator in PrintNode
  • Add the shuffle filter
  • Add the singular and plural filters in StringExtension
  • Deprecate the second argument of Twig\Node\Expression\CallExpression::compileArguments()
  • Deprecate Twig\ExpressionParser\parseHashExpression() in favor of
    Twig\ExpressionParser::parseMappingExpression()
  • Deprecate Twig\ExpressionParser\parseArrayExpression() in favor of
    Twig\ExpressionParser::parseSequenceExpression()
  • Add sequence and mapping tests
  • Deprecate Twig\Node\Expression\NameExpression::isSimple() and
    Twig\Node\Expression\NameExpression::isSpecial()

v3.10.3

Compare Source

  • Fix missing ; in generated code

v3.10.2

Compare Source

  • Fix support for the deprecated escaper signature

v3.10.1

Compare Source

  • Fix BC break on escaper extension
  • Fix constant return type

v3.10.0

Compare Source

  • Make CoreExtension::formatDate, CoreExtension::convertDate, and
    CoreExtension::formatNumber part of the public API

  • Add needs_charset option for filters and functions

  • Extract the escaping logic from the EscaperExtension class to a new
    EscaperRuntime class.

    The following methods from Twig\\Extension\\EscaperExtension are
    deprecated: setEscaper(), getEscapers(), setSafeClasses,
    addSafeClasses(). Use the same methods on the
    Twig\\Runtime\\EscaperRuntime class instead.

  • Fix capturing output from extensions that still use echo

  • Fix a PHP warning in the Lexer on malformed templates

  • Fix blocks not available under some circumstances

  • Synchronize source context in templates when setting a Node on a Node

v3.9.3

Compare Source

  • Add missing twig_escape_filter_is_safe deprecated function
  • Fix yield usage with CaptureNode
  • Add missing unwrap call when using a TemplateWrapper instance internally
  • Ensure Lexer is initialized early on

v3.9.2

Compare Source

  • Fix usage of display_end hook

v3.9.1

Compare Source

  • Fix missing $blocks variable in CaptureNode

v3.9.0

Compare Source

  • Add support for PHP 8.4
  • Deprecate AbstractNodeVisitor
  • Deprecate passing Template to Environment::resolveTemplate(), Environment::load(), and Template::loadTemplate()
  • Add a new "yield" mode for output generation;
    Node implementations that use "echo" or "print" should use "yield" instead;
    all Node implementations should be flagged with #[YieldReady] once they've been made ready for "yield";
    the "use_yield" Environment option can be turned on when all nodes have been made #[YieldReady];
    "yield" will be the only strategy supported in the next major version
  • Add return type for Symfony 7 compatibility
  • Fix premature loop exit in Security Policy lookup of allowed methods/properties
  • Deprecate all internal extension functions in favor of methods on the extension classes
  • Mark all extension functions as @​internal
  • Add SourcePolicyInterface to selectively enable the Sandbox based on a template's Source
  • Throw a proper Twig exception when using cycle on an empty array

v3.8.0

Compare Source

  • Catch errors thrown during template rendering
  • Fix IntlExtension::formatDateTime use of date formatter prototype
  • Fix premature loop exit in Security Policy lookup of allowed methods/properties
  • Remove NumberFormatter::TYPE_CURRENCY (deprecated in PHP 8.3)
  • Restore return type annotations
  • Allow Symfony 7 packages to be installed
  • Deprecate twig_test_iterable function. Use the native is_iterable instead.

v3.7.1

Compare Source

  • Fix some phpdocs

v3.7.0

Compare Source

  • Add support for the ...spread operator on arrays and hashes

v3.6.1

Compare Source

  • Suppress some native return type deprecation messages

v3.6.0

Compare Source

  • Allow psr/container 2.0
  • Add the new PHP 8.0 IntlDateFormatter::RELATIVE_* constants for date formatting
  • Make the Lexer initialize itself lazily

v3.5.1

Compare Source

  • Arrow functions passed to the "reduce" filter now accept the current key as a third argument
  • Restores the leniency of the matches twig comparison
  • Fix error messages in sandboxed mode for "has some" and "has every"

v3.5.0

Compare Source

  • Make Twig\ExpressionParser non-internal
  • Add "has some" and "has every" operators
  • Add Compile::reset()
  • Throw a better runtime error when the "matches" regexp is not valid
  • Add "twig *_names" intl functions
  • Fix optimizing closures callbacks
  • Add a better exception when getting an undefined constant via constant
  • Fix if nodes when outside of a block and with an empty body

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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the renovate label Sep 9, 2024
@renovate renovate bot force-pushed the renovate/packagist-twig-twig-vulnerability branch from 1ae6883 to 504e63a Compare September 10, 2024 18:45
@renovate renovate bot changed the title Update dependency twig/twig to v3.14.0 [SECURITY] Update dependency twig/twig to v3.11.1 [SECURITY] Sep 10, 2024
@renovate renovate bot force-pushed the renovate/packagist-twig-twig-vulnerability branch from 504e63a to 8c2ad1c Compare November 6, 2024 21:46
@renovate renovate bot changed the title Update dependency twig/twig to v3.11.1 [SECURITY] Update dependency twig/twig to v3.11.2 [SECURITY] Nov 6, 2024
@renovate renovate bot force-pushed the renovate/packagist-twig-twig-vulnerability branch from 8c2ad1c to 31beb38 Compare November 7, 2024 00:34
@renovate renovate bot changed the title Update dependency twig/twig to v3.11.2 [SECURITY] Update dependency twig/twig to v3.11.1 [SECURITY] Nov 7, 2024
@renovate renovate bot changed the title Update dependency twig/twig to v3.11.1 [SECURITY] Update dependency twig/twig to v3.11.2 [SECURITY] Nov 7, 2024
@renovate renovate bot force-pushed the renovate/packagist-twig-twig-vulnerability branch from 31beb38 to 3e389f4 Compare November 7, 2024 03:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants