exponenta event banner

Сопоставление между результатами CWE-658 или 659 и результатами Polyspace

CWE-658: Слабые места в программном обеспечении, написанном на языке C

CWE™-658 - это подмножество идентификаторов CWE, обнаруженных в программах C, которые не являются общими для всех языков. Смотрите CWE-658.

В следующей таблице перечислены идентификаторы CWE (версия 3.3) из этого подмножества, адресованные Finder™ Polyspace ® Bug, с соответствующими проверками дефектов.

ИДЕНТИФИКАТОР CWEОписание идентификатора CWEСредство проверки дефектов поиска ошибок Polyspace
119Неправильное ограничение операций в пределах буфера памяти

Array access out of bounds

Pointer access out of bounds

120Копия буфера без проверки размера входных данных («Classic buffer overflow»)

Invalid use of standard library memory routine

Invalid use of standard library string routine

Tainted NULL or non-null-terminated string

121Переполнение буфера на основе стека

Array access with tainted index

Destination buffer overflow in string manipulation

122Переполнение буфера на основе кучи

Pointer dereference with tainted offset

124Буферная подложка ('Buffer underflow')

Array access with tainted index

Buffer overflow from incorrect string format specifier

Destination buffer underflow in string manipulation

Pointer dereference with tainted offset

125Чтение вне границ

Array access with tainted index

Buffer overflow from incorrect string format specifier

Destination buffer overflow in string manipulation

126Переполнение буфера

Buffer overflow from incorrect string format specifier

127Недостаточно прочитанный буфер

Buffer overflow from incorrect string format specifier

128Ошибка свертки

Integer constant overflow

Integer conversion overflow

Integer overflow

Memory allocation with tainted size

Tainted sign change conversion

Tainted size of variable length array

Unsigned integer constant overflow

Unsigned integer conversion overflow

Unsigned integer overflow

129Неправильная проверка индекса массива

Array access with tainted index

Pointer dereference with tainted offset

130Неправильная обработка несогласованности параметров длины

Mismatch between data length and size

131Неверный расчет размера буфера

Array access out of bounds

Memory allocation with tainted size

Pointer access out of bounds

Tainted sign change conversion

Tainted size of variable length array

Unsigned integer conversion overflow

Unsigned integer overflow

134Неконтролируемая строка формата

Tainted string format

135Неверный расчет длины многобайтовой строки

Destination buffer overflow in string manipulation

Misuse of narrow or wide character string

Unreliable cast of pointer

170Неправильное завершение со значением NULL

Missing null in string array

Misuse of readlink()

Tainted NULL or non-null-terminated string

188Использование структуры данных/памяти

Invalid assumptions about memory organization

Memory comparison of padding data

Memory comparison of strings

Missing byte reordering when transferring data

Pointer access out of bounds

191Целочисленный недопоток (обтекание или обтекание)

Integer constant overflow

Integer conversion overflow

Integer overflow

Unsigned integer constant overflow

Unsigned integer conversion overflow

Unsigned integer overflow

192Ошибка целочисленного принуждения

Integer conversion overflow

Integer overflow

Sign change integer conversion overflow

Tainted sign change conversion

Unsigned integer conversion overflow

Unsigned integer overflow

194Непредвиденное расширение знака

Sign change integer conversion overflow

Tainted sign change conversion

195Подпись на неподписанную ошибку преобразования

Sign change integer conversion overflow

Tainted sign change conversion

196Ошибка преобразования без подписи

Sign change integer conversion overflow

197Ошибка числового усечения

Float conversion overflow

Integer conversion overflow

Unsigned integer conversion overflow

242Использование по своей сути опасной функции

Use of dangerous standard function

243Создание хроотной тюрьмы без изменения рабочего каталога

File manipulation after chroot without chdir

244Неправильное удаление памяти кучи перед выпуском

Sensitive heap memory not cleared before release

362Одновременное выполнение с использованием общего ресурса с неправильной синхронизацией («Условие гонки»)

File descriptor exposure to child process

Opening previously opened resource

