CyberGlossary

Уязвимости

Переполнение кучи

Также известно как: Heap buffer overflow

Определение

Переполнение буфера в динамически выделенной памяти, часто повреждающее метаданные аллокатора, указатели функций или виртуальные таблицы объектов.

Переполнение кучи происходит, когда запись выходит за пределы буфера, выделенного на куче, повреждая соседние чанки или метаданные аллокатора (malloc/free, jemalloc, mimalloc и др.). Поскольку раскладка кучи недетерминирована, эксплуатация использует heap grooming или «feng shui», чтобы расположить полезные цели рядом с уязвимым буфером — указатели функций, vtable, блоки управления умных указателей или критическое состояние. Современные аллокаторы укрепляют метаданные, изолируют чанки и добавляют guard-страницы; ASLR, CFI, песочницы и memory-safe языки снижают ущерб. Переполнения кучи играют ключевую роль в эксплуатации браузеров, ядер и парсеров документов, регулярно встречаясь среди победителей Pwn2Own.

Примеры

  • CVE-2018-4407: переполнение кучи в TCP-стеке ядра XNU.
  • Многочисленные переполнения кучи в JS-движке Chrome, эксплуатировавшиеся на Pwn2Own.

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