CVE-2026-87859: morgan vulnerable to Log Injection via unescaped double quote in quoted log fields

Published Sep 11, 2026
·
Updated

Impact

Morgan writes attacker-controlled request data to the access log. Its escaping (added in 1.11.0 and 1.12.0) neutralizes control characters, the Unicode line separators, and backslash, but not the double quote (0x22), which is the field delimiter of the Apache combined log format morgan emits. An attacker who controls a quoted field (:user-agent, :referrer, the request URL, or the Basic auth :remote-user) can inject a double quote to close the field early and forge additional fields in the log record. The combined, common, and default formats, and any custom format that quotes a token, are affected. This is an incomplete fix of CVE-2026-5078 and CVE-2026-15603.

Patches

Users should upgrade to version 1.12.1.

Workarounds

Update to version 1.12.1.

Other sources

morgan is an HTTP request logger middleware for Node.js. In versions before 1.12.1, its escapeLogField() function does not escape the double quote character, which delimits the quoted fields of the Apache combined log format that morgan emits. An unauthenticated remote attacker who controls a value written to a quoted field, such as the User-Agent or Referer header, can include a double quote to close that field early, so a log consumer that parses the log by field position reads attacker-supplied text as the following field. In the built-in formats this makes the recorded value differ from the value that was sent, and in custom formats that quote an attacker-controlled token before a server-controlled one it can forge values such as the response status. No newline is injected, so record separation stays intact. The issue is fixed in morgan 1.12.1, which escapes the double quote. Users should upgrade to morgan 1.12.1 or later.

— MITRE

Affected Software

2 affected componentsFixes available
npm/morgan<1.12.1
npm/morgan<1.12.1
1.12.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/morgan to a version that resolves this vulnerability.

    Fixed in 1.12.1
  2. Upgrade

    Upgrade morgan to a version that resolves this vulnerability.

    Fixed in 1.12.1

Event History

Sep 11, 2026
CVE Published
via MITRE·09:15 AM
Data Sourced
via MITRE·09:15 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 AM
DescriptionSeverityWeakness
Sep 28, 2026
Advisory Published
via GitHub·09:33 PM
Data Sourced
via GitHub·09:33 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Who is exposed to this issue?

Applications using morgan before 1.12.1 are exposed when they log attacker-controlled values in quoted fields. This includes built-in formats that log headers such as User-Agent or Referer, and custom formats that quote attacker-controlled tokens.

2

What does an attacker need to exploit it?

An unauthenticated remote attacker only needs to send a request containing a double quote in a value that morgan writes to a quoted log field, such as User-Agent or Referer. Exploitation does not require newline injection or breaking log record separation.

3

What is the practical impact on log analysis?

A parser that reads Apache combined-style logs by field position can interpret attacker-supplied text as the next field after the quote closes the original field early. In custom formats where an attacker-controlled quoted token precedes a server-controlled token, this can forge logged values such as the response status.

4

How can this be remediated?

Upgrade morgan to version 1.12.1 or later. That version escapes double quote characters in escapeLogField().

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203