CWE-191: Integer Underflow (Wrap or Wraparound)整数下溢

 ID: 191

类型:基础
结构:简单

状态:草稿

描述

从另一个值中减去一个值,结果小于允许的最小整数值,该整数值产生的值不等于正确的结果。

扩展描述

这可能在有符号和无符号的情况下发生

相关视图

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

同“公开弱点简图”视图(CWE-1003)相关

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

引入模式

阶段

说明

实现

 

应用平台

语言

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

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

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

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

后果

范围

冲击

可能性

可利用性

技术冲击: DoS: 崩溃、推出或者重启: DoS: 资源消耗(CPU): DoS: 资源消耗 (内存):; DoS: 不稳定

这种弱点通常会导致未定义的行为,从而导致崩溃。在涉及循环索引变量的溢出情况下,无限循环的可能性也很高。

 

完整性

技术冲击: 修改内存

如果所讨论的值对数据(而不是流)很重要,则会发生简单的数据损坏。此外,如果环绕导致其他条件(如缓冲区溢出),则可能会发生进一步的内存损坏。

 

保密性
可利用性
访问控制

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

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

 

示例

例1

下面的示例从32位有符号整数中减去一个数。

(问题代码)

Example Language:

#include <stdio.h>
#include <stdbool.h>
main (void)
{

int i;
i = -2147483648;
i = i - 1;
return 0;

}

该示例具有整数下溢。i的值已经是尽可能低的负值,所以减去1后,i的新值是2147483647。

种属

 

关系

类型

ID

名称

属于

884

CWE Cross-section

属于

998

SFP Secondary Cluster: Glitch in Computation

属于

1137

SEI CERT Oracle Secure Coding Standard for Java - Guidelines 03. Numeric Types and Operations (NUM)

属于

1158

SEI CERT C Coding Standard - Guidelines 04. Integers (INT)

说明

研究空白

研究中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值