Executable Regular Expression Error |
Weakness ID: 624 (Weakness Base) | Status: Incomplete |
Description Summary
The product uses a regular expression that either (1) contains an executable component with user-controlled inputs, or (2) allows a user to enable execution by inserting pattern modifiers.
Extended Description
Case (2) is possible in the PHP preg_replace() function, and possibly in other languages when a user-controlled input is inserted into a string that is later parsed as a regular expression.
Reference | Description |
---|---|
CVE-2006-2059 | executable regexp in PHP by inserting "e" modifier into first argument to preg replace |
CVE-2005-3420 | executable regexp in PHP by inserting "e" modifier into first argument to preg replace |
CVE-2006-2878CVE-2006-2908 | complex curly syntax inserted into the replacement argument to PHP preg replace(), which uses the "/e" modifier |
The regular expression feature in some languages allows inputs to be quoted or escaped before insertion, such as \Q and \E in Perl. |
Nature | Type | ID | Name | View(s) this relationship pertains to![]() |
---|---|---|---|---|
ChildOf | ![]() | 77 | Improper Sanitization of Special Elements used in a Command ('Command Injection') | Development Concepts (primary)699 Research Concepts (primary)1000 |
Under-studied. The existing PHP reports are limited to highly skilled researchers, but there are few examples for other languages. It is suspected that this is under-reported for all languages. Usability factors might make it more prevalent in PHP, but this theory has not been investigated. |