GHSA-96c6-m98x-hxjx
Zend-Session session validation vulnerability
GHSA-96c6-m98x-hxjx is a medium vulnerability (CVSS 6.5) in zendframework/zend-session, published June 7, 2024. No source lists public exploit code. Fixed in zendframework/zend-session 2.2.9.
- Severity
- 6.5 MediumCVSS 3.1, GitHub Advisories
- Exploit chance
- UnscoredNo EPSS score yet
- Exploitation
- None knownNot on CISA’s or ENISA’s lists
- Fixed in
2.2.9zendframework/zend-session +4 more
Description
Zend\Session session validators do not work as expected if set prior to the start of a session.
For instance, the following test case fails (where $this->manager is an instance of Zend\Session\SessionManager):
$this
->manager
->getValidatorChain()
->attach('session.validate', array(new RemoteAddr(), 'isValid'));
$this->manager->start();
$this->assertSame(
array(
'Zend\Session\Validator\RemoteAddr' =3D> '',
),
$_SESSION['__ZF']['_VALID']
);
The implication is that subsequent calls to Zend\Session\SessionManager#start() (in later requests, assuming a session was created) will not have any validator metadata attached, which causes any validator metadata to be re-built from scratch, thus marking the session as valid.
An attacker is thus able to simply ignore session validators such as RemoteAddr or HttpUserAgent, since the "signature" that these validators check against is not being stored in the session.
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
Affected packages
| Package | Affected | Fixed |
|---|---|---|
zendframework/zend-sessionPackagist | 2.0.0 up to 2.2.9 | 2.2.9 |
zendframework/zend-sessionPackagist | 2.3.0 up to 2.3.4 | 2.3.4 |
zendframework/zend-sessionTuxCare:Packagist | 2.1.6 up to 2.1.6-p2+tuxcare | 2.1.6-p2+tuxcare |
zendframework/zend-sessionPackagist | 2.0.0 up to 2.2.9, plus listed versions 2.0.32.0.42.0.52.0.62.0.7 Show 20 moreShow less2.0.82.1.02.1.12.1.22.1.32.1.42.1.52.1.62.2.02.2.0rc12.2.0rc22.2.0rc32.2.12.2.22.2.32.2.42.2.52.2.62.2.72.2.8 | 2.2.9 |
zendframework/zend-sessionPackagist | 2.3.0 up to 2.3.4, plus listed versions 2.3.12.3.22.3.3 | 2.3.4 |
What each source reports
GitHub Advisories Score used 6.5
Zend-Session session validation vulnerability
Zend\Session session validators do not work as expected if set prior to the start of a session.
For instance, the following test case fails (where $this->manager is an instance of Zend\Session\SessionManager):
$this
->manager
->getValidatorChain()
->attach('session.validate', array(new RemoteAddr(), 'isValid'));
$this->manager->start();
$this->assertSame(
array(
'Zend\Session\Validator\RemoteAddr' =3D> '',
),
$_SESSION['__ZF']['_VALID']
);
The implication is that subsequent calls to Zend\Session\SessionManager#start() (in later requests, assuming a session was created) will not have any validator metadata attached, which causes any validator metadata to be re-built from scratch, thus marking the session as valid.
An attacker is thus able to simply ignore session validators such as RemoteAddr or HttpUserAgent, since the "signature" that these validators check against is not being stored in the session.
- Record
GHSA-96c6-m98x-hxjx- 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
Zend-Session session validation vulnerability
Zend\Session session validators do not work as expected if set prior to the start of a session.
For instance, the following test case fails (where $this->manager is an instance of Zend\Session\SessionManager):
$this
->manager
->getValidatorChain()
->attach('session.validate', array(new RemoteAddr(), 'isValid'));
$this->manager->start();
$this->assertSame(
array(
'Zend\Session\Validator\RemoteAddr' =3D> '',
),
$_SESSION['__ZF']['_VALID']
);
The implication is that subsequent calls to Zend\Session\SessionManager#start() (in later requests, assuming a session was created) will not have any validator metadata attached, which causes any validator metadata to be re-built from scratch, thus marking the session as valid.
An attacker is thus able to simply ignore session validators such as RemoteAddr or HttpUserAgent, since the "signature" that these validators check against is not being stored in the session.
- Record
GHSA-96c6-m98x-hxjx- 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
OSVCLSA-2026-1789376005No score
TuxCare security update for zendframework/zend-session (1 CVE)
TuxCare rebuilt zendframework/zend-session to address 1 CVE. Fixed in 2.1.6-p1+tuxcare.
- Record
CLSA-2026-1789376005- Updated
- 2026-11-02
OSVCLSA-2026-1790350388No score
TuxCare security update for zendframework/zend-session (1 CVE)
TuxCare rebuilt zendframework/zend-session to address 1 CVE. Fixed in 2.1.6-p2+tuxcare.
- Record
CLSA-2026-1790350388- Updated
- 2026-11-02
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| first indexed | GitHub Advisories, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
References
github.com/zendframework/zend-session/commit/05fa95488b5ade513c4dcc56051a7ddb1c94f341
github.com/zendframework/zend-session/commit/1272fc047121720130690c324413629d8f63d210
github.com/zendframework/zend-session/commit/35014ab0ae17c2a169320f182697ee9fe73d841e
github.com/zendframework/zend-session/commit/3b1a65b3193a4219f5c4259ab8735f9ad254a021
github.com/zendframework/zend-session/commit/6a27a9fddd8f5b12b3af0de6309181ff5946dd0e
github.com/zendframework/zend-session/commit/7c4b73dd64e01001946aac76c6deddfe1c6ef0be
Show 10 moreShow less
github.com/zendframework/zend-session/commit/7fc94bd6a60342416242a3899d63072c471b33d3
github.com/zendframework/zend-session/commit/93b43aa0ca5348d29034f67195ffa3f4082878d5
github.com/zendframework/zend-session/commit/9868f84513536446b0bac81cc95e0130b0a6fc9c
github.com/zendframework/zend-session/commit/a3382bfd3067f527762294b5fc622550988e6862
github.com/zendframework/zend-session/commit/b1903947e285568344b3458e4524b016ce311072
github.com/zendframework/zend-session/commit/ff9236cc4c4944b5f5a6fbfee01420ef82c4fa91
framework.zend.com/security/advisory/ZF2015-01
github.com/FriendsOfPHP/security-advisories/blob/master/zendframework/zend-session/ZF2015-01.yaml
github.com/advisories/GHSA-96c6-m98x-hxjx
github.com/zendframework/zend-session