CVE-2026-15603: morgan vulnerable to Log Forging via unescaped Unicode line separators
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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
morganto a version that resolves this vulnerability.Fixed in 1.12.0
Event History
Frequently Asked Questions
Who is exposed to this issue?
Applications using morgan versions earlier than 1.12.0 are affected if attacker-controlled values can be included in logged tokens. An unauthenticated remote client can trigger the issue, for example by supplying a Basic authentication username that is logged through the remote-user token.
What does successful exploitation require?
The attacker needs to inject U+0085, U+2028, or U+2029 into an attacker-controlled value that morgan writes to a log token. The downstream log processor must treat these Unicode characters as line separators for the injected content to be split into separate logical records.
How can this be remediated?
Upgrade morgan to version 1.12.0. This version escapes U+0085, U+2028, and U+2029 in addition to the ASCII control characters addressed by the earlier fix.