364Условие гонки обработчика сигнала

Function called from signal handler not asynchronous-safe (strict)

Function called from signal handler not asynchronous-safe

Shared data access within signal handler

366Условие гонки в потоке

Data race including atomic operations

Data race through standard library function call

Data race

375Возврат изменяемого объекта ненадежному вызывающему абоненту

Return of non const handle to encapsulated data member

401Неправильное освобождение памяти перед удалением последней ссылки

Memory leak

Thread-specific memory leak

415Двойной бесплатный

Deallocation of previously deallocated pointer

Missing reset of a freed pointer

416Использовать после бесплатного

Missing reset of a freed pointer

Use of previously freed pointer

457Использование неинициализированной переменной

Member not initialized in constructor

Non-initialized pointer

Non-initialized variable

466Возврат значения указателя за пределы ожидаемого диапазона

Array access out of bounds

Pointer access out of bounds

Unsafe conversion between pointer and integer

467Использование sizeof () для типа указателя

Possible misuse of sizeof

Wrong type used in sizeof

468Неправильное масштабирование указателя

Incorrect pointer scaling

469Использование вычитания указателя для определения размера

Subtraction or comparison between pointers to different arrays

474Использование функции с несогласованными реализациями

Signal call from within signal handler

Use of obsolete standard function

476Отмена привязки указателя NULL

Null pointer

Tainted NULL or non-null-terminated string

478Отсутствует вариант по умолчанию в инструкции switch

Missing case for switch condition

479Использование обработчиком сигнала непереходной функции

Function called from signal handler not asynchronous-safe (strict)

Function called from signal handler not asynchronous-safe

480Использование неверного оператора

Invalid use of = (assignment) operator

Invalid use of == (equality) operator

481Назначение вместо сравнения

Invalid use of = (assignment) operator

482Сравнение вместо назначения

Invalid use of == (equality) operator

483Неправильное разграничение блоков

Incorrectly indented statement

Semicolon on same line as if, for or while statement

484Пропущенная инструкция break в коммутаторе

Missing break of switch case

558Использование getlogin () в многопоточном приложении

Unsafe standard function

560Использование umask () с аргументом в стиле chmod

Umask used with chmod-style arguments

562Возврат адреса переменной стека

Pointer or reference to stack variable leaving scope

Use of automatic variable as putenv-family function argument

587Назначение фиксированного адреса указателю

Function pointer assigned with absolute address

Unsafe conversion between pointer and integer

676Использование потенциально опасной функции

Unsafe conversion from string to numerical value

Use of dangerous standard function

685Вызов функции с неверным количеством аргументов

Declaration mismatch

Format string specifiers and arguments mismatch

Standard function call with incorrect arguments

Too many va_arg calls for current argument list

690Отмененное возвращаемое значение для отмены привязки нулевого указателя

Invalid use of standard library memory routine

Invalid use of standard library routine

Invalid use of standard library string routine

Null pointer

Returned value of a sensitive function not checked

Standard function call with incorrect arguments

Tainted NULL or non-null-terminated string

Unprotected dynamic memory allocation

704Неверное преобразование типа или приведение

Character value absorbed into EOF

Misuse of sign-extended character value

Precision loss in integer to float conversion

Qualifier removed in conversion

Unreliable cast of pointer

Wrong allocated object size for cast

762Несоответствующие процедуры управления памятью

Invalid free of pointer

Mismatched alloc/dealloc functions on Windows

783Логическая ошибка приоритета оператора

Possibly unintended evaluation of expression because of operator precedence rules

785Использование функции манипуляции трактом без буфера максимального размера

Use of path manipulation function without maximum sized buffer checking

787Внеплановая запись

Destination buffer overflow in string manipulation

Destination buffer underflow in string manipulation

789Неконтролируемое выделение памяти

Memory allocation with tainted size

Tainted size of variable length array

Unprotected dynamic memory allocation

805Доступ к буферу с неправильным значением длины

Hard-coded object size used to manipulate memory

843Доступ к ресурсу с использованием несовместимого типа (путаница типов)

