Incorrect Regular Expression
|ID: 185||Date: (C)2012-05-14 (M)2018-10-22|
|Type: weakness||Status: DRAFT|
|Abstraction Type: Class|
The software specifies a regular expression in a way that
causes data to be improperly matched or compared.
Extended DescriptionWhen the regular expression is used in protection mechanisms such as
filtering or validation, this may allow an attacker to bypass the intended
restrictions on the incoming data.
Applicable PlatformsLanguage Class: All
Time Of Introduction
Related Attack Patterns
|Access_Control ||Bypass protection
mechanism ||In PHP, regular expression checks can sometimes be bypassed with a
null byte, leading to any number of weaknesses. |
|Architecture and Design ||Refactoring ||Regular expressions can become error prone when defining a complex
language even for those experienced in writing grammars. Determine if
several smaller regular expressions simplify one large regular
expression. Also, subject the regular expression to thorough testing
techniques such as equivalence partitioning, boundary value analysis,
and robustness. After testing and a reasonable confidence level is
achieved, a regular expression may not be foolproof. If an exploit is
allowed to slip through, then record the exploit and refactor the
regular expression. || || |
|CWE-185 ChildOf CWE-896 ||Category ||CWE-888 || |
Demonstrative Examples (Details)
- (Demonstrative Example Id DX-37)
- CVE-2002-2109 : Regexp isn't "anchored" to the beginning or end, which allows spoofed values that have trusted values as substrings.
- CVE-2005-1949 : Regexp for IP address isn't anchored at the end, allowing appending of shell metacharacters.
- CVE-2001-1072 : Bypass access restrictions via multiple leading slash, which causes a regular expression to fail.
- CVE-2000-0115 : Local user DoS via invalid regular expressions.
- CVE-2002-1527 : chain: Malformed input generates a regular expression error that leads to information exposure.
- CVE-2005-1061 : Certain strings are later used in a regexp, leading to a resultant crash.
- CVE-2005-2169 : MFV. Regular expression intended to protect against directory traversal reduces ".../...//" to "../".
- CVE-2005-0603 : Malformed regexp syntax leads to information exposure in error message.
- CVE-2005-1820 : Code injection due to improper quoting of regular expression.
- CVE-2005-3153 : Null byte bypasses PHP regexp check.
- CVE-2005-4155 : Null byte bypasses PHP regexp check.
For more examples, refer to CVE relations in the bottom box.
White Box Definitions None
Black Box Definitions None
|PLOVER || ||Regular Expression Error || |
- M. Howard D. LeBlanc .Writing Secure Code 2nd Edition. Microsoft. Section:'Chapter 10, "Using Regular Expressions for Checking Input"
Page 350'. Published on 2002.