Значение из незащищенного знака изменения источника
Этот дефект возникает, когда значения из небезопасных источников преобразуются неявно или явно из подписанных в неподписанные значения.
Например, функции, которые используют size_t в качестве аргументов неявно преобразуют аргумент в целое число без знака. Некоторые функции, которые неявно преобразуются size_t являются:
bcmp memcpy memmove strncmp strncpy calloc malloc memalign
-consider-analysis-perimeter-as-trust-boundary.Если преобразовать малое отрицательное число в беззнаковое, результатом будет большое положительное число. Большое положительное число может создавать уязвимости безопасности. Например, если используется неподписанное значение в:
Подпрограммы по размеру памяти - вызывают проблемы с выделением памяти.
Процедуры обработки строк - вызывает переполнение буфера.
Контурные границы - вызывает бесконечные контуры.
Чтобы избежать преобразования неподписанных отрицательных значений, убедитесь, что преобразуемое значение находится в допустимом диапазоне. Например, если значение представляет размер, убедитесь, что значение не является отрицательным и меньше максимального размера значения.
| Группа: Запятнанные данные |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки: TAINTED_SIGN_CHANGE |
| Воздействие: среднее |
| CWE ID: 128, 131, 192, 194, 195 |
-consider-analysis-perimeter-as-trust-boundary | Find defects (-checkers) | Sign change integer conversion overflow