CWE

普遍的弱点

社区开发的软件和硬件弱点类型清单

2021 CWE最重要的硬件弱点
CWE前25个最危险的弱点
>CWE列表> cwe-单个字典定义(4.10)
ID

CWE-369:除以零

弱点ID:369
抽象:根据
结构:简单的
查看自定义信息:
+描述
产品将值除以零。
+扩展描述
这种弱点通常是在向产品提供意外值或发生未正确检测到的错误时发生的。它经常发生在涉及物理尺寸(例如大小,长度,宽度和高度)的计算中。
+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 姓名
Childof 支柱支柱 - 弱点是最抽象的弱点类型,代表了与之相关的所有类别/基础/变体弱点的主题。从技术上讲,柱子与类别不同,因为在技术上仍然是一种描述错误的弱点,而类别代表用于分组相关事物的常见特征。 682 错误的计算
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 189 数字错误
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“简化已发表漏洞的简化映射”(CWE-1003)相关的视图相关(CWE-1003)
自然 类型 ID 姓名
Childof 支柱支柱 - 弱点是最抽象的弱点类型,代表了与之相关的所有类别/基础/变体弱点的主题。从技术上讲,柱子与类别不同,因为在技术上仍然是一种描述错误的弱点,而类别代表用于分组相关事物的常见特征。 682 错误的计算
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“ CISQ质量措施(2020)”相关(CWE-1305)
自然 类型 ID 姓名
Childof 支柱支柱 - 弱点是最抽象的弱点类型,代表了与之相关的所有类别/基础/变体弱点的主题。从技术上讲,柱子与类别不同,因为在技术上仍然是一种描述错误的弱点,而类别代表用于分组相关事物的常见特征。 682 错误的计算
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“ CISQ数据保护措施”(CWE-1340)有关
自然 类型 ID 姓名
Childof 支柱支柱 - 弱点是最抽象的弱点类型,代表了与之相关的所有类别/基础/变体弱点的主题。从技术上讲,柱子与类别不同,因为在技术上仍然是一种描述错误的弱点,而类别代表用于分组相关事物的常见特征。 682 错误的计算
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
执行
+常见后果
部分帮助该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
范围 影响 可能性
可用性

技术影响:DOS:崩溃,退出或重新启动

零除以零导致崩溃。
+利用的可能性
中等的
+示例的例子

示例1

以下Java示例包含一个函数来计算平均值,但不能验证用作分母的输入值不是零。这将创建一个例外,以尝试除以零。如果Java异常处理无法处理此错误,可能会发生意外结果。

(不良代码)
示例语言:爪哇
public int int computeaverageresponsetime(int totaltime,int numrequests){
返回总时间 / numRequests;
}

通过验证用作分母的输入值以下代码将确保除零错误的划分不会导致意外结果。以下Java代码示例将验证输入值,输出错误消息并引发异常。

(好代码)
public int int computeaverageresponsetime(int totaltime,int numrequests)抛出arithmeticexception {
if(numrequests == 0){
system.out.println(“零尝试!”);
投掷算术感受;
}
返回总时间 / numRequests;
}

示例2

以下C/C ++示例包含一个函数,该函数将两个数字值划分,而无需验证用作分母的输入值不是零。这将造成尝试将零除以零的错误,如果此错误不会被语言的错误处理能力捕获,则可能会发生意外的结果。

(不良代码)
示例语言:C
双分裂(双X,双y){
返回x/y;
}

通过验证用作分母的输入值以下代码将确保除零错误的划分不会导致意外结果。如果调用该方法并传递零,则第二个参数将被抛出DivideByZero错误,应由调用块捕获,并带有指示错误的输出消息。

(好代码)
const int divideByZero = 10;
双分裂(双X,双y){
如果(0 == y){
投掷DivideByZero;
}
返回x/y;
}
...
尝试{
分隔(10,0);
}
捕获(int i){
如果(i == dividebyzero){
cerr <<“除以零错误”;
}
}
示例2参考:
[Ref-371] Alex Allain。“处理错误在C ++中异常良好”。<http://www.cprogramming.com/tutorial/exceptions.html>。

