CWE-826 – Premature Release of Resource During Expected Lifetime

Read Time:1 Minute, 9 Second

Description

The program releases a resource that is still intended to be used by the program itself or another actor.

Modes of Introduction:

Likelihood of Exploit:

 

Related Weaknesses

CWE-666
CWE-672

 

Consequences

Confidentiality: Read Application Data, Read Memory

If the released resource is subsequently reused or reallocated, then a read operation on the original resource might access sensitive data that is associated with a different user or entity.

Availability: DoS: Crash, Exit, or Restart

When the resource is released, the software might modify some of its structure, or close associated channels (such as a file descriptor). When the software later accesses the resource as if it is valid, the resource might not be in an expected state, leading to resultant errors that may lead to a crash.

Integrity, Confidentiality, Availability: Execute Unauthorized Code or Commands, Modify Application Data, Modify Memory

When the resource is released, the software might modify some of its structure. This might affect program logic in the sections of code that still assume the resource is active. If the released resource is related to memory and is used in a function call, or points to unexpected data in a write operation, then code execution may be possible upon subsequent accesses.

 

Potential Mitigations

CVE References

 

  • CVE-2009-3547
    • chain: race condition might allow resource to be released before operating on it, leading to NULL dereference