CodeQL 2.27.2 научился разбирать регулярки в C++ и улучшил анализ Go, Rust и JavaScript

Вышла новая версия CodeQL 2.27.2, инструмента статического анализа кода GitHub code scanning. Релиз добавляет парсер регулярных выражений ECMAScript-грамматики для C++ и обновляет поддержку Go, Rust, JavaScript и TypeScript. Default suite включает 498 запросов, покрывающих 170 CWE; Extended suite добавляет 131 запрос для 32 дополнительных CWE. • C++: парсер регулярок std::regex, SQL-injection модели Comdb2 C API • Rust и Go: поддержка native-tls, async-native-tls, tokio-native-tls, github.com/coder/websocket • JavaScript/TypeScript: директивы "use workflow" и "use step" Workflow SDK

AI-обработка оригинала GitHub Changelog; редакция Hamidun News
CodeQL 2.27.2 научился разбирать регулярки в C++ и улучшил анализ Go, Rust и JavaScript
Источник: GitHub Changelog. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникGitHub Changelog ↗
Главный редактор
C++парсер регулярок std::regex, SQL-injection модели Comdb2 C API
Rust и Goподдержка native-tls, async-native-tls, tokio-native-tls, github.com/coder/websocket
JavaScript/TypeScriptдирективы "use workflow" и "use step" Workflow SDK

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

Default suite теперь включает 498 запросов безопасности, охватывающих 170 типов уязвимостей (CWE). Extended suite добавляет 131 дополнительный запрос для 32 типов уязвимостей.

Расширенная поддержка языков

C/C++

Добавлен парсер регулярных выражений, использующих ECMAScript-грамматику в std::regex. Это расширяет возможности обнаруживать проблемы безопасности, связанные с обработкой регулярных выражений.

Для SQL-инъекций добавлены sink models Comdb2 C API. Улучшены flow summaries для Bloomberg BDE codecs и byte-stream deserializers, что повышает качество анализа потоков данных через популярные библиотеки.

Go

CodeQL теперь моделирует github.com/coder/websocket в дополнение к nhooyr.io/websocket, позволяя обнаруживать уязвимости в коде обоих вариантов WebSocket-библиотек.

Rust

Rust extractor добавил поддержку классов AnyAttr и DocComment, улучшив анализ атрибутов и документации.

Улучшена обработка async blocks с await, позволяя лучше отслеживать потоки данных в асинхронном коде. Добавлены flow summaries для native-tls, async-native-tls и tokio-native-tls.

JavaScript/TypeScript

CodeQL теперь распознаёт директивы Workflow SDK: "use workflow" и "use step".

Улучшено отслеживание Hapi route-handler и request-input через custom route-registration helpers и higher-order functions, помогая обнаруживать уязвимости web-приложений.

Критическое изменение: macOS 27 и Xcode 27

Apple прекратила распространение multi-architecture (x86-64/arm64) бинарных файлов, требуемых CodeQL для traced analysis. На macOS 27 (с любой версией Xcode) и macOS 26 (при Xcode 27) режимы autobuild и manual build будут недоступны для скомпилированных языков.

Рекомендация: используйте максимум macOS 26 и Xcode 26 для этих режимов. GitHub работает над улучшением build mode none на macOS.

Изменения в запросах и CLI

Query обновления (C# и GitHub Actions)

Query cs/web/missing-x-frame-options теперь распознаёт ASP.NET Core response headers и директивы Content Security Policy frame-ancestors как защиту от clickjacking.

Query cs/web/xss больше не трактует значения атрибутов Razor tag-helper с WriteLiteral как XSS sinks.

В actions/unpinned-tag query можно удалять owners из trusted set префиксом ! (например, !github), позволяя выявлять непривязанные теги first-party owners.

CodeQL CLI improvements

Интерфейс командной строки выводит четкие ошибки для неверных qlpack и from значений вместо crash'а.

YAML data-extension целые числа вне диапазона signed 32-bit отклоняются, а не молча обрезаются.

Сообщения об ошибках и предупреждениях на stderr получают префиксы ERROR: и WARNING:. Структурированный вывод (логи и SARIF) остаётся неизменным.

Команда codeql query compile теперь принимает --dil-constants с --dump-dil для включения оптимизированных constant tuples в излучаемый DIL.

Команды, загружающие data extensions, выводят предупреждение только когда ни один паттерн из dataExtensions list не совпадает с файлами.

Breaking change в Go library

Control-flow graph (CFG) для Go теперь использует shared CFG library, включающую дополнительные nodes для assignments, parameters, results, range statements и deferred calls. Исключены nodes, недостижимые из entry point.

Это влияет на nodes, edges, locations, текстовые представления и boundaries базовых блоков, поэтому queries, полагающиеся на старое представление, требуют обновления.

Конкретные изменения:

• Removed: BasicBlocks::Cfg • Added: ControlFlow::EntryNode, ControlFlow::ExitNode, SwitchStmt.getExpr • Deprecated: IfStmt.getCond → IfStmt.getCondition • Changed return types: IfStmt.getThen и LoopStmt.getBody теперь возвращают Stmt • Consolidated: несколько IR instruction classes

GitHub автоматически развёртывает новые версии CodeQL для github.com code scanning. Будущие релизы GitHub Enterprise Server (GHES) также включат функциональность CodeQL 2.27.2. Если используется более старая версия GHES, версию CodeQL можно обновить вручную.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: расширенная поддержка языков?

C/C++ Добавлен парсер регулярных выражений, использующих ECMAScript-грамматику в std::regex. Это расширяет возможности обнаруживать проблемы безопасности, связанные с обработкой регулярных выражений. Для SQL-инъекций добавлены sink models Comdb2 C API. Улучшены flow summaries для Bloomberg BDE codecs и byte-stream deserializers, что повышает качество анализа потоков данных через популярные библиотеки. Go CodeQL теперь моделирует github.com/coder/websocket в дополнение к nhooyr.io/websocket, позволяя обнаруживать уязвимости в коде обоих вариантов WebSocket-библиотек. Rust Ru

Что известно по теме: критическое изменение: macOS 27 и Xcode 27?

Apple прекратила распространение multi-architecture (x86-64/arm64) бинарных файлов, требуемых CodeQL для traced analysis. На macOS 27 (с любой версией Xcode) и macOS 26 (при Xcode 27) режимы autobuild и manual build будут недоступны для скомпилированных языков. Рекомендация: используйте максимум macOS 26 и Xcode 26 для этих режимов. GitHub работает над улучшением build mode none на macOS.

Что известно по теме: изменения в запросах и CLI?

Query обновления (C# и GitHub Actions) Query cs/web/missing-x-frame-options теперь распознаёт ASP.NET Core response headers и директивы Content Security Policy frame-ancestors как защиту от clickjacking. Query cs/web/xss больше не трактует значения атрибутов Razor tag-helper с WriteLiteral как XSS sinks. В actions/unpinned-tag query можно удалять owners из trusted set префиксом ! (например, !github), позволяя выявлять непривязанные теги first-party owners. CodeQL CLI improvements Интерфейс командной строки выводит четкие ошибки для неверных qlpack и from значений вместо cra

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Практика · Hamidun Academy

Соберите рабочего ИИ-агента или сервис своими руками без ручного кода

В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.

Открыть 72ч бесплатный доступ →Интенсив по Вайб-кодингу
Что вы думаете?
Загружаем комментарии…