CWE-196: Unsigned to Signed Conversion Error(无符号到有符号转换错误)

 ID: 196

类型:变量
结构:简单

状态:草稿

描述

软件使用无符号数据强制转换成有符号数据,如果无符号数据的值不能用有符号数据表示,则会产生意外的值。

扩展描述

尽管无符号到有符号的转换比有符号到无符号的转换更不常见,但无符号到有符号的转换是危险的缓冲区下溢的完美前兆,允许攻击者向下移动堆栈,否则在正常缓冲区溢出条件下可能无法访问。当大的无符号值被强制转换为有符号值,然后用作缓冲区的索引或指针算术时,缓冲区下溢频繁发生。

相关视图

与“研究层面”视图(CWE-1000)相关

与“开发层面”视图(CWE-699)相关

引入模式

阶段

说明

实现

 

应用平台

语言

C (出现的可能性不确定)

C++ (出现的可能性不确定)

后果

范围

冲击

可能性

可利用性

技术冲击: DoS: 崩溃、退出或重启

I不正确的符号转换通常会导致未定义的行为,从而导致崩溃。

 

完整性

技术冲击: 修改内存

如果不良的强制转换导致缓冲区溢出或类似的情况,数据完整性可能会受到影响。

 

完整性
保密性
可利用性
访问控制

技术冲击: 执行未获授权的代码或者命令;越过保护机制

.没有正确检查的不正确的有符号到无符号转换有时会触发缓冲区溢出,这些溢出可用于执行任意代码。这通常不在程序隐式安全策略的范围内。

 

被利用的可能性:

一般

应对措施

阶段: 需求

选择一种不受这些铸造缺陷影响的语言。

阶段: 架构与设计

设计对象访问器函数以隐式检查有效大小的值。确保所有将用作大小的函数在用作大小之前都已选中。如果语言允许,则抛出异常,而不是使用带内错误。

阶段: 实现

错误检查所有函数的返回值。请注意所做的隐式强制转换,并尽可能使用无符号变量来表示大小。

种属

关系

类型

ID

名称

属于

998

SFP Secondary Cluster: Glitch in Computation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值