示例3

以下C#示例包含一个函数,该函数将两个数字值划分,而无需验证用作分母的输入值不是零。这将造成尝试将零除以零的错误,如果此错误不会被语言的错误处理能力捕获,则可能会发生意外的结果。

(不良代码)
示例语言:C#
int division(int x,int y){
返回(x / y);
}

如果用作分母的输入值为零,则可以修改该方法以升高,捕获和处理DivideByZeroException。

(好代码)
int safeDivision(int x,int y){
尝试{
返回(x / y);
}
catch(system.dividebyzeroexception dbz){
system.console.writeline(“零尝试!”);
返回0;
}
}
示例3参考:
[Ref-372] Microsoft。“异常和异常处理(C#编程指南)”。<https://msdn.microsoft.com/pl-pl/library/ms173160(V=VS.100).aspx>。
+观察到的例子
参考 描述
无效的尺寸值导致除以零。
“空”内容触发零除以零。
0触发的高度值除以零。
+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 730 OWASP前十大2004年A9类 - 拒绝服务
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 738 证书C安全编码标准(2008)第5章 - 整数(INT)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 739 证书C安全编码标准(2008)第6章 - 浮点(FLP)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 848 Java的Cert Oracle安全编码标准(2011)第5章 - 数字类型和操作(NUM)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 872 CERT C ++安全编码第04节 - 整数(INT)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 873 CERT C ++安全编码第05节 - 浮点算术(FLP)
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 884 CWE横截面
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 998 SFP次级群集:计算中的故障
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1137 Java的SEI CERT ORACLE SECURE编码标准 - 指南03.数字类型和操作(NUM)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1158 SEI CERT C编码标准 - 指南04.整数(INT)
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
OWASP 2004年前十名 A9 CWE更具体 拒绝服务
证书C安全编码 FLP03-C 检测并处理浮点错误
证书C安全编码 INT33-C 精确的 确保划分和剩余操作不会导致划分为零错误
Java(2011)的CERT ORACLE SECURE编码标准 num02-j 确保除法和模拟操作不会导致分裂为零错误
软件故障模式 SFP1 计算中的故障
+参考
[Ref-371] Alex Allain。“处理错误在C ++中异常良好”。<http://www.cprogramming.com/tutorial/exceptions.html>。
[Ref-372] Microsoft。“异常和异常处理(C#编程指南)”。<https://msdn.microsoft.com/pl-pl/library/ms173160(V=VS.100).aspx>。
+内容历史记录
+提交
提交日期 提交者 组织
2008-04-11 CWE社区
由CWE社区成员提交以扩展早期CWE版本
+修改
修改日期 修饰符 组织
2008-07-01 Sean Eidemiller 雪茄
添加/更新的示例
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新的time_of_introduction
2008-09-08 CWE内容团队 MITER
更新的common_conconsquences,描述,关系,其他_notes,gualomy_mappings
2008-11-24 CWE内容团队 MITER
更新的关系,分类_mappings
2009-05-27 CWE内容团队 MITER
更新了示范_examples
2009-10-29 CWE内容团队 MITER
更新其他_notes
2011-06-01 CWE内容团队 MITER
更新的common_conconquence,关系,分类_mappings
2011-09-13 CWE内容团队 MITER
更新的关系,分类_mappings
2012-05-11 CWE内容团队 MITER
更新的关系,分类_mappings
2014-07-30 CWE内容团队 MITER
更新的关系,分类_mappings
2015-12-07 CWE内容团队 MITER
更新的关系
2017-11-08 CWE内容团队 MITER
更新的示范_examples,gualomy_mappings
2019-01-03 CWE内容团队 MITER
更新的关系,分类_mappings
2020-02-24 CWE内容团队 MITER
更新的关系
2020-08-20 CWE内容团队 MITER
更新的关系
2020-12-10 CWE内容团队 MITER
更新的关系
2022-10-13 CWE内容团队 MITER
更新的引用
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日