到達可能なオブジェクト等の領域が、free()やデストラクタにより開放されることなく到達不可能になり、永久にメモリを消費し続ける一種のバグ。C++言語のようにGarbage Collectionのない言語で発生する。再現性が低く、テストもデバッグも極めて困難な悪質なバグとして有名である。
Garbage Collectionの存在する言語でも、REALbasicや一部のブラウザのJavaScriptのように実装方法が「参照カウンタ方式」である場合、循環参照によってメモリリークの発生する可能性がある。