Двойное освобождение памяти
Double Free
CWE-415 — двойное освобождение памяти: один и тот же блок освобождается повторно. Ошибка типична для C и C++ при обработке отказов, когда блок освобождается в функции, а затем повторно в блоке очистки или в деструкторе объекта. Злоумышленник провоцирует повторное освобождение, чтобы повредить кучу процесса и получить выполнение произвольного кода.
Как защититься от CWE-415
Чтобы защититься от CWE-415, выбирайте язык с автоматическим управлением памятью, а в ручном режиме освобождайте каждое выделение только один раз и сразу присваивайте указателю NULL, чтобы исключить повторный вызов free(). Процедуры очистки должны учитывать состояние выделения, особенно в ветвях с ошибками, а статический анализ кода включайте в проверку сборки, чтобы находить двойные освобождения до выпуска.
Уязвимости с типом CWE-415 (50)
Отслеживайте уязвимости автоматически
КиберОснова SGRC: учёт уязвимостей CWE-415 и других типов из БДУ ФСТЭК, задачи на устранение с плановым сроком.