Unreliable cast of pointer

910Использование дескриптора файла с истекшим сроком действия

Closing a previously closed resource

Standard function call with incorrect arguments

Use of previously closed resource

CWE-659: Слабые места в программном обеспечении, написанном на C++

CWE-659 - это подмножество идентификаторов CWE, обнаруженных в программах C++, которые не являются общими для всех языков. Смотрите CWE-659.

В следующей таблице перечислены идентификаторы CWE (версия 3.3) из этого подмножества, адресованные Polyspace Bug Finder, с соответствующими им проверками дефектов.

ИДЕНТИФИКАТОР CWEОписание идентификатора CWEСредство проверки дефектов поиска ошибок Polyspace
119Неправильное ограничение операций в пределах буфера памяти

Array access out of bounds

Pointer access out of bounds

120Копия буфера без проверки размера входных данных («Classic buffer overflow»)

Invalid use of standard library memory routine

Invalid use of standard library string routine

Tainted NULL or non-null-terminated string

121Переполнение буфера на основе стека

Array access with tainted index

Destination buffer overflow in string manipulation

122Переполнение буфера на основе кучи

Pointer dereference with tainted offset

124Буферная подложка ('Buffer underflow')

Array access with tainted index

Buffer overflow from incorrect string format specifier

Destination buffer underflow in string manipulation

Pointer dereference with tainted offset

125Чтение вне границ

Array access with tainted index

Buffer overflow from incorrect string format specifier

Destination buffer overflow in string manipulation

126Переполнение буфера

Buffer overflow from incorrect string format specifier

127Недостаточно прочитанный буфер

Buffer overflow from incorrect string format specifier

128Ошибка свертки

Integer constant overflow

Integer conversion overflow

Integer overflow

Memory allocation with tainted size

Tainted sign change conversion

Tainted size of variable length array

Unsigned integer constant overflow

Unsigned integer conversion overflow

Unsigned integer overflow

129Неправильная проверка индекса массива

Array access with tainted index

Pointer dereference with tainted offset

130Неправильная обработка несогласованности параметров длины

Mismatch between data length and size

131Неверный расчет размера буфера

Array access out of bounds

Memory allocation with tainted size

Pointer access out of bounds

Tainted sign change conversion

Tainted size of variable length array

Unsigned integer conversion overflow

Unsigned integer overflow

134Неконтролируемая строка формата

Tainted string format

135Неверный расчет длины многобайтовой строки

Destination buffer overflow in string manipulation

Misuse of narrow or wide character string

Unreliable cast of pointer

170Неправильное завершение со значением NULL

Missing null in string array

Misuse of readlink()

Tainted NULL or non-null-terminated string

188Использование структуры данных/памяти

Invalid assumptions about memory organization

Memory comparison of padding data

Memory comparison of strings

Missing byte reordering when transferring data

Pointer access out of bounds

191Целочисленный недопоток (обтекание или обтекание)

Integer constant overflow

Integer conversion overflow

Integer overflow

Unsigned integer constant overflow

Unsigned integer conversion overflow

Unsigned integer overflow

192Ошибка целочисленного принуждения

Integer conversion overflow

Integer overflow

Sign change integer conversion overflow

Tainted sign change conversion

Unsigned integer conversion overflow

Unsigned integer overflow

194Непредвиденное расширение знака

Sign change integer conversion overflow

Tainted sign change conversion

195Подпись на неподписанную ошибку преобразования

Sign change integer conversion overflow

Tainted sign change conversion

196Ошибка преобразования без подписи

Sign change integer conversion overflow

197Ошибка числового усечения

Float conversion overflow

Integer conversion overflow

Unsigned integer conversion overflow

242Использование по своей сути опасной функции

Use of dangerous standard function

243Создание хроотной тюрьмы без изменения рабочего каталога

File manipulation after chroot without chdir

244Неправильное удаление памяти кучи перед выпуском

Sensitive heap memory not cleared before release

362Одновременное выполнение с использованием общего ресурса с неправильной синхронизацией («Условие гонки»)

