GitHub рассказал об изменениях CodeQL 2.27.2 9 октября 2026 года

Концептуальная иллюстрация анализа исходного кода: лупа, связи данных и защитный щит
Иллюстрация, созданная с помощью ИИ. Не документальное изображение.

9 октября 2026 года GitHub опубликовал обзор изменений CodeQL 2.27.2 — инструмента для поиска ошибок безопасности в исходном коде. Компания описала улучшения анализа нескольких языков и ограничения для новых версий macOS и Xcode. Даты здесь различаются: сообщение GitHub вышло 9 октября, а в журнале самого CodeQL выпуск обозначен датой 7 октября 2026 года.

Что GitHub сообщил 9 октября

В официальном сообщении перечислены изменения для C++, Go, Rust и JavaScript. Для C++ появился разбор регулярных выражений с грамматикой ECMAScript в std::regex. В Rust улучшено отслеживание данных в асинхронных блоках с await. Для JavaScript и TypeScript анализатор распознаёт директивы Workflow SDK «use workflow» и «use step».

Отдельное предупреждение касается сборки на компьютерах Apple. По информации GitHub, режимы autobuild и manual для компилируемых языков не поддерживаются на macOS 27 с любой версией Xcode, а также на macOS 26 при выбранном Xcode 27. Для этих режимов компания указывает сочетание версий не новее macOS 26 и Xcode 26. Поддержку режима none на macOS планируют улучшать.

Изменения, важные для собственных проверок

Журнал версии 2.27.2 от 7 октября подробно описывает переработку графа потока управления Go. Реализация перешла на общую библиотеку CFG. Добавлены узлы для присваиваний, параметров и результатов функций, range и отложенных вызовов; недостижимые от точки входа узлы исключены.

Это изменение может потребовать правок пользовательских запросов, которые опираются на прежние узлы, рёбра или границы базовых блоков. В частности, удалён BasicBlocks::Cfg, а вместо устаревшего IfStmt.getCond предлагается IfStmt.getCondition. Поэтому наличие собственных правил анализа Go — повод проверить их совместимость перед обновлением рабочего процесса.

Есть и исправления повседневной диагностики. Некорректные значения qlpack: и from: теперь дают понятную ошибку вместо аварийного завершения. Сообщения в стандартном потоке ошибок получили префиксы ERROR: и WARNING:, тогда как структурированные журналы и SARIF сохранили прежний формат. Для C# исправлено ложное срабатывание проверки XSS в определённом сценарии Razor с WriteLiteral.

Как CodeQL ищет проблемы

Согласно документации CodeQL, анализ состоит из подготовки базы данных по исходному коду, выполнения запросов и интерпретации результатов. Запрос описывает искомую закономерность, а инструмент показывает потенциально проблемные места. Такой подход позволяет искать похожие варианты уже известной ошибки сразу в нескольких кодовых базах.

База CodeQL представляет код конкретного языка в определённый момент времени и содержит сведения о его структуре и потоках данных. Пользовательские запросы пишутся на языке QL. Полученный результат может указывать на одну строку либо показывать последовательность участков кода, по которым проходит поток данных. Это объясняет, почему изменения внутренних моделей анализа важны не только разработчикам самого инструмента.

Что учитывать при внедрении

В руководстве GitHub Enterprise Server описаны два варианта запуска: через GitHub Actions и во внешней системе непрерывной интеграции. Для изолированного сервера предусмотрена синхронизация комплекта анализа специальным инструментом. Конкретный способ обновления зависит от конфигурации организации и доступности сети.

Практический вывод для команды — отдельно проверить окружение macOS, собственные запросы Go и обработку текстовых сообщений CLI. Обзор от 9 октября полезен как перечень этих изменений; он не меняет указанную в документации дату релиза 7 октября. Найденные анализатором предупреждения по-прежнему требуют разбора в контексте приложения.

Ссылка на основную публикацию