CWE-624 可执行体正则表达式错误

Executable Regular Expression Error

结构: Simple

Abstraction: Base

状态: Incomplete

被利用可能性: unkown

基本描述

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.

扩展描述

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.

相关缺陷

  • cwe_Nature: ChildOf cwe_CWE_ID: 77 cwe_View_ID: 1000 cwe_Ordinal: Primary

  • cwe_Nature: ChildOf cwe_CWE_ID: 77 cwe_View_ID: 699 cwe_Ordinal: Primary

适用平台

Language: [{'cwe_Name': 'PHP', 'cwe_Prevalence': 'Undetermined'}, {'cwe_Name': 'Perl', 'cwe_Prevalence': 'Undetermined'}]

常见的影响

范围 影响 注释
['Confidentiality', 'Integrity', 'Availability'] Execute Unauthorized Code or Commands

可能的缓解方案

Implementation

策略:

The regular expression feature in some languages allows inputs to be quoted or escaped before insertion, such as \Q and \E in Perl.

分析过的案例

标识 说明 链接
CVE-2006-2059 Executable regexp in PHP by inserting "e" modifier into first argument to preg_replace https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-2059
CVE-2005-3420 Executable regexp in PHP by inserting "e" modifier into first argument to preg_replace https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3420
CVE-2006-2878 Complex curly syntax inserted into the replacement argument to PHP preg_replace(), which uses the "/e" modifier https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-2878
CVE-2006-2908 Function allows remote attackers to execute arbitrary PHP code via the username field, which is used in a preg_replace function call with a /e (executable) modifier. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-2908

Notes

分类映射

映射的分类名 ImNode ID Fit Mapped Node Name
Software Fault Patterns SFP24 Tainted input to command