File descriptor exposure to child process

Opening previously opened resource

364Условие гонки обработчика сигнала

Function called from signal handler not asynchronous-safe (strict)

Function called from signal handler not asynchronous-safe

Shared data access within signal handler

366Условие гонки в потоке

Data race including atomic operations

Data race through standard library function call

Data race

375Возврат изменяемого объекта ненадежному вызывающему абоненту

Return of non const handle to encapsulated data member

401Неправильное освобождение памяти перед удалением последней ссылки

Memory leak

Thread-specific memory leak

415Двойной бесплатный

Deallocation of previously deallocated pointer

Missing reset of a freed pointer

416Использовать после бесплатного

Missing reset of a freed pointer

Use of previously freed pointer

457Использование неинициализированной переменной

Member not initialized in constructor

Non-initialized pointer

Non-initialized variable

466Возврат значения указателя за пределы ожидаемого диапазона

Array access out of bounds

Pointer access out of bounds

Unsafe conversion between pointer and integer

467Использование sizeof () для типа указателя

Possible misuse of sizeof

Wrong type used in sizeof

468Неправильное масштабирование указателя

Incorrect pointer scaling

469Использование вычитания указателя для определения размера

Subtraction or comparison between pointers to different arrays

476Отмена привязки указателя NULL

Null pointer

Tainted NULL or non-null-terminated string

478Отсутствует вариант по умолчанию в инструкции switch

Missing case for switch condition

479Использование обработчиком сигнала непереходной функции

Function called from signal handler not asynchronous-safe (strict)

Function called from signal handler not asynchronous-safe

480Использование неверного оператора

Invalid use of = (assignment) operator

Invalid use of == (equality) operator

481Назначение вместо сравнения

Invalid use of = (assignment) operator

482Сравнение вместо назначения

Invalid use of == (equality) operator

483Неправильное разграничение блоков

Incorrectly indented statement

Semicolon on same line as if, for or while statement

484Пропущенная инструкция break в коммутаторе

Missing break of switch case

558Использование getlogin () в многопоточном приложении

Unsafe standard function

562Возврат адреса переменной стека

Pointer or reference to stack variable leaving scope

Use of automatic variable as putenv-family function argument

587Назначение фиксированного адреса указателю

Function pointer assigned with absolute address

Unsafe conversion between pointer and integer

676Использование потенциально опасной функции

Unsafe conversion from string to numerical value

Use of dangerous standard function

690Отмененное возвращаемое значение для отмены привязки нулевого указателя

Invalid use of standard library memory routine

Invalid use of standard library routine

Invalid use of standard library string routine

Null pointer

Returned value of a sensitive function not checked

Standard function call with incorrect arguments

Tainted NULL or non-null-terminated string

Unprotected dynamic memory allocation

704Неверное преобразование типа или приведение

Character value absorbed into EOF

Misuse of sign-extended character value

Precision loss in integer to float conversion

Qualifier removed in conversion

Unreliable cast of pointer

Wrong allocated object size for cast

762Несоответствующие процедуры управления памятью

Invalid free of pointer

Mismatched alloc/dealloc functions on Windows

767Доступ к критической частной переменной с помощью общедоступного метода

Return of non const handle to encapsulated data member

783Логическая ошибка приоритета оператора

Possibly unintended evaluation of expression because of operator precedence rules

785Использование функции манипуляции трактом без буфера максимального размера

Use of path manipulation function without maximum sized buffer checking

787Внеплановая запись

Destination buffer overflow in string manipulation

Destination buffer underflow in string manipulation

789Неконтролируемое выделение памяти

Memory allocation with tainted size

Tainted size of variable length array

Unprotected dynamic memory allocation

805Доступ к буферу с неправильным значением длины

Hard-coded object size used to manipulate memory

843Доступ к ресурсу с использованием несовместимого типа (путаница типов)

Unreliable cast of pointer

910Использование дескриптора файла с истекшим сроком действия

Closing a previously closed resource

Standard function call with incorrect arguments

Use of previously closed resource

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