CyberGlossary

漏洞

内存泄漏

别称: 资源泄漏

定义

已无需使用的内存未归还给分配器,逐步耗尽可用内存,导致系统性能下降甚至崩溃的缺陷。

内存泄漏(CWE-401)是指程序分配内存后丢失了对它的所有引用却未释放。随着时间推移,进程工作集不断变大,性能下降,交换分区被反复读写,最终操作系统会杀掉该进程或不再接收新的工作。多数泄漏属于可靠性问题,但也可能演变为安全问题:暴露给攻击者可控触发条件的长期服务会成为放大型 DoS 工具。内存泄漏不仅包括堆内存,也涵盖未释放的内核对象、文件描述符、套接字或 GPU 资源。常见防御措施包括性能分析(Valgrind、ASan/LSan、heaptrack)、严格的所有权(RAII、智能指针)、持续的压力测试以及语言级垃圾回收。密码学语境中的"内存泄漏"(暴露内存内容)更准确的说法是信息泄露。

示例

  • 长期运行的 Web 服务器,每次请求的分配都不被释放。
  • 忘记释放 skb 缓冲区的内核模块导致系统内存耗尽。

相关术语