CyberGlossary

Уязвимости

Утечка памяти

Также известно как: Утечка ресурсов

Определение

Дефект, при котором уже не нужная память не возвращается аллокатору, постепенно исчерпывая ресурсы и снижая производительность системы вплоть до её отказа.

Утечка памяти (CWE-401) возникает, когда программа выделяет память и теряет все ссылки на неё, не освобождая. Со временем рабочий набор процесса растёт, производительность падает, swap начинает «трэшить», и в итоге ОС завершает процесс или перестаёт принимать работу. Большинство утечек — вопрос надёжности, но они могут стать проблемой безопасности: долгоживущие сервисы с управляемыми атакующим триггерами становятся усилителями DoS. Утечки касаются не только кучи, но и нераскрытых объектов ядра, дескрипторов, сокетов или GPU-ресурсов. Защита — профилирование (Valgrind, ASan/LSan, heaptrack), дисциплина владения (RAII, smart pointers), постоянные нагрузочные тесты и языковая сборка мусора. «Утечкой памяти» в криптографическом смысле (раскрытие содержимого памяти) точнее называть утечкой информации.

Примеры

  • Долгоживущий веб-сервер, у которого выделения «на запрос» никогда не освобождаются.
  • Модуль ядра, забывающий освобождать skb-буферы и истощающий память системы.

Связанные термины