Материал подготовлен по официальному GitHub Changelog от 9 октября 2026 года. Ниже — русская адаптация основных изменений CodeQL 2.27.2 с пояснениями для разработчиков.
GitHub выпустил CodeQL 2.27.2 — новую версию статического анализатора, который лежит в основе GitHub code scanning.
Релиз заметно расширяет анализ C/C++, Go, Rust и JavaScript/TypeScript, а также меняет часть внутренних API для Go queries. Есть и важное ограничение для compiled languages на новых версиях macOS и Xcode.
Сколько security queries запускает CodeQL
В стандартном наборе CodeQL Default suite сейчас 498 security queries, которые покрывают 170 CWE.
Extended suite добавляет ещё 131 query и охватывает дополнительно 32 CWE.
Это не означает, что любой проект автоматически защищён от всех этих классов ошибок. CodeQL анализирует data flow, control flow, framework models и известные опасные sinks, а качество результата зависит от того, насколько точно анализатор понимает конкретный стек.
C++ получил разбор std::regex
CodeQL теперь умеет разбирать regular expressions, которые используют ECMAScript grammar в std::regex.
Это позволяет queries понимать структуру регулярного выражения, а не видеть его только как обычную строку.
В C/C++ также добавлены:
- SQL-injection sink models для Comdb2 C API;
- flow summaries для Bloomberg BDE codecs;
- flow summaries для byte-stream deserializers.
Такие модели важны для data-flow анализа: CodeQL должен знать, какие аргументы функции являются источниками, преобразованиями или потенциально опасными точками.
Go: поддержка нового websocket import path
Для Go CodeQL теперь моделирует github.com/coder/websocket в дополнение к старому import path nhooyr.io/websocket.
Это особенно полезно после миграций библиотеки, когда код приложения уже использует новый namespace, а security analyzer должен продолжать понимать те же сетевые потоки данных.
Rust: улучшен async data flow
В Rust extractor появились классы AnyAttr и DocComment.
Кроме того, GitHub улучшил data flow для async blocks, используемых вместе с await.
Добавлены flow summaries для:
native-tls;async-native-tls;tokio-native-tls.
Для Rust-проектов это означает более точное понимание цепочек данных в асинхронном коде и библиотеках TLS.
JavaScript и TypeScript: Workflow SDK и Hapi
CodeQL 2.27.2 теперь распознаёт директивы Workflow SDK:
"use workflow"
"use step"
Также улучшено отслеживание Hapi route handlers и request input через собственные helpers регистрации маршрутов и higher-order functions.
Это типичная проблема static analysis: приложение может не объявлять route напрямую в стандартном API, а оборачивать регистрацию в собственные функции. Без модели анализатор теряет часть data flow.
Что делает CodeQL при анализе
- ExtractorСтроит модель исходного кода и его структуры
- Control flowОпределяет возможные пути выполнения
- Data flowОтслеживает движение данных между функциями и библиотеками
- Security queriesИщут опасные комбинации sources, transforms и sinks
- SARIFFindings попадают в code scanning и инструменты CI
Важное ограничение для macOS 27 и Xcode 27
С выходом macOS 27 и Xcode 27 Apple перестала поставлять multi-architecture x86-64/arm64 binaries, которые CodeQL использует для traced analysis compiled languages.
Из-за этого CodeQL autobuild и manual build modes не поддерживаются для compiled languages:
- на macOS 27 с любой версией Xcode;
- на macOS 26, если выбран Xcode 27.
GitHub рекомендует для этих режимов использовать максимум macOS 26 + Xcode 26.
Одновременно команда работает над улучшением build-mode: none на macOS, чтобы уменьшить влияние этого ограничения.
Изменения C# queries
В C# query для missing X-Frame-Options теперь корректнее учитывает современные защиты от clickjacking.
В частности, CodeQL распознаёт ASP.NET Core response headers и директиву CSP frame-ancestors.
Также query для XSS больше не считает значения Razor tag-helper attributes, записанные через WriteLiteral, XSS sinks.
Это должно уменьшить ложные срабатывания.
GitHub Actions: можно исключить trusted owner
Query actions/unpinned-tag получила возможность удалять owner из trusted set через prefix !.
Например:
!github
Так можно заставить CodeQL сигнализировать о незакреплённых action tags даже для owner, который раньше считался доверенным.
CodeQL CLI теперь понятнее сообщает об ошибках
В CLI улучшена обработка неверных значений в query suites.
Некорректные qlpack: и from: теперь дают понятную ошибку вместо crash.
Также:
- слишком большие integers в YAML data extensions теперь отклоняются вместо тихого truncation;
- stderr messages получают prefixes
ERROR:иWARNING:; codeql query compileподдерживает--dil-constantsвместе с--dump-dil.
Go CFG изменился — custom queries могут потребовать правок
Самое заметное compatibility-изменение касается Go control-flow graph.
Теперь Go использует общий CFG library CodeQL. В graph появляются дополнительные nodes для assignments, parameters, results, range statements и deferred calls.
Одновременно исключаются nodes, которые недостижимы от entry point.
Из-за этого меняются:
- nodes и edges;
- locations;
- textual representation;
- basic-block boundaries.
Если команда поддерживает собственные CodeQL queries, которые напрямую зависят от старой структуры Go CFG, их стоит проверить после обновления.
Что поменялось в API Go queries
GitHub перечисляет несколько изменений:
- удалён
BasicBlocks::Cfg; - добавлены
ControlFlow::EntryNodeиControlFlow::ExitNode; - добавлен
SwitchStmt.getExpr; IfStmt.getConddeprecated в пользуIfStmt.getCondition;- изменены return types у части методов statements;
- объединены несколько IR instruction classes.
Нужно ли обновлять CodeQL вручную
Для GitHub code scanning на github.com новые версии CodeQL GitHub разворачивает автоматически.
Будущий релиз GitHub Enterprise Server также получит CodeQL 2.27.2.
Если используется более старая версия GHES или локальный CodeQL CLI, обновление может потребоваться вручную.
Что проверить в CI
Короткий чек-лист
- Используются ли собственные CodeQL queries для Go.
- Не зависит ли build от macOS 27 или Xcode 27.
- Нужно ли перейти на другой runner для compiled languages.
- Используются ли Hapi, websocket или новые Rust TLS libraries.
- Не появились ли новые warnings после обновления query packs.
- Корректно ли загружается SARIF в GitHub code scanning.
Практический вывод
CodeQL 2.27.2 — не косметический релиз. Он расширяет понимание популярных библиотек и языковых конструкций, а для Go меняет часть фундаментальной CFG-модели.
Для большинства пользователей GitHub code scanning обновление пройдёт автоматически. Но команды с custom queries и macOS runners стоит проверить отдельно.
Из других свежих security-изменений GitHub можно посмотреть материал про AI-поиск утечек секретов и новые детекторы Secret Scanning. Для CI/CD — автоматизация GitHub Actions.
Официальный источник
GitHub Changelog — CodeQL 2.27.2 improves C++, Go, Rust, and JavaScript analysis
Обсуждение
Вопросы и комментарии
Можно уточнить детали статьи или поделиться своим опытом. Первый комментарий проходит проверку.