Аргумент размера данных не вычисляется из фактической длины данных
Этот дефект возникает, когда вы не проверяете аргумент длины и аргумент буфера данных функций копирования памяти, таких как memcpy
, memset
, или memmove
, для защиты от переполнения буфера.
Если атакующий может манипулировать буфером данных или аргументом length, атакующий может вызвать переполнение буфера, сделав фактический размер данных меньше длины.
Это несоответствие по длине позволяет атакующему скопировать память за буфер данных в новое место. Если дополнительная память содержит конфиденциальную информацию, атакующий теперь может получить доступ к этим данным.
Этот дефект похож на ошибку SSL Heartbleed.
При копировании или манипулировании памятью вычислите аргумент длины непосредственно из данных так, чтобы размеры совпадали.
Группа: Безопасность |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки: DATA_LENGTH_MISMATCH |
Влияние: Средний |
ИДЕНТИФИКАТОР CWE: 130, 240 |