Update dependency symfony/symfony to v5 [SECURITY] #24
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.3.*
->5.4.*
GitHub Vulnerability Alerts
CVE-2019-10909
In Symfony before 2.7.51, 2.8.x before 2.8.50, 3.x before 3.4.26, 4.x before 4.1.12, and 4.2.x before 4.2.7, validation messages are not escaped, which can lead to XSS when user input is included. This is related to symfony/framework-bundle.
CVE-2019-18889
An issue was discovered in Symfony 3.4.0 through 3.4.34, 4.2.0 through 4.2.11, and 4.3.0 through 4.3.7. Serializing certain cache adapter interfaces could result in remote code injection. This is related to symfony/cache.
CVE-2019-10913
In Symfony before 2.7.51, 2.8.x before 2.8.50, 3.x before 3.4.26, 4.x before 4.1.12, and 4.2.x before 4.2.7, HTTP Methods provided as verbs or using the override header may be treated as trusted input, but they are not validated, possibly causing SQL injection or XSS. This is related to symfony/http-foundation.
CVE-2019-18888
An issue was discovered in Symfony 2.8.0 through 2.8.50, 3.4.0 through 3.4.34, 4.2.0 through 4.2.11, and 4.3.0 through 4.3.7. If an application passes unvalidated user input as the file for which MIME type validation should occur, then arbitrary arguments are passed to the underlying file command. This is related to symfony/http-foundation (and symfony/mime in 4.3.x).
CVE-2019-10912
In Symfony before 2.8.50, 3.x before 3.4.26, 4.x before 4.1.12, and 4.2.x before 4.2.7, it is possible to cache objects that may contain bad user input. On serialization or unserialization, this could result in the deletion of files that the current user has access to. This is related to symfony/cache and symfony/phpunit-bridge.
CVE-2019-10911
In Symfony before 2.7.51, 2.8.x before 2.8.50, 3.x before 3.4.26, 4.x before 4.1.12, and 4.2.x before 4.2.7, a vulnerability would allow an attacker to authenticate as a privileged user on sites with user registration and remember me login functionality enabled. This is related to symfony/security.
CVE-2019-18887
When checking the signature of an URI (an ESI fragment URL for instance), the URISigner did not used a constant time string comparison function, resulting in a potential remote timing attack vulnerability.
CVE-2022-24895
Description
When authenticating users Symfony by default regenerates the session ID upon login, but preserves the rest of session attributes. Because this does not clear CSRF tokens upon login, this might enables same-site attackers to bypass the CSRF protection mechanism by performing an attack similar to a session-fixation.
Resolution
Symfony removes all CSRF tokens from the session on successful login.
The patch for this issue is available here for branch 4.4.
Credits
We would like to thank Marco Squarcina for reporting the issue and Nicolas Grekas for fixing it.
CVE-2022-24894
Description
The Symfony HTTP cache system acts as a reverse proxy: it caches HTTP responses (including headers) and returns them to clients.
In a recent
AbstractSessionListener
change, the response might now contain aSet-Cookie
header. If the Symfony HTTP cache system is enabled, this header might be stored and returned to some other clients. An attacker can use this vulnerability to retrieve the victim's session.Resolution
The
HttpStore
constructor now takes a parameter containing a list of private headers that are removed from the HTTP response headers.The default value for this parameter is
Set-Cookie
, but it can be overridden or extended by the application.The patch for this issue is available here for branch 4.4.
Credits
We would like to thank Soner Sayakci for reporting the issue and Nicolas Grekas for fixing it.
CVE-2019-10910
In Symfony before 2.7.51, 2.8.x before 2.8.50, 3.x before 3.4.26, 4.x before 4.1.12, and 4.2.x before 4.2.7, when service ids allow user input, this could allow for SQL Injection and remote code execution. This is related to symfony/dependency-injection.
CVE-2018-14774
An issue was discovered in HttpKernel in Symfony 2.7.0 through 2.7.48, 2.8.0 through 2.8.43, 3.3.0 through 3.3.17, 3.4.0 through 3.4.13, 4.0.0 through 4.0.13, and 4.1.0 through 4.1.2. When using HttpCache, the values of the X-Forwarded-Host headers are implicitly set as trusted while this should be forbidden, leading to potential host header injection.
CVE-2018-11386
An issue was discovered in the HttpFoundation component in Symfony 2.7.x before 2.7.48, 2.8.x before 2.8.41, 3.3.x before 3.3.17, 3.4.x before 3.4.11, and 4.0.x before 4.0.11. The PDOSessionHandler class allows storing sessions on a PDO connection. Under some configurations and with a well-crafted payload, it was possible to do a denial of service on a Symfony application without too much resources.
CVE-2018-11408
The security handlers in the Security component in Symfony in 2.7.x before 2.7.48, 2.8.x before 2.8.41, 3.3.x before 3.3.17, 3.4.x before 3.4.11, and 4.0.x before 4.0.11 have an Open redirect vulnerability when security.http_utils is inlined by a container. NOTE: this issue exists because of an incomplete fix for CVE-2017-16652.
CVE-2018-19789
An issue was discovered in Symfony 2.7.x before 2.7.50, 2.8.x before 2.8.49, 3.x before 3.4.20, 4.0.x before 4.0.15, 4.1.x before 4.1.9, and 4.2.x before 4.2.1. When using the scalar type hint
string
in a setter method (e.g.setName(string $name)
) of a class that's thedata_class
of a form, and when a file upload is submitted to the corresponding field instead of a normal text input, thenUploadedFile::__toString()
is called which will then return and disclose the path of the uploaded file. If combined with a local file inclusion issue in certain circumstances this could escalate it to a Remote Code Execution.CVE-2017-16652
An issue was discovered in Symfony 2.7.x before 2.7.38, 2.8.x before 2.8.31, 3.2.x before 3.2.14, and 3.3.x before 3.3.13.
DefaultAuthenticationSuccessHandler
orDefaultAuthenticationFailureHandler
takes the content of the_target_path
parameter and generates a redirect response, but no check is performed on the path, which could be an absolute URL to an external domain. This Open redirect vulnerability can be exploited for example to mount effective phishing attacks.CVE-2023-46734
Description
Some Twig filters in CodeExtension use "is_safe=html" but don't actually ensure their input is safe.
Resolution
Symfony now escapes the output of the affected filters.
The patch for this issue is available here for branch 4.4.
Credits
We would like to thank Pierre Rudloff for reporting the issue and to Nicolas Grekas for providing the fix.
CVE-2017-16653
An issue was discovered in Symfony before 2.7.38, 2.8.31, 3.2.14, 3.3.13, 3.4-BETA5, and 4.0-BETA5. The current implementation of CSRF protection in Symfony (Version >=2) does not use different tokens for HTTP and HTTPS; therefore the token is subject to MITM attacks on HTTP and can then be used in an HTTPS context to do CSRF attacks.
CVE-2017-16654
An issue was discovered in Symfony before 2.7.38, 2.8.31, 3.2.14, 3.3.13, 3.4-BETA5, and 4.0-BETA5. The Intl component includes various bundle readers that are used to read resource bundles from the local filesystem. The read() methods of these classes use a path and a locale to determine the language bundle to retrieve. The locale argument value is commonly retrieved from untrusted user input (like a URL parameter). An attacker can use this argument to navigate to arbitrary directories via the dot-dot-slash attack, aka Directory Traversal.
CVE-2018-11385
An issue was discovered in the Security component in Symfony 2.7.x before 2.7.48, 2.8.x before 2.8.41, 3.3.x before 3.3.17, 3.4.x before 3.4.11, and 4.0.x before 4.0.11. A session fixation vulnerability within the "Guard" login feature may allow an attacker to impersonate a victim towards the web application if the session id value was previously known to the attacker.
CVE-2018-11406
An issue was discovered in the Security component in Symfony 2.7.x before 2.7.48, 2.8.x before 2.8.41, 3.3.x before 3.3.17, 3.4.x before 3.4.11, and 4.0.x before 4.0.11. By default, a user's session is invalidated when the user is logged out. This behavior can be disabled through the invalidate_session option. In this case, CSRF tokens were not erased during logout which allowed for CSRF token fixation.
CVE-2018-14773
An issue was discovered in Http Foundation in Symfony 2.7.0 through 2.7.48, 2.8.0 through 2.8.43, 3.3.0 through 3.3.17, 3.4.0 through 3.4.13, 4.0.0 through 4.0.13, and 4.1.0 through 4.1.2. It arises from support for a (legacy) IIS header that lets users override the path in the request URL via the X-Original-URL or X-Rewrite-URL HTTP request header. These headers are designed for IIS support, but it's not verified that the server is in fact running IIS, which means anybody who can send these requests to an application can trigger this. This affects \Symfony\Component\HttpFoundation\Request::prepareRequestUri() where X-Original-URL and X_REWRITE_URL are both used. The fix drops support for these methods so that they cannot be used as attack vectors such as web cache poisoning.
CVE-2021-21424
Description
The ability to enumerate users was possible without relevant permissions due to different exception messages depending on whether the user existed or not. It was also possible to enumerate users by using a timing attack, by comparing time elapsed when authenticating an existing user and authenticating a non-existing user.
Resolution
We now ensure that 403s are returned whether the user exists or not if the password is invalid or if the user does not exist.
The patch for this issue is available here for branch 3.4.
Credits
I would like to thank James Isaac and Mathias Brodala for reporting the issue and Robin Chalas for fixing the issue.
CVE-2017-16790
An issue was discovered in Symfony before 2.7.38, 2.8.31, 3.2.14, 3.3.13, 3.4-BETA5, and 4.0-BETA5. When a form is submitted by the user, the request handler classes of the Form component merge POST data and uploaded files data into one array. This big array forms the data that are then bound to the form. At this stage there is no difference anymore between submitted POST data and uploaded files. A user can send a crafted HTTP request where the value of a "FileType" is sent as normal POST data that could be interpreted as a local file path on the server-side (for example, "file:///etc/passwd"). If the application did not perform any additional checks about the value submitted to the "FileType", the contents of the given file on the server could have been exposed to the attacker.
CVE-2018-11407
An issue was discovered in the LDAP component in Symfony 2.8.x before 2.8.37, 3.3.x before 3.3.17, 3.4.x before 3.4.7, and 4.0.x before 4.0.7. It allows remote attackers to bypass authentication by logging in with a "null" password and valid username, which triggers an unauthenticated bind. NOTE: this issue exists because of an incomplete fix for CVE-2016-2403.
CVE-2018-19790
An open redirect was discovered in Symfony 2.7.x before 2.7.50, 2.8.x before 2.8.49, 3.x before 3.4.20, 4.0.x before 4.0.15, 4.1.x before 4.1.9 and 4.2.x before 4.2.1. By using backslashes in the
_failure_path
input field of login forms, an attacker can work around the redirection target restrictions and effectively redirect the user to any domain after login.CVE-2024-50343
Description
It is possible to trick a
Validator
configured with a regular expression using the$
metacharacters, with an input ending with\n
.Resolution
Symfony now uses the
D
regex modifier to match the entire input.The patch for this issue is available here for branch 5.4.
Credits
We would like to thank Offscript for reporting the issue and Alexandre Daubois for providing the fix.
CVE-2024-51736
Description
On Window, when an executable file named
cmd.exe
is located in the current working directory it will be called by theProcess
class when preparing command arguments, leading to possible hijacking.Resolution
The
Process
class now uses the absolute path tocmd.exe
.The patch for this issue is available here for branch 5.4.
Credits
We would like to thank Jordi Boggiano for reporting the issue and Nicolas Grekas for providing the fix.
Release Notes
symfony/symfony (symfony/symfony)
v5.4.46
Compare Source
Changelog (symfony/symfony@v5.4.45...v5.4.46)
FileLocator
(@alexandre-daubois)[PR]https://github.com/symfony/symfony/pull/587777
[SECURITY] Security release
v5.4.45
Compare Source
Changelog (symfony/symfony@v5.4.44...v5.4.45)
parse_url()
checks (@nicolas-grekas)preg_match()
(@simoheinonen)max-age
/s-maxage
andExpires
headers (@aschempp)XmlFileLoader
not respecting when env for services (Bradley Zeggelaar)proc_open
errors withinTerminal::readFromProcess
(@fritzmg)Node()
instantiations (@fabpot)[PR]https://github.com/symfony/symfony/pull/586811
v5.4.44
Compare Source
Changelog (symfony/symfony@v5.4.43...v5.4.44)
ErrorHandler
, assume$kernel->terminateWithException()
will do it (@nicolas-grekas)CURLMOPT_MAXCONNECTS
(@HypeMC)X-Accel-Redirect
and fail properly whenX-Accel-Mapping
is missing (@nicolas-grekas)parse_url()
bug (@nicolas-grekas)[PR]https://github.com/symfony/symfony/pull/583444
v5.4.43
Compare Source
Changelog (symfony/symfony@v5.4.42...v5.4.43)
.
(@alexandre-daubois)#[Autoconfigure]
attributes (@alexandre-daubois)D
regex modifier in relevant validators (@alexandre-daubois)le
, e.g.,articles
(@aleho)[PR]https://github.com/symfony/symfony/pull/581311
v5.4.42
Compare Source
Changelog (symfony/symfony@v5.4.41...v5.4.42)
NO_COLOR
empty value handling (@alexandre-daubois)CsvFileLoader
on PHP >= 7.4 (@alexandre-daubois)dbindex
DSN parameter parsing (@constantable)Envelope
toWorkerMessageRetriedEvent
(@daffoxdev)[PR]https://github.com/symfony/symfony/pull/578433
v5.4.41
Compare Source
Changelog (symfony/symfony@v5.4.40...v5.4.41)
alias
case toEnglishInflector
(@alexandre-daubois)provider
XML attribute to the authenticators it’s missing from (@MatTheCat)AMQPConnectionException
when publishing a message (@jwage)ObjectNormalizer
with property path (@HypeMC)[PR]https://github.com/symfony/symfony/pull/575799
v5.4.40
Compare Source
Changelog (symfony/symfony@v5.4.39...v5.4.40)
Mime\Message::ensureValidity()
when a required header is set, but has an empty body (@rhertogh)DeprecationErrorHandler
with PhpUnit 10 (@HypeMC)stat failed
error hitting custom handler (@acoulton)LDAP_MODIFY_BATCH_REMOVE_ALL
batch operations (@phasdev)Locale
class existence before using it (@alexandre-daubois)GetSetMethodNormalizer
not working with setters with optional args (@HypeMC)[PR]https://github.com/symfony/symfony/pull/572900
v5.4.39
Compare Source
Changelog (symfony/symfony@v5.4.38...v5.4.39)
dumpFile
(@alexandre-daubois)[PR]https://github.com/symfony/symfony/pull/547644
v5.4.38
Compare Source
Changelog (symfony/symfony@v5.4.37...v5.4.38)
YamlReferenceDumper
handling of array examples (@MatTheCat)ReflectionMethod
(@alexandre-daubois)[PR]https://github.com/symfony/symfony/pull/544622
v5.4.37
Compare Source
Changelog (symfony/symfony@v5.4.36...v5.4.37)
[PR]https://github.com/symfony/symfony/pull/541577
v5.4.36
Compare Source
Changelog (symfony/symfony@v5.4.35...v5.4.36)
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.