{"id":"CVE-2026-15603","aliases":["GHSA-jxfw-x594-9x9m"],"url":"https://o3.security/vulnerability/CVE-2026-15603","summary":"morgan vulnerable to Log Forging via unescaped Unicode line separators","details":"### Impact\n\nMorgan writes attacker-controlled request data to the access log through its tokens. The 1.11.0 fix neutralizes C0 control characters, DEL, and backslash, but it does not escape the Unicode line separators `U+0085` (NEL), `U+2028` (LINE SEPARATOR), or `U+2029` (PARAGRAPH SEPARATOR). These code points are reachable through several tokens, including the request URL (`:url`), request headers such as `:user-agent` and `:referrer`, arbitrary `:req[header]` values, and the Basic auth username (`:remote-user`). NEL is valid `obs-text` in HTTP header values, so an attacker can place it in an ordinary request header.\n\nWhen such a value is logged, the raw code points survive into the emitted access-log record, and downstream ECMAScript-aware or Unicode-aware log processing splits the single physical record into multiple logical records. This allows an attacker to forge log entries. The built-in `combined`, `common`, `default`, and `short` formats are affected, as well as any custom format. This is an incomplete fix of CVE-2026-5078.\n\n### Patches\n\nUsers should upgrade to version 1.12.0.\n\n### Workarounds\n\nNone. The affected values include the request URL and request headers, which are core to access logging, so there is no practical format-based mitigation. Upgrade to 1.12.0.","published":"2026-08-28T13:41:49.521Z","modified":"2026-10-21T02:56:11.652062402Z","cvss":{"score":5.3,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"npm","name":"morgan","fixedVersion":"1.12.0"}],"fix":{"url":"https://github.com/expressjs/morgan/commit/fbf93833186920cc39bb19b247e4a86b61bef4fe","label":"expressjs/morgan@fbf9383"},"references":[{"type":"ADVISORY","url":"https://cna.openjsf.org/security-advisories.html"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/15xxx/CVE-2026-15603.json"},{"type":"ADVISORY","url":"https://github.com/expressjs/morgan/security/advisories/GHSA-jxfw-x594-9x9m"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-15603"},{"type":"WEB","url":"https://github.com/expressjs/morgan/commit/fbf93833186920cc39bb19b247e4a86b61bef4fe"},{"type":"PACKAGE","url":"https://github.com/expressjs/morgan"},{"type":"WEB","url":"https://github.com/expressjs/morgan/releases/tag/1.12.0"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-21T02:56:11.652062402Z"}}