Перейти к содержимому
desing Дневник веб-инноваций и поиска
CodeQL 2.27.2

CodeQL 2.27.2 улучшил анализ C++, Go, Rust и JavaScript

GitHub обновил CodeQL — инструмент поиска уязвимостей в исходном коде. Версия 2.27.2 расширяет поддержку C++, Go, Rust и JavaScript, но разработчикам собственных проверок для Go стоит подготовиться к изменениям.

CodeQL лежит в основе GitHub code scanning. Он создаёт базу данных с представлением программы и выполняет запросы, которые выявляют потенциальные проблемы безопасности. Для разработки веб-приложений такие проверки дополняют тестирование логики, доступа и обработки данных.

В CodeQL 2.27.2 появился разбор регулярных выражений с грамматикой ECMAScript, используемых в C++ через std::regex. Для C/C++ также добавлены модели SQL-инъекций в Comdb2 C API и отслеживания данных через кодеки и десериализаторы Bloomberg BDE.

Для Go добавлена поддержка пути импорта github.com/coder/websocket. Более серьёзное изменение — переработанный граф потока управления, CFG: он подробнее представляет конструкции языка и исключает недостижимые узлы.

Собственные запросы CodeQL для Go могут потребовать адаптации, если они зависят от прежнего устройства графа. Например, IfStmt.getCond устарел в пользу IfStmt.getCondition.

В Rust улучшено отслеживание данных в асинхронных блоках с await и добавлены модели библиотек native-tls, async-native-tls и tokio-native-tls. В JavaScript/TypeScript анализатор распознаёт директивы Workflow SDK "use workflow" и "use step", а также лучше отслеживает входные данные в Hapi.

В C# уточнены проверки защиты от clickjacking и устранено ложное срабатывание XSS для некоторых атрибутов Razor. В GitHub Actions запись вроде !github позволяет исключить владельца из доверенного списка проверки незакреплённых тегов.

CLI понятнее сообщает об ошибках и проверяет диапазон целых чисел в YAML-расширениях данных. Структурированный вывод не изменился.

Есть ограничение для Apple: режимы autobuild и manual для компилируемых языков не поддерживаются на macOS 27 с любой версией Xcode, а также на macOS 26 с выбранным Xcode 27. Причина — отсутствие необходимых для отслеживания сборки многоархитектурных бинарных файлов.

Для этих режимов GitHub рекомендует совместимые версии не новее macOS 26 и Xcode 26. Поддержку режима none команда ещё улучшает, поэтому считать его готовой универсальной заменой нельзя.

GitHub автоматически развёртывает новые версии CodeQL для code scanning на github.com. В GitHub Enterprise Server обновление войдёт в будущий выпуск; для старых версий GHES предусмотрено ручное обновление анализатора.

Добавить комментарий