CWE-587: Assignment of a Fixed Address to a Pointer(将固定地址赋给指针)

 ID: 587

类型:基础
结构:简单

状态:草稿

描述

软件将指针设置为一个非空或0的特定地址。

扩展描述

使用固定地址不可移植,因为该地址可能在所有环境或平台中都无效。

相关视图

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

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

引入模式

阶段

说明

架构与设计

 

实现

 

应用平台

语言

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

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

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

Class: 组装(出现的可能性不确定)

后果

范围

冲击

可能性

完整性
保密性
可利用性

技术冲击: 执行未获授权的代码或命令

I如果在已知位置执行代码,攻击者可能能够预先在那里注入代码。

 

可利用性

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

如果代码被移植到另一个平台或环境,指针可能无效并导致崩溃。

 

保密性
完整性

技术冲击: 内存读取; 修改内存

已知指针位置的数据很容易被攻击者读取或影响。

 

示例

例1

此代码假定在特定地址始终可以找到特定的函数。它为该地址分配一个指针并调用函数。

(问题代码)

Example Language:

int (*pt2Function) (float, char, char)=0x08040000;
int result2 = (*pt2Function) (12, 'a', 'b');
// Here we can inject code to execute.

同一个函数可能并不总是在同一个内存地址中找到。这可能导致崩溃,或者攻击者可能更改预期地址处的内存,从而导致任意代码执行。

应对措施

阶段: 实现

永远不要再固定地址存放指针。

种属

关系

类型

ID

名称

属于

738

CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)

属于

872

CERT C++ Secure Coding Section 04 - Integers (INT)

属于

884

CWE Cross-section

属于

998

SFP Secondary Cluster: Glitch in Computation

属于

1158

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值