CWE-825
Expired Pointer Dereference
AI Translation Available
The product dereferences a pointer that contains a location for memory that was previously valid, but is no longer valid.
Status
incomplete
Abstraction
base
Affected Platforms
C
C++
Memory-Unsafe
Extended Description
AI Translation
When a product releases memory, but it maintains a pointer to that memory, then the memory might be re-allocated at a later time. If the original pointer is accessed to read or write data, then this could cause the product to read or modify data that is in use by a different function or process. Depending on how the newly-allocated memory is used, this could lead to a denial of service, information exposure, or code execution.
Technical Details
AI Translation
Common Consequences
confidentiality
availability
integrity
Impacts
read memory
dos: crash, exit, or restart
execute unauthorized code or commands
Detection Methods
automated static analysis
automated dynamic analysis
Potential Mitigations
Phases:
architecture and design
implementation
Descriptions:
•
Choose a language that provides automatic memory management.
•
When freeing pointers, be sure to set them to NULL once they are freed. However, the utilization of multiple or complex data structures may lower the usefulness of this strategy.
Functional Areas
memory management