CWE-93: Improper Neutralization of CRLF Sequences ('CRLF Injection')

What is CWE-93?

CWE-93 is Improper Neutralization of CRLF Sequences ('CRLF Injection'). The flaw arises when The product uses CRLF, or carriage return line feed, as a special element to separate lines or records but does not neutralize CRLF sequences from input, or neutralizes them incorrectly. The database currently holds 153 vulnerabilities mapped to CWE-93 and none of them are in the CISA Known Exploited Vulnerabilities catalog.

OWASP TOP 10:2025 RANK5 — A05:2025 — Injection
Related CVES (365 days)153
AbstractionBase
Likelihood of exploit-

Vulnerabilities mapped to CWE-93

153 vulnerabilities1291% increase year over year

No data

No vulnerability data in CISA KEV for CWE-93

Official definition

ByMitre CWE

The product uses CRLF (carriage return line feeds) as a special element, e.g. to separate lines or records, but it does not neutralize or incorrectly neutralizes CRLF sequences from inputs.

Detailed description

CRLF has syntactic meaning in many line-oriented formats and communications. If an application places unvalidated input where CRLF is interpreted, an input provider can add line or record boundaries and change the structure processed by the application or a downstream component. Data intended to remain content can therefore become part of a message structure, log entry, or outgoing data, enabling modification of application data.

Characteristics

This weakness occurs when input can contain CRLF and the application passes it to a component that uses CRLF to delimit lines or records. Without appropriate neutralization, supplied data can alter line or record boundaries instead of being handled solely as content. The weakness is not language-specific and is recorded as arising during implementation.

Common consequences

The recorded consequence is an integrity impact: an attacker may modify application data by injecting additional lines, records, or headers where CRLF is interpreted. The representative cases include altered outgoing-request headers, spoofed log entries, added mail headers, and HTTP response splitting.

ImpactScopeExplanation
Modify Application DataIntegrity-

Risk mitigations

During implementation, avoid using CRLF as a special sequence where possible. Appropriately filter or quote CRLF sequences in user-controlled input before the input is used in a context that interprets CRLF.

  1. ImplementationAvoid using CRLF as a special sequence.
  2. ImplementationAppropriately filter or quote CRLF sequences in user-controlled input.

Detection methods

Automated static analysis, commonly called Static Application Security Testing (SAST), can identify some instances by analyzing source or binary/compiled code without execution. It typically models data flow and control flow, then searches for potentially vulnerable patterns connecting input sources to sinks where data interacts with external components or lower layers such as the operating system. The recorded effectiveness is high, although this approach does not necessarily find every instance.

MethodApproachEffectiveness
Automated Static AnalysisAutomated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)High

Representative vulnerabilities

The following are representative examples, not an exhaustive list:

  • CVE-2002-1771: CRLF injection enabled a spam proxy by adding mail headers using an email address or name.
  • CVE-2002-1783: CRLF injection in API function arguments allowed headers for outgoing requests to be modified.
  • CVE-2004-1513: Carriage returns enabled spoofed entries in a web server log file.
  • CVE-2006-4624: A chain allowed fake log entries with fake timestamps to be injected using CRLF injection.
  • CVE-2005-1951: A chain in which the application accepted CRLF in an object ID allowed HTTP response splitting.
  • CVE-2004-1687: A chain enabled HTTP response splitting through CRLF in a parameter related to a URL.
Sources (2)

CWE™ Program, operated by The MITRE Corporation. Copyright © 2006–2026, The MITRE Corporation. The MITRE Corporation hereby grants you a non-exclusive, royalty-free license to use CWE for research, development, and commercial purposes. CWE Terms of Use.

Learn more

Run an in-depth assessment with complete web risk management

CyStack VulnScan continuously discovers assets, validates vulnerabilities, and helps security teams prioritize remediation across the organization.