CWE

普遍的弱点

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

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

CWE-681:数字类型之间的不正确转换

弱点ID:681
抽象:根据
结构:简单的
查看自定义信息:
+描述
从一种数据类型转换为另一种数据类型(例如长到整数)时,可以以产生意外值的方式省略或翻译数据。如果结果值在敏感的环境中使用,则可能发生危险行为。
+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 姓名
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 704 不正确的类型转换或铸造
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 192 整数强制误差
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 194 意外的签名扩展
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 195 签名到未签名的转换错误
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 196 未符合签名的转换错误
父母 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 197 数字截断误差
canpreceede 支柱支柱 - 弱点是最抽象的弱点类型,代表了与之相关的所有类别/基础/变体弱点的主题。从技术上讲,柱子与类别不同,因为在技术上仍然是一种描述错误的弱点,而类别代表用于分组相关事物的常见特征。 682 错误的计算
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 136 类型错误
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 189 数字错误
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“简化已发表漏洞的简化映射”(CWE-1003)相关的视图相关(CWE-1003)
自然 类型 ID 姓名
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 704 不正确的类型转换或铸造
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“ CISQ质量措施(2020)”相关(CWE-1305)
自然 类型 ID 姓名
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 194 意外的签名扩展
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 195 签名到未签名的转换错误
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 196 未符合签名的转换错误
父母 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 197 数字截断误差
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“ CISQ数据保护措施”(CWE-1340)有关
自然 类型 ID 姓名
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 194 意外的签名扩展
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 195 签名到未签名的转换错误
父母 变体变体 - 与某种类型的产品相关的弱点,通常涉及特定的语言或技术。比基本弱点更具体。变体级别的弱点通常以以下维度的3到5来描述问题:行为,财产,技术,语言和资源。 196 未符合签名的转换错误
父母 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 197 数字截断误差
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
执行
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

班级:不是特定语言的(不确定的患病率)

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

技术影响:意外状态;质量退化

该程序可以使用错误的数字结束并产生错误的结果。如果该数字用于分配资源或做出安全决定,那么这可能会引入漏洞。
+利用的可能性
高的
+示例的例子

示例1

在下面的Java示例中,浮点字面呈现给整数,从而导致精确度损失。

(不良代码)
示例语言:爪哇
int i =(int)33457.8f;

示例2

该代码将浮子和一个整数添加在一起,将结果抛向整数。

(不良代码)
示例语言:php
$ floatval = 1.8345;
$ intval = 3;
$ result =(int)$ floatval + $ intval;

通常,PHP将保留此操作的精度,使$结果= 4.8345。在将iNT演出后,可以合理地期望PHP遵循四舍五入限制并设置$ result = 5。。

示例3

在此示例中,可变数量在返回时可以容纳负值。由于该函数被声明返回未签名的int,因此金额将被隐式转换为未签名。

(不良代码)
示例语言:C
unsigned int readdata(){
INT MANTE = 0;
...
如果(结果==错误)
金额= -1;
...
退货金额;
}

如果满足上述代码中的错误条件,则在使用32位整数的系统上,ReadData()的返回值将为4,294,967,295。

示例4

在此示例中,取决于ACCECSSMAINFRAME()的返回值,变量金额在返回时可以保持负值。由于该函数被声明为返回无符号值,因此金额将被隐式投入到无符号数字中。

(不良代码)
示例语言:C
unsigned int readdata(){
INT MANTE = 0;
...
量= AccessMainFrame();
...
退货金额;
}

如果AccessMainFrame()的返回值为-1,则在使用32位整数的系统上,ReadData()()的返回值将为4,294,967,295。

