CWE
Home > CWE List > CWE-93 Individual Dictionary Definition (Draft 9)   View the CWE List

CWE-93 Individual Dictionary Definition (Draft 9)

Failure to Sanitize CRLF Sequences (aka 'CRLF Injection')
Weakness ID
Status: Draft

93 (Weakness Base)

Description

Summary

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

Weakness Ordinality

Primary (Weakness exists independent of other weaknesses)

Causal Nature

Explicit (This is an explicit weakness resulting from behavior of the developer)

Potential Mitigations

Avoid using CRLF as a special sequence.

Appropriately filter or quote CRLF sequences in user-controlled input.

Observed Examples
ReferenceDescription
CVE-2002-1771CRLF injection enables spam proxy (add mail headers) using email address or name.
CVE-2002-1783CRLF injection in API function arguments modify headers for outgoing requests.
CVE-2004-1513Spoofed entries in web server log file via carriage returns
CVE-2006-4624Chain: inject fake log entries with fake timestamps using CRLF injection
CVE-2005-1951Chain: Application accepts CRLF in an object ID, allowing HTTP response splitting.
CVE-2004-1687Chain: HTTP response splitting via CRLF in parameter related to URL.
Context Notes

Factors: primary to HTTP Response Splitting.

Research Gaps

Probably under-studied, although gaining more prominence in 2005 as a result of interest in HTTP response splitting.

References

Ulf Harnhammar. "CRLF Injection". Bugtraq. 2002-05-07. <http://cert.uni-stuttgart.de/archive/bugtraq/2002/05/msg00079.html>.

Relationships
NatureTypeIDName
ChildOfWeakness ClassWeakness ClassWeakness Class74Failure to Sanitize Data into a Different Plane (aka 'Injection')
CanPrecedeWeakness BaseWeakness BaseWeakness Base117Incorrect Output Sanitization for Logs
ChildOfViewView629
ParentOfWeakness BaseWeakness BaseWeakness Base113Failure to Sanitize CRLF Sequences in HTTP Headers (aka 'HTTP Response Splitting')
CanAlsoBeWeakness VariantWeakness VariantWeakness Variant144Failure to Sanitize Line Delimiters
CanAlsoBeWeakness VariantWeakness VariantWeakness Variant145Failure to Sanitize Section Delimiters
Source Taxonomies

PLOVER - CRLF Injection

Applicable Platforms

All

Related Attack Patterns
CAPEC-IDAttack Pattern Name
81Web Logs Tampering
15Command Delimiters
Page Last Updated: April 22, 2008