CWE-185:不正确的正则表达式
查看自定义信息:
该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
与观点“研究概念”相关(CWE-1000)
该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。
语言 班级:不是特定语言的(不确定的患病率)
该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
示例1 以下代码将电话号码视为输入,并使用正则表达式拒绝无效的电话号码。
(不良代码)
示例语言:珀尔
$ phone = getphoneNumber();
if($ phone =〜 /\ d+ - \ d+ /){
#看起来只有连字符和数字
}系统(“ Lookup-Phone $ Phone”); 别的 {
错误(“畸形号码!”); }攻击者可以提供一个参数:“; ls -L; echo 123-456”这将通过检查,因为“ 123-456”足以匹配正则表达式的“ \ d+ - \ d+”部分。 示例2 该代码在调用“ ping”命令中使用它之前使用正则表达式来验证IP字符串。
(不良代码)
示例语言:Python
导入子过程
导入 def validate_ip_regex(ip:str):
ip_validator = re.compile(r“((25 [0-5] |(2 [0-4] | 1 \ d | [1-9] |)\ d)\。?\ b){4}”)
如果ip_validator.match(ip):
返回IP 别的:
提高ValueError(“ IP地址不匹配有效模式。”)
def run_ping_regex(ip:str):
验证= validate_ip_regex(ip)
#ping命令将零prepended的IP地址视为八十 结果= subproces.call([[“ ping”,已验证])) 打印(结果) 由于正则表达式没有锚点(CWE-777),即没有 ^或$字符的无界无限,然后将0或0x预先到IP地址的开头仍将导致匹配的REGEX模式。由于PING命令支持八进制和十六进制的IP地址,因此它将使用意外有效的IP地址(CWE-1389)。例如,“ 0x63.63.63.63”将被认为等同于“ 99.63.63.63”。结果,攻击者可能会可能会直接达到攻击者无法直接到达的PING系统。
此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
关系
尽管允许清单/否认的问题有一些重叠,但该条目旨在处理错误的书面正则表达式,无论其预期用途如何。并非每个正则表达式都用于用作允许列表或否定者。此外,除正则表达式外,还可以使用其他机制来实施允许清单和否认者。
研究差距
REGEXP错误可能是许多MFV的主要因素,尤其是那些需要多次操纵的MFV。但是,他们很少在这个细节上被诊断出来。
提供更多信息 - 请选择其他过滤器。
|
使用共同弱点枚举(CWE)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI)由manbetx客户端首页(MITER)。版权所有©2006–2023,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |