Katalog CWE

CWE-401 · Słabość

Missing Release of Memory after Effective Lifetime

Abstrakcja
Wariant
Status
Szkic
Ryzyko wykorzystania
średnie
Dodano
19 lipca 2006
Ostatnia zmiana
30 kwietnia 2026

Podatności CVE z tą słabościąPełny wpis na cwe.mitre.org ↗

Opis

The product does not sufficiently track and release allocated memory after it has been used, making the memory unavailable for reallocation and reuse.

Inne nazwy

Memory Leak
a common term for not releasing memory; however, the same term is also used for "disclosure of sensitive information from memory," so use of this term is discouraged.

Skutki

  • Availability

    DoS: Crash, Exit, or Restart; DoS: Instability; DoS: Resource Consumption (CPU); DoS: Resource Consumption (Memory)

    Most memory leaks result in general product reliability problems, but if an attacker can intentionally trigger a memory leak, the attacker might be able to launch a denial of service attack (by crashing or hanging the program) or take advantage of other unexpected program behavior resulting from a low memory condition.

  • Other

    Reduce Performance

Zapobieganie

  • Implementation · Libraries or Frameworks

    Choose a language or tool that provides automatic memory management, or makes manual memory management less error-prone.

    For example, glibc in Linux provides protection against free of invalid pointers.

    When using Xcode to target OS X or iOS, enable automatic reference counting (ARC) [REF-391].

    To help correctly and consistently manage memory when programming in C++, consider using a smart pointer class such as std::auto_ptr (defined by ISO/IEC ISO/IEC 14882:2003), std::shared_ptr and std::unique_ptr (specified by an upcoming revision of the C++ standard, informally referred to as C++ 1x), or equivalent solutions such as Boost.

  • Architecture and Design

    Use an abstraction library to abstract away risky APIs. Not a complete solution.

  • Architecture and Design, Build and Compilation

    Consider using the Boehm-Demers-Weiser garbage collector (bdwgc), which can help avoid leaks.

    Skuteczność: Moderate

Przykłady podatności

Słabość nadrzędna

Kiedy powstaje

Dotyczy

Not Language-Specific, C, C++

Uwagi

This is often a resultant weakness due to improper handling of malformed data or early termination of sessions.

"memory leak" has sometimes been used to describe other kinds of issues, e.g. for information leaks in which the contents of memory are inadvertently leaked (CVE-2003-0400 is one such example of this terminology conflict).

Źródła

  1. The CLASP Application Security Process — Secure Software, Inc., 2005
  2. How to Break Software Security — J. Whittaker, H. Thompson, Addison Wesley, 2003
  3. Transitioning to ARC Release Notes — iOS Developer Library, 2013
  4. Automated Source Code Performance Efficiency Measure (ASCPEM) — Object Management Group (OMG), ASCPEM-PRF-14, 2016
  5. AddressSanitizer
  6. Valgrind

Wpis z katalogu CWE 4.20.