CodeQL содержит множество запросов для анализа кода C и C++. Все запросы в наборе default запросов выполняются по умолчанию. Если вы решили использовать security-extended набор запросов, выполняются дополнительные запросы. Дополнительные сведения см. в разделе Наборы запросов CodeQL.
Встроенные запросы для анализа C и C++
В этой таблице перечислены запросы, доступные в последнем выпуске действия CodeQL и CodeQL CLI. Дополнительные сведения см. в разделе CodeQL журналов изменений на сайте документации CodeQL документации.
| Имя запроса | Связанные CWEs | По умолчанию. | Расширенное | Автофикс второго пилота |
|---|---|---|---|---|
| Недопустимая проверка переполнения целочисленного дополнения | 190, 192 | |||
| Плохо привязанная запись | 120, 787, 805 | |||
| [ |
`memset` Вызов может быть удален](https://codeql.github.com/codeql-query-help/cpp/cpp-memset-may-be-deleted/) | 014 | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> |
| Вызов alloca в цикле | 770 | | | | | Вызов функции с меньшим количеством аргументов, чем объявленные параметры | 234, 685 | | | | | Приведение между HRESULT и логическим типом | 253 | | | | | Приведение от char* к wchar_t* | 704 | | | | | Скрипт CGI уязвим для межсайтовых сценариев | 079 | | | | | Хранилище конфиденциальной информации в файле с помощью Cleartext | 260, 313 | | | | | Передача конфиденциальной информации cleartext | 319, 359 | | | | | Сравнение узкого типа с широким типом в условии цикла | 190, 197, 835 | | | | | Опасное использование "cin" | 676 | | | | | Воздействие системных данных на несанкционированную сферу управления | 497 | | | | | Сбой использования URL-адресов HTTPS | 319, 345 | | | | | Файл открыт с флагом O_CREAT, но без аргумента режима | 732 | | | | | Неправильная проверка возвращаемого значения для функции "scanf", например | 253 | | | | | Итератор для контейнера с истекшим сроком действия | 416, 664 | | | | | Вероятно, переполнение записи | 120, 787, 805 | | | | | Несоответствие новых или бесплатных или malloc/delete | 401 | | | | | Результат умножения, преобразованный в более крупный тип | 190, 192, 197, 681 | | | | | Нет места для нулевого конца | 131, 120, 122 | | | | | Проверка переполнения указателя | 758 | | | | | Потенциальный двойной бесплатный | 415 | | | | | Потенциальное использование после бесплатного использования | 416 | | | | | Потенциально переполненный вызов snprintf | 190, 253 | | | | | Потенциально небезопасный вызов strncat | 788, 676, 119, 251 | | | | | Избыточное значение NULL из-за предыдущей расшифровки | 476 | | | | | Возврат выделенной стека памяти | 825 | | | | | Задание DACL значение NULL в SECURITY_DESCRIPTOR | 732 | | | | | Проверка переполнения со знаком | 128, 190 | | | | | Доступ к статическим массивам может привести к переполнению | 119, 131 | | | | | Подозрительное добавление с помощью sizeof | 468 | | | | | Время проверки состояния гонки файловой системы | 367 | | | | | Слишком мало аргументов для функции форматирования | 234, 685 | | | | | Неконтролируемые данные в арифметическом выражении | 190, 191 | | | | | Неконтролируемые данные в SQL-запросе | 089 | | | | | Неконтролируемые данные, используемые в команде ОС | 078, 088 | | | | | Неконтролируемая строка формата | 134 | | | | | Небезопасное использование этого в конструкторе | 670 | | | | | Выражение разницы без знака по сравнению с нулем | 191 | | | | | Массив вверх, используемый в арифметике указателя | 119, 843 | | | | | Использование неисправного или рискованного алгоритма шифрования | 327 | | | | | Использование алгоритма шифрования с недостаточным размером ключа | 326 | | | | | Использование версии OpenSSL с Heartbleed | 327, 788 | | | | | Использование опасной функции | 242, 676 | | | | | Использование просроченного адреса стека | 825 | | | | | Использование строки после окончания времени существования | 416, 664 | | | | | Использование уникального указателя после окончания времени существования | 416, 664 | | | | | Неправильный тип аргументов для функции форматирования | 686 | | | | | Расширение внешней сущности XML | 611 | | | | | Смещение массива, используемое перед проверкой диапазона | 120, 125 | | | | | Обход проверки подлинности путем спуфингов | 290 | | | | | boost::asio настройки TLS неправильная настройка | 326 | | | | | boost::asio использование устаревшего жесткокодированного протокола | 327 | | | | | Вызов функции доступа к памяти может привести к переполнению буфера | 119, 121, 122, 126 | | | | | Сертификат не проверен | 295 | | | | | Конференц-связь с результатом сертификата | 295 | | | | | Хранилище конфиденциальной информации в базе данных SQLite | 313 | | | | | Хранилище конфиденциальной информации в буфере с помощью Cleartext | 312 | | | | | Запятая перед вводом в заблуждение отступов | 1078, 670 | | | | | Файл создан без ограничения разрешений | 732 | | | | | Неправильное использование оператора not | 480 | | | | | Неправильная обработка ошибок выделения | 570, 252, 755 | | | | | Недопустимая разыменовка указателя | 119, 125, 193, 787 | | | | | Отсутствует проверка возвращаемого значения для функции "scanf", например | 252, 253 | | | | | Строка формата без констант | 134 | | | | | Недостаточно памяти, выделенной для массива типа указателя | 131, 122 | | | | | Недостаточно памяти, выделенной для типа указателя | 131, 122 | | | | | Имя приложения NULL с незаквиченным путем при вызове CreateProcess | 428 | | | | | Переполнение записи | 119, 131 | | | | | Возможно, неправильный размер буфера в строковой копии | 676, 119, 251 | | | | | Потенциальное воздействие конфиденциальных системных данных на несанкционированную сферу управления | 497 | | | | | Потенциально переполнение записи | 120, 787, 805 | | | | | Потенциально перезавершивание записи с плавающей запятой в строковое преобразование | 120, 787, 805 | | | | | Потенциально неинициализированная локальная переменная | 665, 457 | | | | | Потенциально небезопасное использование strcat | 676, 120, 251 | | | | | Подозрительное использование sizeof | 467 | | | | | Подозрительное масштабирование указателя | 468 | | | | | Подозрительное масштабирование указателя на пустоту | 468 | | | | | Путаница типов | 843 | | | | | Необвязанная запись | 120, 787, 805 | | | | | Неконтролируемый размер выделения | 190, 789 | | | | | Неконтролируемые данные, используемые в выражении пути | 022, 023, 036, 073 | | | | | Неконтролируемая операция процесса | 114 | | | | | Нетерминированный вызов вариативного вызова | 121 | | | | | Ненадежные входные данные для условия | 807 | | | | | Использование потенциально опасной функции | 676 | | | |