CWE-191:整数下流(包裹或环绕)
查看自定义信息:
![]() ![]()
![]() ![]()
![]() ![]()
![]() 语言 C(不确定的患病率) C ++(不确定的患病率) 爪哇(不确定的患病率) C#(不确定的患病率) ![]()
示例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)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI)由manbetx客户端首页(MITER)。版权所有©2006–2023,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |