CWE-244: Improper Clearing of Heap Memory Before Release ('Heap Inspection') 释放前堆内存清除不当(“堆检查”)

 ID: 244

类型:变量
结构:简单

状态:草稿

描述

使用realloc()调整存储敏感信息的缓冲区的大小可以使敏感信息暴露在攻击中,因为它不会从内存中删除。

扩展描述

当敏感数据(如密码或加密密钥)未从内存中删除时,使用“堆检查”攻击(使用内存转储或其他方法读取敏感数据)可能会暴露给攻击者。realloc()函数通常用于增加已分配内存块的大小。此操作通常需要将旧内存块的内容复制到新的更大的块中。此操作使原始块的内容保持完整,但程序无法访问,从而使程序无法从内存中清除敏感数据。如果攻击者稍后可以检查内存转储的内容,则可能会暴露敏感数据。

关联视图

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

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

引入模式

阶段

说明

实现

 

应用平台

语言

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

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

后果

范围

冲击

可能性

保密性
其它

技术冲击: 内存读取; 其它

在安全敏感代码中使用vfork()和fork()时要小心。进程状态将不会被清除,并且将包含以前使用的数据痕迹。

 

示例

例1

以下代码对包含敏感数据的缓冲区调用realloc():

(问题代码)

Example Language:

cleartext_buffer = get_secret();...
cleartext_buffer = realloc(cleartext_buffer, 1024);
...
scrub_memory(cleartext_buffer, 1024);

尝试从内存中清除敏感数据,但使用realloc(),因此数据的副本仍然可以在最初分配给cleartext_缓冲区的内存中公开。

种属

关系

类型

ID

名称

属于

227

7PK - API Abuse

属于

742

CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)

属于

876

CERT C++ Secure Coding Section 08 - Memory Management (MEM)

属于

884

CWE Cross-section

属于

963

SFP Secondary Cluster: Exposed Data

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值