CWE

常见的弱点枚举

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

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

cwe - 194:意想不到的符号扩展

弱点ID: 194
抽象:变体
结构:简单的
视图定制的信息:
+描述
产品上执行一个操作数,导致它是符号扩展时转变成一个更大的数据类型。当原始号码是负的,这可以产生意想不到的价值,导致合成的弱点。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 681年 不正确的数值类型之间的转换
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及质量的措施(2020)”(CWE-1305)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 681年 不正确的数值类型之间的转换
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及数据保护措施”(cwe - 1340)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 681年 不正确的数值类型之间的转换
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

C患病率(待定)

c++患病率(待定)

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

技术的影响:读记忆;修改内存;其他

当一个意想不到的符号扩展发生在直接对内存缓冲区进行操作的代码,比如大小值或内存索引,那么它可能导致程序写或读目标缓冲区的边界之外。如果数值与一个应用程序级别的资源,如一个量或一个产品的价格在一个电子商务网站,那么符号扩展可以产生一个值(或降低)远高于应用程序的容许范围。
+利用的可能性
+示范例子

示例1

下面的代码读取一个最大尺寸和大小上执行一个检查。然后执行strncpy,假设它不会超过数组的边界。虽然使用“短”是强制在这个特定的例子中,短整型的实际代码中经常使用,例如代码处理结构化数据。

(坏的代码)
例如语言:C
int GetUntrustedInt () {
返回(0 x0000ffff);
}

void main (int命令行参数个数,char * * argv) {
char路径[256];
char *输入;
int我;
短的年代;
unsigned int深圳;

i = GetUntrustedInt ();
s = i;
/ * s是1,所以通过了安全检查cwe - 697* /
如果(> 256){
DiePainfully(“走开! \ n”);
}

/ * s符号扩展和保存在深圳* /
深圳= s;

/ *输出:我= 65535 s = 1,深圳= 4294967295 -你的情况可能不同* /
printf (" i = % d s = % d,深圳= % u \ n”,我,年代,sz);

输入= GetUserInput(“输入路径名:”);

/ * strncpy解释年代unsigned int,视为MAX_INT
(cwe - 195),使缓冲区溢出(cwe - 119)* /
strncpy(路径,输入,年代);
路[255]= ' \ 0 ';/ *不希望的cwe - 170* /
printf("路径是:% s \ n”,路径);
}

这段代码首先展示的一个例子cwe - 839,允许“s”是一个负数。当消极的短“s”转化为一个无符号整数,它成为一个非常大的正整数。当使用这个转换整数strncpy()会导致缓冲区溢出(cwe - 119)。

+观察到的例子
参考 描述
链:意想不到的符号扩展(cwe - 194)导致整数溢出(cwe - 190),导致一个界外阅读(cwe - 125)
符号扩展错误产生1值当作一个命令分隔符,使OS命令注入。
产品采用“char类型输入字符。当字符被实现为一个签署了类型,ASCII值0 xff(255),一个符号扩展产生1值视为制定分离器价值,有效的禁用长度检查,导致缓冲区溢出。这也是一个多个解释错误。
链:签署短宽值在图像处理器信号扩展转换为无符号整型,导致整数溢出和基于堆的缓冲区溢出。
链:signedness错误允许绕过一个长度的检查;后来符号扩展使得开发更加容易。
符号扩展时操纵Pascal-style字符串内存拷贝导致整数溢出和不当。
+潜在的缓解措施

实施阶段:

避免使用变量如果你不需要签署代表消极的价值观。需要负时,执行验证保存这些值较大的数据类型之后,或之前通过他们预计无符号值的函数。
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 998年 SFP二级集群:故障计算
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1158年 SEI CERT 04 C编码标准指导方针。整数(INT)
+笔记

的关系

符号扩展错误会导致缓冲区溢出和其他基于内存的问题。他们也可能在其他因素的弱点不基于内存操作,但依赖于数值计算。

维护

这个条目与signed-to-unsigned转换错误(密切相关cwe - 195)和其他数字错误。这些关系在CWE需要更密切了。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
符号扩展的错误
软件故障模式 SFP1只能 在计算故障
CERT C安全编码 INT31-C CWE更具体 确保整数转换不会导致数据丢失或误解
+引用
约翰•麦克唐纳(ref - 161)马克Schuh多德和贾斯汀。“C语言应用程序安全问题”。2008-01-25。<http://www.informit.com/articles/article.aspx?p=686170&seqNum=6>。
[ref - 162]罗伯特Seacord。“积分安全”。2006-11-03。<http://www.ddj.com/security/193501774>。
[REF-18]安全软件公司. .“扣应用程序安全性的过程”。2005年。<https://cwe.mitre.org/documents/sources/TheCLASPApplicationSecurityProcess.pdf>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19
+修改
修改日期 修饰符 组织
2008-09-08 CWE内容团队 主教法冠
更新Applicable_Platforms Common_Consequences、描述关系,Taxonomy_Mappings
2008-11-05 CWE内容团队 主教法冠
完全重写整个条目
2008-11-24 CWE内容团队 主教法冠
更新Common_Consequences Demonstrative_Examples,描述、Maintenance_Notes名字,Observed_Examples, Potential_Mitigations,引用,Relationship_Notes、人际关系
2009-05-27 CWE内容团队 主教法冠
更新Demonstrative_Examples
2009-10-29 CWE内容团队 主教法冠
更新Demonstrative_Examples
2010-04-05 CWE内容团队 主教法冠
更新Demonstrative_Examples
2010-12-13 CWE内容团队 主教法冠
更新Applicable_Platforms
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples、人际关系
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2017-11-08 CWE内容团队 主教法冠
更新引用,Taxonomy_Mappings
2019-01-03 CWE内容团队 主教法冠
更新的关系
2020-02-24 CWE内容团队 主教法冠
更新的关系
2020-06-25 CWE内容团队 主教法冠
更新Observed_Examples
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新Potential_Mitigations,引用
2023-01-31 CWE内容团队 主教法冠
更新描述
+以前的条目名称
改变日期 以前的条目名称
2008-04-11 符号扩展的错误
2008-11-24 不正确的符号扩展
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日