CVE-2023-29530
Laminas Diactoros vulnerable to HTTP Multiline Header Termination
Laminas Diactoros provides PSR HTTP Message implementations. In versions 2.18.0 and prior, 2.19.0, 2.20.0, 2.21.0, 2.22.0, 2.23.0, 2.24.0, and 2.25.0, users who create HTTP requests or responses using laminas/laminas-diactoros, when providing a newline at the start or end of a header key or value, can cause an invalid message. This can lead to denial of service vectors or application errors. The problem has been patched in following versions 2.18.1, 2.19.1, 2.20.1, 2.21.1, 2.22.1, 2.23.1, 2.24.1, and 2.25.1. As a workaround, validate HTTP header keys and/or values, and if using user-supplied values, filter them to strip off leading or trailing newline characters before calling withHeader().
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
Laminas Diactoros vulnerable to HTTP Multiline Header Termination
Laminas Diactoros provides PSR HTTP Message implementations. In versions 2.18.0 and prior, 2.19.0, 2.20.0, 2.21.0, 2.22.0, 2.23.0, 2.24.0, and 2.25.0, users who create HTTP requests or responses using laminas/laminas-diactoros, when providing a newline at the start or end of a header key or value, can cause an invalid message. This can lead to denial of service vectors or application errors. The problem has been patched in following versions 2.18.1, 2.19.1, 2.20.1, 2.21.1, 2.22.1, 2.23.1, 2.24.1, and 2.25.1. As a workaround, validate HTTP header keys and/or values, and if using user-supplied values, filter them to strip off leading or trailing newline characters before calling withHeader().
- Record
CVE-2023-29530- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
EUVDEUVD-2023-1431
7.5
Laminas Diactoros provides PSR HTTP Message implementations. In versions 2.18.0 and prior, 2.19.0, 2.20.0, 2.21.0, 2.22.0, 2.23.0, 2.24.0, and 2.25.0, users who create HTTP requests or responses using laminas/laminas-diactoros, when providing a newline at the start or end of a header key or value, can cause an invalid message. This can lead to denial of service vectors or application errors. The problem has been patched in following versions 2.18.1, 2.19.1, 2.20.1, 2.21.1, 2.22.1, 2.23.1, 2.24.1, and 2.25.1. As a workaround, validate HTTP header keys and/or values, and if using user-supplied values, filter them to strip off leading or trailing newline characters before calling withHeader().
- Record
EUVD-2023-1431- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-xv3h-4844-9h36
7.5
HTTP Multiline Header Termination
Impact
Affected versions of Laminas Diactoros accepted a single line feed (LF / \n ) character at the end of a header name. When serializing such a header name containing a line-feed into the on-the-wire representation of a HTTP/1.x message, the resulting message would be syntactically invalid, due to the header line being terminated too early. An attacker that is able to control the header names that are passed to Laminas Diactoros would be able to intentionally craft invalid messages, possibly causing application errors or invalid HTTP requests being sent out with an PSR-18 HTTP client. The latter might present a denial of service vector if a remote service’s web application firewall bans the application due to the receipt of malformed requests.
Patches
The problem has been patched in the following versions:
- 2.18.1
- 2.19.1
- 2.20.1
- 2.21.1
- 2.22.1
- 2.23.1
- 2.24.2
- 2.25.2
Workarounds
Validate HTTP header keys and/or values, and if using user-supplied values, filter them to strip off leading or trailing newline characters before calling withHeader().
References
- CVE-2023-29197
- GHSA-wxmh-65f7-jcvw
- Record
GHSA-xv3h-4844-9h36- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
NVD
7.5
Laminas Diactoros provides PSR HTTP Message implementations. In versions 2.18.0 and prior, 2.19.0, 2.20.0, 2.21.0, 2.22.0, 2.23.0, 2.24.0, and 2.25.0, users who create HTTP requests or responses using laminas/laminas-diactoros, when providing a newline at the start or end of a header key or value, can cause an invalid message. This can lead to denial of service vectors or application errors. The problem has been patched in following versions 2.18.1, 2.19.1, 2.20.1, 2.21.1, 2.22.1, 2.23.1, 2.24.1, and 2.25.1. As a workaround, validate HTTP header keys and/or values, and if using user-supplied values, filter them to strip off leading or trailing newline characters before calling withHeader().
- Record
CVE-2023-29530- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
OSV
7.5
Laminas Diactoros vulnerable to HTTP Multiline Header Termination
Laminas Diactoros provides PSR HTTP Message implementations. In versions 2.18.0 and prior, 2.19.0, 2.20.0, 2.21.0, 2.22.0, 2.23.0, 2.24.0, and 2.25.0, users who create HTTP requests or responses using laminas/laminas-diactoros, when providing a newline at the start or end of a header key or value, can cause an invalid message. This can lead to denial of service vectors or application errors. The problem has been patched in following versions 2.18.1, 2.19.1, 2.20.1, 2.21.1, 2.22.1, 2.23.1, 2.24.1, and 2.25.1. As a workaround, validate HTTP header keys and/or values, and if using user-supplied values, filter them to strip off leading or trailing newline characters before calling withHeader().
- Record
CVE-2023-29530- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVGHSA-xv3h-4844-9h36
7.5
HTTP Multiline Header Termination
Impact
Affected versions of Laminas Diactoros accepted a single line feed (LF / \n ) character at the end of a header name. When serializing such a header name containing a line-feed into the on-the-wire representation of a HTTP/1.x message, the resulting message would be syntactically invalid, due to the header line being terminated too early. An attacker that is able to control the header names that are passed to Laminas Diactoros would be able to intentionally craft invalid messages, possibly causing application errors or invalid HTTP requests being sent out with an PSR-18 HTTP client. The latter might present a denial of service vector if a remote service’s web application firewall bans the application due to the receipt of malformed requests.
Patches
The problem has been patched in the following versions:
- 2.18.1
- 2.19.1
- 2.20.1
- 2.21.1
- 2.22.1
- 2.23.1
- 2.24.2
- 2.25.2
Workarounds
Validate HTTP header keys and/or values, and if using user-supplied values, filter them to strip off leading or trailing newline characters before calling withHeader().
References
- CVE-2023-29197
- GHSA-wxmh-65f7-jcvw
- Record
GHSA-xv3h-4844-9h36- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVCLSA-2026-1781052745 No score
TuxCare security update for laminas/laminas-diactoros (1 CVE)
TuxCare rebuilt laminas/laminas-diactoros to address 1 CVE. Fixed in 2.22.0-p1+tuxcare.
- Record
CLSA-2026-1781052745- Updated
- 2026-11-02
OSVCLSA-2026-1789456930 No score
TuxCare security update for laminas/laminas-diactoros (2 CVEs)
TuxCare rebuilt laminas/laminas-diactoros to address 2 CVEs. Fixed in 1.8.7p2-1+tuxcare.
- Record
CLSA-2026-1789456930- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
laminas/laminas-diactorosPackagist |
before 2.18.1 | 2.18.1 |
laminas/laminas-diactorosPackagist |
2.19.0 to 2.19.0 | 2.19.1 |
laminas/laminas-diactorosPackagist |
2.20.0 to 2.20.0 | 2.20.1 |
laminas/laminas-diactorosPackagist |
2.21.0 to 2.21.0 | 2.21.1 |
laminas/laminas-diactorosPackagist |
2.22.0 to 2.22.0 | 2.22.1 |
laminas/laminas-diactorosPackagist |
2.23.0 to 2.23.0 | 2.23.1 |
laminas/laminas-diactorosPackagist |
2.24.0 up to 2.24.2 | 2.24.2 |
laminas/laminas-diactorosPackagist |
2.25.0 up to 2.25.2 | 2.25.2 |
laminas/laminas-diactorosTuxCare:Packagist |
2.22.0 up to 2.22.0-p1+tuxcare | 2.22.0-p1+tuxcare |
laminas/laminas-diactorosTuxCare:Packagist From an advisory covering 2 CVEs |
1.8.7p2 up to 1.8.7p2-1+tuxcare | 1.8.7p2-1+tuxcare |
Show 8 moreShow less
| Package | Affected | Fixed |
|---|---|---|
laminas/laminas-diactorosPackagist |
before 2.18.1, plus listed versions 1.0.01.0.11.0.21.0.31.0.4 Show 45 moreShow less1.0.51.1.01.1.11.1.21.1.31.1.41.2.01.2.11.3.01.3.11.3.101.3.111.3.21.3.31.3.41.3.51.3.61.3.71.3.81.3.91.4.01.4.11.5.01.6.01.6.11.7.01.7.11.7.21.8.01.8.0p11.8.0p21.8.11.8.1p11.8.1p21.8.21.8.2p11.8.2p21.8.31.8.3p11.8.3p21.8.41.8.4p11.8.4p21.8.51.8.5p1 |
2.18.1 |
laminas/laminas-diactorosPackagist |
2.19.0 up to 2.19.1 | 2.19.1 |
laminas/laminas-diactorosPackagist |
2.20.0 up to 2.20.1 | 2.20.1 |
laminas/laminas-diactorosPackagist |
2.21.0 up to 2.21.1 | 2.21.1 |
laminas/laminas-diactorosPackagist |
2.22.0 up to 2.22.1 | 2.22.1 |
laminas/laminas-diactorosPackagist |
2.23.0 up to 2.23.1 | 2.23.1 |
laminas/laminas-diactorosPackagist |
2.24.0 up to 2.24.2, plus listed versions 2.24.1 |
2.24.2 |
laminas/laminas-diactorosPackagist |
2.25.0 up to 2.25.2, plus listed versions 2.25.1 |
2.25.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| 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-29530 is a high vulnerability (CVSS 7.5) in Getlaminas Laminas-diactoros, published April 24, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.97%, the 61st percentile. Fixed in laminas/laminas-diactoros 2.18.1.
References
github.com/laminas/laminas-diactoros/security/advisories/GHSA-xv3h-4844-9h36
github.com/advisories/GHSA-wxmh-65f7-jcvw
lists.fedoraproject.org/archives/list/[email protected]/message/BPW54QK7ISDALPLP2CKODU4ZIVRYS336
nvd.nist.gov/vuln/detail/CVE-2023-29530
github.com/laminas/laminas-diactoros/commit/7e721a60a09c5119c98694c2d23fc031094e1f1c
github.com/advisories/GHSA-xv3h-4844-9h36
github.com/CVEProject/cvelistV5/tree/main/cves/2023/29xxx/CVE-2023-29530.json
github.com/laminas/laminas-diactoros
Left out here: 70 versions. The JSON record has them.