CVE-2023-46733
Symfony possible session fixation vulnerability
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Starting in versions 5.4.21 and 6.2.7 and prior to versions 5.4.31 and 6.3.8, SessionStrategyListener does not migrate the session after every successful login. It does so only in case the logged in user changes by means of checking the user identifier. In some use cases, the user identifier doesn't change between the verification phase and the successful login, while the token itself changes from one type (partially-authenticated) to another (fully-authenticated). When this happens, the session id should be regenerated to prevent possible session fixations, which is not the case at the moment. As of versions 5.4.31 and 6.3.8, Symfony now checks the type of the token in addition to the user identifier before deciding whether the session id should be regenerated.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.5
Symfony possible session fixation vulnerability
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Starting in versions 5.4.21 and 6.2.7 and prior to versions 5.4.31 and 6.3.8, SessionStrategyListener does not migrate the session after every successful login. It does so only in case the logged in user changes by means of checking the user identifier. In some use cases, the user identifier doesn't change between the verification phase and the successful login, while the token itself changes from one type (partially-authenticated) to another (fully-authenticated). When this happens, the session id should be regenerated to prevent possible session fixations, which is not the case at the moment. As of versions 5.4.31 and 6.3.8, Symfony now checks the type of the token in addition to the user identifier before deciding whether the session id should be regenerated.
- Record
CVE-2023-46733- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-384
- Updated
- 2026-11-02
EUVDEUVD-2023-2996
6.5
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Starting in versions 5.4.21 and 6.2.7 and prior to versions 5.4.31 and 6.3.8, SessionStrategyListener does not migrate the session after every successful login. It does so only in case the logged in user changes by means of checking the user identifier. In some use cases, the user identifier doesn't change between the verification phase and the successful login, while the token itself changes from one type (partially-authenticated) to another (fully-authenticated). When this happens, the session id should be regenerated to prevent possible session fixations, which is not the case at the moment. As of versions 5.4.31 and 6.3.8, Symfony now checks the type of the token in addition to the user identifier before deciding whether the session id should be regenerated.
- Record
EUVD-2023-2996- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-m2wj-r6g3-fxfx
6.5
Symfony possible session fixation vulnerability
Description
SessionStrategyListener does not always migrate the session after a successful login. It only migrate the session when the logged-in user identifier changes. In some use cases, the user identifier doesn't change between the verification phase and the successful login, while the token itself changes from one type (partially-authenticated) to another (fully-authenticated). When this happens, the session id should be regenerated to prevent possible session fixations.
Resolution
Symfony now checks the type of the token in addition to the user identifier before deciding whether the session id should be regenerated.
The patch for this issue is available here for branch 5.4.
Credits
We would like to thank Robert Meijers for reporting the issue and providing the fix.
- Record
GHSA-m2wj-r6g3-fxfx- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-384
- Updated
- 2026-11-02
NVD
6.5
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Starting in versions 5.4.21 and 6.2.7 and prior to versions 5.4.31 and 6.3.8, SessionStrategyListener does not migrate the session after every successful login. It does so only in case the logged in user changes by means of checking the user identifier. In some use cases, the user identifier doesn't change between the verification phase and the successful login, while the token itself changes from one type (partially-authenticated) to another (fully-authenticated). When this happens, the session id should be regenerated to prevent possible session fixations, which is not the case at the moment. As of versions 5.4.31 and 6.3.8, Symfony now checks the type of the token in addition to the user identifier before deciding whether the session id should be regenerated.
- Record
CVE-2023-46733- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-384
- Updated
- 2026-11-02
OSV
6.5
Symfony possible session fixation vulnerability
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Starting in versions 5.4.21 and 6.2.7 and prior to versions 5.4.31 and 6.3.8, SessionStrategyListener does not migrate the session after every successful login. It does so only in case the logged in user changes by means of checking the user identifier. In some use cases, the user identifier doesn't change between the verification phase and the successful login, while the token itself changes from one type (partially-authenticated) to another (fully-authenticated). When this happens, the session id should be regenerated to prevent possible session fixations, which is not the case at the moment. As of versions 5.4.31 and 6.3.8, Symfony now checks the type of the token in addition to the user identifier before deciding whether the session id should be regenerated.
- Record
CVE-2023-46733- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-384
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2023-46733
6.5
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Starting in versions 5.4.21 and 6.2.7 and prior to versions 5.4.31 and 6.3.8, SessionStrategyListener does not migrate the session after every successful login. It does so only in case the logged in user changes by means of checking the user identifier. In some use cases, the user identifier doesn't change between the verification phase and the successful login, while the token itself changes from one type (partially-authenticated) to another (fully-authenticated). When this happens, the session id should be regenerated to prevent possible session fixations, which is not the case at the moment. As of versions 5.4.31 and 6.3.8, Symfony now checks the type of the token in addition to the user identifier before deciding whether the session id should be regenerated.
- Record
DEBIAN-CVE-2023-46733- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVGHSA-m2wj-r6g3-fxfx
6.5
Symfony possible session fixation vulnerability
Description
SessionStrategyListener does not always migrate the session after a successful login. It only migrate the session when the logged-in user identifier changes. In some use cases, the user identifier doesn't change between the verification phase and the successful login, while the token itself changes from one type (partially-authenticated) to another (fully-authenticated). When this happens, the session id should be regenerated to prevent possible session fixations.
Resolution
Symfony now checks the type of the token in addition to the user identifier before deciding whether the session id should be regenerated.
The patch for this issue is available here for branch 5.4.
Credits
We would like to thank Robert Meijers for reporting the issue and providing the fix.
- Record
GHSA-m2wj-r6g3-fxfx- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-384
- Updated
- 2026-11-02
OSVBIT-symfony-2023-46733 No score
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Starting in versions 5.4.21 and 6.2.7 and prior to versions 5.4.31 and 6.3.8, SessionStrategyListener does not migrate the session after every successful login. It does so only in case the logged in user changes by means of checking the user identifier. In some use cases, the user identifier doesn't change between the verification phase and the successful login, while the token itself changes from one type (partially-authenticated) to another (fully-authenticated). When this happens, the session id should be regenerated to prevent possible session fixations, which is not the case at the moment. As of versions 5.4.31 and 6.3.8, Symfony now checks the type of the token in addition to the user identifier before deciding whether the session id should be regenerated.
- Record
BIT-symfony-2023-46733- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
symfony/security-httpPackagist |
5.4.21 up to 5.4.31 | 5.4.31 |
symfony/security-httpPackagist |
6.2.7 up to 6.3.8 | 6.3.8 |
symfony/symfonyPackagist |
5.4.21 up to 5.4.31 | 5.4.31 |
symfony/symfonyPackagist |
6.2.7 up to 6.3.8 | 6.3.8 |
symfonyBitnami |
5.4.21 up to 5.4.31, 6.2.7 up to 6.3.8 | 5.4.316.3.8 |
symfonyDebian:12 |
before 5.4.23+dfsg-1+deb12u1, plus listed versions 5.4.23+dfsg-1 |
5.4.23+dfsg-1+deb12u1 |
symfonyDebian:13 |
before 5.4.31+dfsg-1 | 5.4.31+dfsg-1 |
symfonyDebian:14 |
before 5.4.31+dfsg-1 | 5.4.31+dfsg-1 |
symfony/security-httpPackagist |
5.4.21 up to 5.4.31, plus listed versions v5.4.21v5.4.22v5.4.23v5.4.26v5.4.28v5.4.30 |
5.4.31 |
symfony/security-httpPackagist |
6.2.7 up to 6.3.8, plus listed versions v6.2.10v6.2.11v6.2.13v6.2.7v6.2.8 Show 8 moreShow lessv6.3.0v6.3.0-BETA1v6.3.0-RC1v6.3.1v6.3.2v6.3.4v6.3.5v6.3.6 |
6.3.8 |
symfony/symfonyPackagist |
5.4.21 up to 5.4.31, plus listed versions v5.4.21v5.4.22v5.4.23v5.4.24v5.4.25 Show 5 moreShow lessv5.4.26v5.4.27v5.4.28v5.4.29v5.4.30 |
5.4.31 |
symfony/symfonyPackagist |
6.2.7 up to 6.3.8, plus listed versions v6.2.10v6.2.11v6.2.12v6.2.13v6.2.14 Show 16 moreShow lessv6.2.7v6.2.8v6.2.9v6.3.0v6.3.0-BETA1v6.3.0-BETA2v6.3.0-BETA3v6.3.0-RC1v6.3.0-RC2v6.3.1v6.3.2v6.3.3v6.3.4v6.3.5v6.3.6v6.3.7 |
6.3.8 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2023-46733 is a medium vulnerability (CVSS 6.5) in Sensiolabs Symfony, published November 10, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.69%, the 53rd percentile. Fixed in symfony/security-http 5.4.31.
References
github.com/symfony/symfony/security/advisories/GHSA-m2wj-r6g3-fxfx
github.com/symfony/symfony/commit/7467bd7e3f888b333102bc664b5e02ef1e7f88b9
github.com/symfony/symfony/commit/dc356499d5ceb86f7cf2b4c7f032eca97061ed74
nvd.nist.gov/vuln/detail/CVE-2023-46733
github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2023-46733.yaml
symfony.com/cve-2023-46733