Переполнение буфера в стеке
Stack-based Buffer Overflow
CWE-121 — переполнение буфера в стеке: запись за границу локального массива. Ошибка возникает в коде на C и C++, где данные неизвестной длины копируются в локальный массив функции: разбор пакета из сети или вызов sprintf. Перезапись адреса возврата и соседних переменных позволяет злоумышленнику выполнить свой код или обрушить процесс.
Как защититься от CWE-121
Чтобы защититься от CWE-121, проверяйте границы и длину входных данных перед записью в локальный массив функции. Не вызывайте опасные функции вроде gets, используйте аналоги с проверкой границ, а рискованные вызовы скройте за слоем абстракции. Собирайте программу с флагом /GS или FORTIFY_SOURCE: компилятор добавит стековую канарейку и проверку диапазона.
Уязвимости с типом CWE-121 (50)
Отслеживайте уязвимости автоматически
КиберОснова SGRC: учёт уязвимостей CWE-121 и других типов из БДУ ФСТЭК, задачи на устранение с плановым сроком.

