CVE-2026-15603: Express.js morgan log forging via Unicode line separators

CVE-2026-15603 · Severity: medium · CVSS 5.3 · Published 2026-08-28

Morgan is a widely-used HTTP request logging middleware for Express.js applications. A vulnerability in versions before 1.12.0 allows attackers to inject Unicode line-separator characters into access logs through request headers and URLs, causing log parsing tools to incorrectly split single log entries into multiple entries. This enables attackers to forge log records and potentially hide malicious activity from audit systems and security monitoring.

Technologies: morgan (npm). Vendors: npm.

Quick answers

Is CVE-2026-15603 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-15603 being exploited in the wild.
How severe is CVE-2026-15603?
Medium severity, with a CVSS score of 5.3, published 28 August 2026.
Which products and versions are affected?
morgan (npm) SEMVER:introduced=0,fixed=1.12.0.
Is there a fix for CVE-2026-15603?
Yes. morgan (npm): upgrade to 1.12.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-15603 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-15603?
Check whether you run morgan (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • morgan (npm): upgrade to 1.12.0 or later
    npm install morgan@1.12.0

Technical details

Morgan's access logging suffers from improper output neutralization (CWE-117). While version 1.11.0 addressed C0 control characters, DEL, and backslash, it failed to escape Unicode line separators: U+0085 (NEL), U+2028 (LINE SEPARATOR), and U+2029 (PARAGRAPH SEPARATOR). These characters can be embedded in HTTP request headers (valid as obs-text per HTTP specs), the request URL, and Basic authentication usernames. When these code points are written to the access log, downstream log analysis tools that are ECMAScript or Unicode-aware interpret them as line breaks, splitting a single physical log record into multiple logical records. This allows attackers to inject forged log entries. No user interaction is required; an attacker only needs network access to send a crafted HTTP request. The fix is available in version 1.12.0.

Affected products

  • Express.js morgan < 1.12.0

Identifiers

  • CVE-2026-15603
  • GHSA-jxfw-x594-9x9m

Timeline

  • 2026-08-28: disclosed
  • 2026-09-08: patched: Version 1.12.0 released

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.