CWE-467: Use of sizeof() on a Pointer Type

Variant Draft Simple

CWE版本: 4.18

更新日期: 2025-09-09

弱点描述

The code calls sizeof() on a pointer type, which can be an incorrect calculation if the programmer intended to determine the size of the data that is being pointed to.

扩展描述

The use of sizeof() on a pointer can sometimes generate useful information. An obvious case is to find out the wordsize on a platform. More often than not, the appearance of sizeof(pointer) indicates a bug.

常见后果

影响范围: Integrity Confidentiality

技术影响: Modify Memory Read Memory

说明: This error can often cause one to allocate a buffer that is much smaller than what is needed, leading to resultant weaknesses such as buffer overflows.

潜在缓解措施

阶段: Implementation

描述: Use expressions such as "sizeof(*pointer)" instead of "sizeof(pointer)", unless you intend to run sizeof() on a pointer type to gain some platform independence or if you are allocating a variable on the stack.

检测方法

方法: Automated Static Analysis

Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)

有效性: High

引入模式

阶段 说明
Implementation -

适用平台

编程语言
C (Undetermined) C++ (Undetermined)

分类映射

分类名称 条目ID 条目名称 映射适配度
CLASP - Use of sizeof() on a pointer type -
CERT C Secure Coding ARR01-C Do not apply the sizeof operator to a pointer when taking the size of an array -
CERT C Secure Coding MEM35-C Allocate sufficient memory for an object CWE More Abstract
Software Fault Patterns SFP10 Incorrect Buffer Length Computation -
关键信息

CWE ID: CWE-467

抽象级别: Variant

结构: Simple

状态: Draft

利用可能性: High

相关弱点