+观察到的例子
参考 描述
链:整数签名错误(CWE-195)通过签名比较,导致堆溢出(CWE-122
链:签名的图像处理器中的短宽度值是在转换为未签名的INT期间扩展的,这导致整数溢出和基于堆的缓冲区溢出。
长度值的整数截断会导致基于堆的缓冲区溢出。
64位平台的特定类型更改的大小,导致文档处理器中的整数截断会导致生成错误的索引。
+潜在的缓解

阶段:实施

避免在数字类型之间进行转换。始终检查允许的范围。
+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 738 证书C安全编码标准(2008)第5章 - 整数(INT)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 739 证书C安全编码标准(2008)第6章 - 浮点(FLP)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 808 2010年前25名 - 风口浪尖上的弱点
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 848 Java的Cert Oracle安全编码标准(2011)第5章 - 数字类型和操作(NUM)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 867 2011前25名 - 风口浪尖上的弱点
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 872 CERT C ++安全编码第04节 - 整数(INT)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 873 CERT C ++安全编码第05节 - 浮点算术(FLP)
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 884 CWE横截面
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 998 SFP次级群集:计算中的故障
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1131 CISQ质量措施(2016年) - 安全性
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1137 Java的SEI CERT ORACLE SECURE编码标准 - 指南03.数字类型和操作(NUM)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1158 SEI CERT C编码标准 - 指南04.整数(INT)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1159 SEI CERT C编码标准 - 指南05.浮点(FLP)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1306 CISQ质量措施 - 可靠性
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1308 CISQ质量措施 - 安全性
成员 看法查看 - CWE条目的子集,提供了一种检查CWE内容的方法。两个主视图结构是切片(平面列表)和图(包含条目之间的关系)。 1340 CISQ数据保护措施
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
证书C安全编码 flp34-c CWE更抽象 确保浮点转换在新类型的范围内
证书C安全编码 INT15-C 在程序员定义的整数类型上使用intmax_t或uintmax_t进行格式化的io
证书C安全编码 INT31-C CWE更抽象 确保整数转换不会导致丢失或误解数据
证书C安全编码 INT35-C 在比较或分配该大小之前,评估整数表达式更大
Java(2011)的CERT ORACLE SECURE编码标准 num12-j 确保数字类型转换为狭窄类型不会导致丢失或误解数据
软件故障模式 SFP1 计算中的故障
OMG ASCSM ASCSM-CWE-681
+参考
[Ref-962]对象管理组(OMG)。“自动源代码安全度量(ASCSM)”。ASCSM-CWE-681。2016-01。<http://www.omg.org/spec/ascsm/1.0/>。
+内容历史记录
+提交
提交日期 提交者 组织
2008-04-11 CWE社区
由CWE社区成员提交以扩展早期CWE版本
+修改
修改日期 修饰符 组织
2008-07-01 Sean Eidemiller 雪茄
添加/更新的示例
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新的势_METIGATIONS,time_of_introduction
2008-09-08 CWE内容团队 MITER
更新的关系
2008-11-24 CWE内容团队 MITER
更新的描述,关系,分类_mappings
2009-12-28 CWE内容团队 MITER
更新的适用_platforms,likelihone_of_exploit,eneligth_mitigations
2010-02-16 CWE内容团队 MITER
更新的关系
2011-03-29 CWE内容团队 MITER
更新了示范_examples
2011-06-01 CWE内容团队 MITER
更新的common_conconquence,关系,分类_mappings
2011-06-27 CWE内容团队 MITER
更新的common_ccessquences,obsoved_examples,关系
2011-09-13 CWE内容团队 MITER
更新的关系,分类_mappings
2012-05-11 CWE内容团队 MITER
更新了示范示例,参考,关系,分类_mappings
2014-07-30 CWE内容团队 MITER
更新的关系,分类_mappings
2017-11-08 CWE内容团队 MITER
更新的likelihood_of_exploit,obsoved_examples,gualomples_mappings,类型
2019-01-03 CWE内容团队 MITER
更新的参考,关系,分类_mappings
2019-06-20 CWE内容团队 MITER
更新的关系,类型
2020-02-24 CWE内容团队 MITER
更新的关系
2020-08-20 CWE内容团队 MITER
更新的关系
2020-12-10 CWE内容团队 MITER
更新的关系
2021-03-15 CWE内容团队 MITER
更新的关系
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日