描述
产品不清理它的状态或不正确清理其状态时将抛出一个异常,导致意想不到的状态或控制流。
扩展描述
通常,当函数或循环变得复杂,需要清理在执行某种级别的资源。例外可以打扰的代码和防止发生必要的清理。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
实现 |
实现:造成这一弱点在建筑安全策略的实施。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
其他
|
代码可以在一个糟糕的状态。 |
|
利用的可能性
示范例子
示例1
下面的例子显示出,需求不足。
公共类foo {
公共静态最终void main (String参数[]){
布尔returnValue; returnValue = doStuff ();
} 公共静态最终布尔doStuff () {
布尔threadLock; 布尔真值= true; 尝试{
而(
/ /检查一些条件
){
threadLock = true;/ /做的一些东西真值 threadLock = false;
}
} 捕获(异常e) {
System.err。println(“你做坏事”); 如果()返回真值;
} 返回真值;
}
}
在这种情况下,您可能会让一个线程锁不小心。
潜在的缓解措施
实施阶段:
如果一个休息一个循环或函数抛出异常,确保清理发生或者你应该退出程序。使用抛出异常稀少。 |
检测方法
自动静态分析
自动静态分析,通常被称为静态应用程序安全性测试(科协),可以找到一些实例的这个弱点分析源代码或二进制/编译后的代码,而不必执行它。通常情况下,这是通过建立一个模型的数据流和控制流,然后寻找潜在攻击模式,连接“源”与“下沉”(输入)的起源(目的地数据与外部组件交互,较低的层,如操作系统,等等)。
|
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这CWE条目底部的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
扣 |
|
|
清理不当抛出异常 |
CERT甲骨文安全Java编码标准(2011) |
ERR03-J |
|
恢复之前的对象状态方法失败 |
CERT甲骨文安全Java编码标准(2011) |
ERR05-J |
|
不要让受控异常逃离finally块吗 |
SEI CERT Perl编码标准 |
EXP31-PL |
不精确的 |
不要压制或忽视异常 |
引用
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|