CWE CATEGORY: CERT C Secure Coding Standard (2008) Chapter 9 - Memory Management (MEM)Category ID: 742 Vulnerability Mapping:
PROHIBITEDThis CWE ID must not be used to map to real-world vulnerabilities
|
Summary Weaknesses in this category are related to the rules and recommendations in the Memory Management (MEM) chapter of the CERT C Secure Coding Standard (2008). Membership Nature | Type | ID | Name |
---|
MemberOf | View - a subset of CWE entries that provides a way of examining CWE content. The two main view structures are Slices (flat lists) and Graphs (containing relationships between entries). | 734 | Weaknesses Addressed by the CERT C Secure Coding Standard (2008) | HasMember | Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource. | 20 | Improper Input Validation | HasMember | Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource. | 119 | Improper Restriction of Operations within the Bounds of a Memory Buffer | HasMember | Base - a weakness
that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 128 | Wrap-around Error | HasMember | Base - a weakness
that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 131 | Incorrect Calculation of Buffer Size | HasMember | Base - a weakness
that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 190 | Integer Overflow or Wraparound | HasMember | Base - a weakness
that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 226 | Sensitive Information in Resource Not Removed Before Reuse | HasMember | Variant - a weakness
that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource. | 244 | Improper Clearing of Heap Memory Before Release ('Heap Inspection') | HasMember | Base - a weakness
that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 252 | Unchecked Return Value | HasMember | Variant - a weakness
that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource. | 415 | Double Free | HasMember | Variant - a weakness
that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource. | 416 | Use After Free | HasMember | Base - a weakness
that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 476 | NULL Pointer Dereference | HasMember | Variant - a weakness
that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource. | 528 | Exposure of Core Dump File to an Unauthorized Control Sphere | HasMember | Variant - a weakness
that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource. | 590 | Free of Memory not on the Heap | HasMember | Variant - a weakness
that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource. | 591 | Sensitive Data Storage in Improperly Locked Memory | HasMember | Base - a weakness
that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 628 | Function Call with Incorrectly Specified Arguments | HasMember | Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource. | 665 | Improper Initialization | HasMember | Variant - a weakness
that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource. | 687 | Function Call With Incorrectly Specified Argument Value | HasMember | Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource. | 754 | Improper Check for Unusual or Exceptional Conditions |
Vulnerability Mapping Notes Usage: PROHIBITED (this CWE ID must not be used to map to real-world vulnerabilities) | Reason: Category | Rationale: This entry is a Category. Using categories for mapping has been discouraged since 2019. Categories are informal organizational groupings of weaknesses that can help CWE users with data aggregation, navigation, and browsing. However, they are not weaknesses in themselves. | Comments: See member weaknesses of this category. |
Notes Relationship
In the 2008 version of the CERT C Secure Coding standard, the following rules were mapped to the following CWE IDs:
- CWE-20 MEM10-C Define and use a pointer validation function
- CWE-119 MEM09-C Do not assume memory allocation routines initialize memory
- CWE-128 MEM07-C Ensure that the arguments to calloc(), when multiplied, can be represented as a size_t
- CWE-131 MEM35-C Allocate sufficient memory for an object
- CWE-190 MEM07-C Ensure that the arguments to calloc(), when multiplied, can be represented as a size_t
- CWE-190 MEM35-C Allocate sufficient memory for an object
- CWE-226 MEM03-C Clear sensitive information stored in reusable resources returned for reuse
- CWE-244 MEM03-C Clear sensitive information stored in reusable resources returned for reuse
- CWE-252 MEM32-C Detect and handle memory allocation errors
- CWE-415 MEM00-C Allocate and free memory in the same module, at the same level of abstraction
- CWE-415 MEM01-C Store a new value in pointers immediately after free()
- CWE-415 MEM31-C Free dynamically allocated memory exactly once
- CWE-416 MEM00-C Allocate and free memory in the same module, at the same level of abstraction
- CWE-416 MEM01-C Store a new value in pointers immediately after free()
- CWE-416 MEM30-C Do not access freed memory
- CWE-476 MEM32-C Detect and handle memory allocation errors
- CWE-528 MEM06-C Ensure that sensitive data is not written out to disk
- CWE-590 MEM34-C Only free memory allocated dynamically
- CWE-591 MEM06-C Ensure that sensitive data is not written out to disk
- CWE-628 MEM08-C Use realloc() only to resize dynamically allocated arrays
- CWE-665 MEM09-C Do not assume memory allocation routines initialize memory
- CWE-687 MEM04-C Do not perform zero length allocations
- CWE-754 MEM32-C Detect and handle memory allocation errors
References
[REF-597] Robert C. Seacord. "The CERT C Secure Coding Standard". 1st Edition. Addison-Wesley Professional. 2008-10-14.
|
More information is available — Please edit the custom filter or select a different filter.
|