
CodeQL 2.27.2公開、macOS 27ではコンパイル言語の解析が非対応
CodeQLGitHubコードスキャン脆弱性検査破壊的変更
GitHubはCodeQL 2.27.2を公開した。C/C++・Go・Rust・JavaScriptの解析を強化し、Defaultスイートは170のCWEをカバーする498クエリ構成。一方でmacOS 27ではコンパイル言語のautobuild/manualビルドが非対応となり、GoのCFG変更は既存クエリの修正が必要になる破壊的変更として告知された。
何が発表されたか
GitHub は 2026 年 10 月 9 日、コードスキャンで使われる CodeQL 2.27.2 をチェンジログで公開した。Default スイートは 170 の CWE をカバーする 498 件のセキュリティクエリ、Extended スイートはさらに 32 の CWE をカバーする 131 クエリを追加する構成とされている。
言語ごとの主な変更は次のとおり。
- C/C++:
std::regexの ECMAScript 文法の正規表現を解析。Comdb2 C API の SQL インジェクションシンクモデルと、Bloomberg BDE コーデック・バイトストリームのデシリアライザのフローサマリを追加 - Go:
nhooyr.io/websocketに加えてgithub.com/coder/websocketのインポートパスをモデル化 - Rust: エクストラクタが
AnyAttrとDocCommentに対応。awaitを伴う async ブロックのデータフローを改善し、native-tls/async-native-tls/tokio-native-tlsのフローサマリを追加 - JavaScript/TypeScript: Workflow SDK の
"use workflow"と"use step"ディレクティブを認識。Hapi のルートハンドラとリクエスト入力の追跡が、カスタムのルート登録ヘルパーや高階関数を経由しても改善 - C#:
cs/web/missing-x-frame-optionsが ASP.NET Core のレスポンスヘッダと CSP のframe-ancestorsをクリックジャッキング対策として扱うようになった - GitHub Actions:
actions/unpinned-tagの信頼済みオーナーから、エントリの先頭に!を付けて除外できる(例:!github)
取るべき対応
github.com のコードスキャン利用者には自動的に新バージョンが展開されるため、通常は作業は不要だ。対応が必要になるのは次のケース。
- macOS で Go 以外のコンパイル言語を解析している場合(期限なし、ただし macOS 27 更新前に判断が必要): Apple が x86-64/arm64 のマルチアーキテクチャバイナリを提供しなくなったため、macOS 27 ではどの Xcode でも
autobuildとmanualビルドモードが非対応になる。macOS 26 でも Xcode 27 を選択している場合は同様。これらのモードを使うなら macOS 26 と Xcode 26 の組み合わせを維持する。GitHub はnoneビルドモードのサポート改善に取り組んでいるとしている - Go のカスタムクエリを書いている場合: Go の CFG が共有 CFG ライブラリを使う形に変わり、ノード・エッジ・位置情報・基本ブロックの境界が変化した。
BasicBlocks::Cfgは削除、ControlFlow::EntryNode/ExitNode/SwitchStmt.getExprが追加、IfStmt.getCondはIfStmt.getConditionに置き換えて非推奨、IfStmt.getThenとLoopStmt.getBodyの戻り値はStmtに変更された。旧表現に依存したクエリは修正が必要 - GitHub Enterprise Server を運用している場合: 2.27.2 は将来の GHES リリースに含まれる。古いバージョンでは CodeQL を手動でアップグレードできる
CLI 側では、クエリスイートの qlpack: と from: の不正値がクラッシュせず明確なエラーになり、符号付き 32bit の範囲外の整数は切り捨てずに拒否されるようになった。
