CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

新CWE吗?点击这里!
CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE列表> CWE -个人字典定义(4.12)
ID

cwe - 180:不正确的行为秩序:规范化之前验证

弱点ID: 180
抽象:变体
结构:简单的
视图定制的信息:
的用户感兴趣的更多的概念方面的一个弱点。例如:教育者,技术作家和项目/项目经理。 用户关心的实际应用和细节的本质弱点以及如何预防它的发生。例子:工具开发人员、安全人员、pen-testers事件反应分析师。 对于用户映射一个问题CWE / CAPEC id,即。,找到最合适的CWE为一个特定的问题(例如,CVE记录)。例如:工具开发人员、安全人员。 用户希望看到所有可用的信息CWE / CAPEC条目。 为用户谁想要定制显示细节。
×

编辑自定义过滤器


+描述
产品验证输入之前规范化,防止产品检测数据规范化步骤后变得无效。
+扩展描述
这可以被攻击者绕过验证和发动攻击,暴露缺点,否则是可以预防的,如注射。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 179年 不正确的行为秩序:早期验证
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
访问控制

技术的影响:旁路保护机制

+示范例子

示例1

下面的代码尝试验证给定输入路径通过检查它对一个allowlist然后返回规范化道路。在这个特定的例子中,被认为是有效的路径字符串开头“safe_dir /”。

(坏的代码)
例如语言:Java
字符串路径= getInputPath ();
如果(path.startsWith (" / safe_dir / "))
{
文件f =新文件(路径);
返回f.getCanonicalPath ();
}

上面的代码的问题是,验证步骤前进行规范化。攻击者可以提供一个输入路径“/ safe_dir / . ./”,通过验证步骤。然而,规范化过程中看到的二阶导数作为一个遍历到父目录,因此当canonicized路径将成为“/”。

为了避免这个问题,应该进行验证后规范化。在这种情况下规范化发生在初始化文件的对象。下面的代码修复这个问题。

(好的代码)
例如语言:Java
字符串路径= getInputPath ();
文件f =新文件(路径);
如果(f.getCanonicalPath () .startsWith (" / safe_dir / "))
{
返回f.getCanonicalPath ();
}

+观察到的例子
参考 描述
产品允许远程攻击者查看限制文件通过一个HTTP请求包含一个“*”(通配符或星号)字符。
产品修改文件扩展名的前两个字母后执行安全检查,它允许远程攻击者绕过身份验证通过文件名判明扩展而不是.hts扩展。
数据库消耗额外的在处理字符,不能转换,可以从查询和删除一个转义字符使应用程序SQL注入攻击。
重叠“fakechild / . . / realchild”
产品检查URI " < "和其他文字字符,但它在十六进制解码URI,所以“% 3 e”和其他序列是允许的。
+潜在的缓解措施

实施阶段:

策略:输入验证

输入应该解码和规范化应用程序当前的内部表示之前验证(cwe - 180)。确保应用程序不会解码输入两次相同(cwe - 174)。这些错误可以用来绕过allowlist验证方案通过引入危险的输入后检查。
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 722年 OWASP十大2004类别A1 -用户输入
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 845年 CERT甲骨文安全Java编码标准(2011)第二章-输入验证和数据卫生处理(IDS)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 992年 SFP二级集群:错误的输入转换
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1134年 SEI CERT甲骨文Java安全编码标准,指南00。输入验证和数据卫生处理(IDS)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1147年 SEI CERT甲骨文Java安全编码标准,指南13。输入输出(FIO)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1410年 综合分类:控制流管理不足
+脆弱性映射笔记

用法:允许

(CWE ID可以用来映射到现实世界的漏洞)

原因:可接受的使用

理由是:

这个CWE条目是变体的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。

评论:

仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。
+笔记

的关系

这种重叠另一个类别去了。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
千鸟 Validate-Before-Canonicalize
OWASP十大2004 A1 CWE更具体 用户输入
CERT甲骨文安全Java编码标准(2011) IDS01-J 确切的 规范化字符串之前验证它们
SEI CERT甲骨文Java编码标准 IDS01-J 确切的 规范化字符串之前验证它们
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19
(CWE草案3,2006-07-19)
千鸟
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Potential_Mitigations Time_of_Introduction
2008-08-15 Veracode
建议OWASP 2004年排名前十的映射
2008-09-08 CWE内容团队 主教法冠
更新的关系,Other_Notes Taxonomy_Mappings,类型
2008-10-14 CWE内容团队 主教法冠
更新描述
2009-05-27 CWE内容团队 主教法冠
更新Other_Notes Relationship_Notes
2010-02-16 CWE内容团队 主教法冠
更新Demonstrative_Examples
2011-03-29 CWE内容团队 主教法冠
更新Potential_Mitigations
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples、Observed_Examples Related_Attack_Patterns、关系、Taxonomy_Mappings
2014-07-30 CWE内容团队 主教法冠
更新的关系
2017-01-19 CWE内容团队 主教法冠
更新的关系
2017-11-08 CWE内容团队 主教法冠
更新Applicable_Platforms Functional_Areas
2019-01-03 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2019-06-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2020-02-24 CWE内容团队 主教法冠
更新关系类型
2020-06-25 CWE内容团队 主教法冠
更新Demonstrative_Examples Potential_Mitigations
2023-01-31 CWE内容团队 主教法冠
更新描述
2023-04-27 CWE内容团队 主教法冠
更新的关系
2023-06-29 CWE内容团队 主教法冠
更新Mapping_Notes
+以前的条目名称
改变日期 以前的条目名称
2008-04-11 Validate-Before-Canonicalize
页面最后更新:2023年6月29日