0:00 0:00
記事
GitHub、CodeQL 2.27.2公開——C++・Go・Rust・JavaScriptの解析精度を強化
GitHubがコードスキャンの静的解析エンジン「CodeQL」のバージョン2.27.2を公開しました。C++の正規表現解析やGo・Rustのライブラリ対応拡充に加え、macOS 27環境では一部のビルドモードが使えなくなる注意点も案内されています。
GitHubは公式のChangelogで、コードスキャンの基盤である静的解析エンジン「CodeQL」のバージョン2.27.2を公開したと発表しました。C++の正規表現解析が新たに追加されたほか、Go・Rust・JavaScript/TypeScriptそれぞれの言語解析にも改善が加わっています。あわせて、macOS 27環境ではコンパイル言語の一部ビルドモードが使えなくなる注意点も案内されています。
デフォルトで498件、拡張版で629件のセキュリティクエリ
CodeQLは、GitHubのコードスキャン機能を支える静的解析エンジンで、コード中のセキュリティ上の問題を見つけて修正につなげる役割を担っています。GitHubによると、標準で有効になる「Default」スイートは498件のセキュリティクエリを実行し、170種類のCWE(共通脆弱性タイプ)をカバーします。追加で有効化できる「Extended」スイートはさらに131件のクエリを加え、32種類のCWEを補うとしています。バージョンを重ねるごとにクエリ数が積み上がっていく様子からも、静的解析のカバー範囲が着実に広がっていることがうかがえます。
C++・Go・Rustの解析対応が拡充
言語ごとのアップデートも多岐にわたります。C/C++では、std::regexでECMAScript文法の正規表現を解析できるようになったほか、Comdb2のC APIに対するSQLインジェクションのシンクモデルや、BloombergのBDEコーデック・バイトストリームデシリアライザ向けのフローサマリーが追加されました。Goでは、既存のnhooyr.io/websocketに加えてgithub.com/coder/websocketのインポートパスにも対応しています。RustではAnyAttrとDocCommentクラスがサポートされたほか、awaitを伴う非同期ブロックのデータフロー解析が改善され、native-tls・async-native-tls・tokio-native-tls向けのフローサマリーも加わりました。

画像引用元: GitHub Changelog
JavaScript/TypeScriptはWorkflow SDKのディレクティブに対応
JavaScript/TypeScript向けの改善では、Workflow SDKが使う"use workflow"および"use step"ディレクティブをCodeQLが認識できるようになりました。あわせて、Hapiフレームワークにおけるルートハンドラーとリクエスト入力の追跡精度も、カスタムのルート登録ヘルパーや高階関数を介した場合を含めて改善されています。フレームワーク固有の書き方に対応範囲を広げることで、実際のプロジェクトで見落とされやすい脆弱性の検出につながる改善といえます。
macOS 27ではトレース解析付きビルドが一部利用不可に
注意が必要なのが、macOS 27環境での制限です。Appleはmacos 27とXcode 27のリリースにあわせて、x86-64とarm64のマルチアーキテクチャバイナリの提供を取りやめました。CodeQLのトレース解析はこのマルチアーキテクチャバイナリを前提としているため、コンパイル言語に対するautobuildモードおよび手動ビルドモードは、macOS 27環境ではXcodeのバージョンを問わず、またmacOS 26でもXcode 27を選択した場合は利用できなくなるとしています。GitHubは当面の回避策として、macOS 26とXcode 26以下の組み合わせを使うよう呼びかけるとともに、ビルドを伴わないbuild mode noneでのmacOS対応強化を進めているとしています。
日本の開発者への影響
CI/CDパイプラインにCodeQLを組み込んでいるチームにとっては、言語別の検出精度向上はそのまま見逃していた脆弱性の発見につながる可能性があります。特にmacOS 27への移行を控えている場合は、コンパイル言語のコードスキャンが突然動かなくなる事態を避けるため、ビルド環境のOS・Xcodeバージョンを事前に確認しておくとよさそうです。GitHub ActionsでmacOSランナーを使っているプロジェクトも、ランナーイメージの更新タイミングにあわせてこの制限の影響を受けないか点検しておく価値があります。
CodeQL 2.27.2 improves C++, Go, Rust, and JavaScript analysis
CodeQL 2.27.2 is now available