CVE-2026-15603 json
morgan vulnerable to Log Forging via unescaped Unicode line separators
published 2mo ago modified 2mo ago also GHSA-jxfw-x594-9x9m , EUVD-2026-67720
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 34%
- public exploits
- 0
- none known
Summary
morgan is an HTTP request logger middleware for Node.js. In versions prior to 1.12.0, the internal helper that escapes log token values did not neutralize the Unicode line separator characters U+0085 (Next Line), U+2028 (Line Separator), and U+2029 (Paragraph Separator). An unauthenticated remote client can place these characters in an attacker-controlled log token, for example a Basic auth username surfaced through the remote-user token, so that Unicode-aware downstream log processing splits a single request log into multiple logical records. This is a log forging issue (CWE-117) and an incomplete-fix follow-up to CVE-2026-5078, which only addressed ASCII control characters. The issue is fixed in morgan 1.12.0, which extends the escaping set to cover these Unicode line separators. Upgrade to morgan 1.12.0 to remediate.
Patch / fix
- npm morgan 1.12.0
- morgan morgan 1.12.0
- node-morgan Debian 14 1.12.0+~1.9.10-1
debian advisories DEBIAN-CVE-2026-15603
Is CVE-2026-15603 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-15603 updated cvss 5.3
morgan: morgan: Log Forging via unescaped Unicode line separators
-
Red Hat Cryostat 4 cryostat/cryostat-openshift-console-plugin-rhel9 Red Hat Enterprise Linux 9 npm, nodejs, sgx-mpa, tdx-qgs, sgx-libs, sgx-pccs, +6 more Red Hat Enterprise Linux 10 linux-sgx 2.26-7.el10, nodejs26 26.1.0-1.el10, nodejs22 22.23.1-3.el10_0, nodejs24 24.19.0-1.el10_2affected: workaround, no fix available “Fix deferred”
-
Red Hat Fuse 7 morgan 1.6.1affected: workaround, no fix planned “Out of support scope”
-
Red Hat Hardened Images nodejs25 25.9.0-1.6.hum1, nodejs20 20.20.2-1.2.hum1affected: workaround, no fix planned “Will not fix”
-
Red Hat Openshift Data Foundation 4 odf4/mcg-core-rhel9affected: workaround, no fix available “Fix deferred”
-
Red Hat Hardened Images nodejs26 26.1.0-1.el10, nodejs22 22.23.1-3.el10_0, nodejs24 24.19.0-1.el10_2not affected: component not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 2mo ago
Exploit prediction
0.40% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
| GitHub | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | morgan | <1.12.0 |
1.12.0 |
Affected products
- morgan morgan
Classification
- Weakness
-
- CWE-117 Improper Output Neutralization for Logs
References
-
github.com
/expressjs/morgan/commit/fbf93833186920cc39bb19b247e4a86b61bef4fe
web
-
github.com
/expressjs/morgan/security/advisories/GHSA-jxfw-x594-9x9m
web, vendor-advisory
-
cna.openjsf.org
/security-advisories.html
web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-15603
advisory
-
github.com
/expressjs/morgan
package
-
github.com
/expressjs/morgan/releases/tag/1.12.0
web
Sources
- CVE List CVE-2026-15603
- GitHub Advisory GHSA-jxfw-x594-9x9m
- NVD CVE-2026-15603
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.