CWE

普遍的弱点

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

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

CWE-191:整数下流(包裹或环绕)

弱点ID:191
抽象:根据
结构:简单的
查看自定义信息:
+描述
产品从另一个值中减去一个值,因此结果小于最小允许整数值,该值产生的值不等于正确的结果。
+扩展描述
这可能发生在签名和未签名的案件中。
+替代条款
整数底流:

“整数下流”有时用于识别签名误差,在这些错误中,最初的正数因减法而变为负。但是,在某些情况下涉及无签名的整数涉及不良的情况,因此并非总是一个签名的问题。

“整数下流”有时用于描述索引为负的数组索引错误。

+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为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 错误的计算
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
执行
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

C(不确定的患病率)

C ++(不确定的患病率)

爪哇(不确定的患病率)

C#(不确定的患病率)

+常见后果
部分帮助该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
范围 影响 可能性
可用性

技术影响:DOS:撞车,退出或重新启动;DOS:资源消耗(CPU);DOS:资源消耗(内存);DOS:不稳定

这种弱点通常会导致不确定的行为,因此崩溃。在涉及循环索引变量的溢出的情况下,无限环的可能性也很高。
正直

技术影响:修改内存

如果所讨论的值对数据很重要(与流有关),则会发生简单的数据损坏。同样,如果围绕在缓冲区溢出等其他条件下的围绕结果,可能会发生进一步的内存损坏。
保密
可用性
访问控制

技术影响:执行未经授权的代码或命令;旁路保护机制

这种弱点有时会触发可用于执行任意代码的缓冲区溢出。这通常不在程序的隐式安全策略范围之内。
+示例的例子

示例1

以下示例从32位签名的整数中减去。

(不良代码)
示例语言:C
#include
#include
主(void)
{
int i;
i = -2147483648;
i = i -1;
返回0;
}

该示例具有整数下流。i的值已经以最低的负值为可能,因此减去1后,i的新值是2147483647。

示例2

该代码根据长度计算执行堆栈分配。

(不良代码)
示例语言:C
int a = 5,b = 6;
size_t len = a -b;
char buf [len];//只是炸毁堆栈
}

由于A和B称为签名INT,因此“ A -B”减法给出了负结果(-1)。但是,由于Len被宣布为未签名,因此Len被铸成一个非常大的正数(在32位系统-4294967295上)。结果,Buffer Buf [Len]声明使用了极大的尺寸来分配堆栈,这可能比整个计算机的存储空间都多。

错误估计通常不会那么明显。计算要么是复杂的,要么是攻击者输入以达到负值的结果。

+观察到的例子
参考 描述
通过畸形数据包在防火墙中的整数下流。
整数底流量,具有无效长度的数据包。
长输入导致长度计算不正确。
畸形的图标导致循环计数器变量中的整数下流。
+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 姓名
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 884 CWE横截面
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 998 SFP次级群集:计算中的故障
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1137 Java的SEI CERT ORACLE SECURE编码标准 - 指南03.数字类型和操作(NUM)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1158 SEI CERT C编码标准 - 指南04.整数(INT)
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
plover 整数下流(包裹或环绕)
软件故障模式 SFP1 计算中的故障
证书C安全编码 INT30-C 不精确 确保未签名的整数操作不包装
证书C安全编码 INT32-C 不精确 确保对签名整数的操作不会导致溢出
+参考
[Ref-44] Michael Howard,David Leblanc和John Viega。“软件安全性的24个致命罪”。“罪7:整数溢出。”第119页。McGraw-Hill。2010年。
+内容历史记录
+提交
提交日期 提交者 组织
2006-07-19 plover
+修改
修改日期 修饰符 组织
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新了Dexplyative_example
2008-09-08 CWE内容团队 MITER
更新的备用_terms,papperable_platforms,关系,分类_mappings
2008-10-14 CWE内容团队 MITER
更新的描述
2009-05-27 CWE内容团队 MITER
更新了示范_examples
2011-06-01 CWE内容团队 MITER
更新的common_cconsquences
2011-06-27 CWE内容团队 MITER
更新的common_cconsquences
2012-05-11 CWE内容团队 MITER
更新了COMMON_CCONSQUENCES,参考,关系
2014-07-30 CWE内容团队 MITER
更新的示范_examples,关系,分类_mappings
2015-12-07 CWE内容团队 MITER
更新的关系
2017-11-08 CWE内容团队 MITER
更新的分类法_ mappings
2019-01-03 CWE内容团队 MITER
更新的关系
2020-02-24 CWE内容团队 MITER
更新的关系
2021-03-15 CWE内容团队 MITER
更新了示范_examples
2022-04-28 CWE内容团队 MITER
更新的Research_gaps
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日