CodeQL 2.27.1、C++クエリを追加しActionsのロックファイルに対応
CodeQL 2.27.1は170のCWEを対象とする498のデフォルトセキュリティクエリ、新しいC/C++チェック、Kotlin 2.4.20対応、そしてActionsのロックファイル(lock file)の認識を備えています。
3 分で読めます

数字で見る
- security queries in the default suite
- 498
- CWEs those default queries cover
- 170
- extra queries in the extended suite
- 131
GitHubは2026年9月25日にCodeQL 2.27.1を発表しました。新しいCおよびC++のクエリを追加し、Kotlin 2.4.20をサポートし、GitHub Actionsのワークフローの判定方法を変えています。日々の作業で最も影響が大きいのはActionsの変更です。CodeQLは今後、有効なロックファイルのエントリが対象としているアクションを、安全にピン留めされたものとみなします。この方法でピン留めしているチームでは、誤検知が減るはずです。
CodeQLは、GitHubのコードスキャンを支える静的解析エンジンです。静的解析とは、ソースコードを実行せずに読み、バグやセキュリティ上の欠陥を探すことです。コードスキャンはこうしたチェックをプルリクエストで実行し、結果をアラートとして表示します。
CodeQL 2.27.1の新機能
CodeQL CLIの変更履歴では、このリリースは2026年9月22日付です。GitHubの変更履歴の投稿はその3日後に出ました。どちらも同じ変更内容を説明しています。
| 領域 | 2.27.1での変更 |
|---|---|
| C/C++ | 新しいクエリcpp/ambiguous-assignment-of-comparison |
| C# | 新しいクエリcs/linq/missed-firstordefault |
| C# Web | cs/web/missing-token-validationがAutoValidateAntiforgeryTokenAttributeを認識 |
| GitHub Actions | actions/unpinned-tagが有効な.github/workflows/actions.lockのエントリと$/参照を受け入れる |
| Kotlin | Kotlin 2.4.20をサポート。K2コンパイラでのFoo::class.javaの抽出を修正 |
| Go | Go 1.27のbytes.CutLast、strings.Clone、JSONエンコーディングパッケージのデータフローモデル |
| Rust | エクストラクタをrust-analyzer 0.0.347に移行 |
| JavaScript | Fastifyのサーバールートの認識を改善 |
ドキュメントにはクエリパックの規模も記載されています。デフォルトスイートには170のCWEを対象とする498のセキュリティクエリが含まれます。CWEとは、バグの種類をまとめた公開カタログであるCommon Weakness Enumerationの項目です。拡張スイートは、さらに32のCWEを対象とする131のクエリを追加します。
新しいCおよびC++のクエリ
C/C++の追加は、目立たない種類のバグを狙っています。比較の結果を変数に代入し、その変数を真偽値として使うコードを検出します。GitHubによると、こうした式はあいまいになる可能性があります。
典型的な例は、=と==が混在する行です。読み手には、作者が比較結果を保存したかったのか、値を判定したかったのか、いつも見分けられるわけではありません。コンパイラは通常どちらの解釈も受け入れるため、専用のチェックが役立ちます。
C#側にもコード品質のクエリが加わりました。cs/linq/missed-firstordefaultは、LINQのFirstOrDefaultメソッドで書けるforeachループを指摘します。LINQは、コレクションに対するC#組み込みのクエリ構文です。変更履歴によると、その書き換え提案はin、out、refパラメーターを取り込まなくなりました。
Actionsのロックファイルの変更が重要な理由
アクションをピン留めするとは、v4のようなタグではなく、正確なコミットで参照することです。タグは、採用した後で別のコードに移される可能性があります。コミットはそうはなりません。CodeQLのactions/unpinned-tagクエリは、ワークフローがタグを使っていると警告します。
2.27.1では、このクエリは.github/workflows/actions.lockの構造的に有効なエントリで裏付けられた参照を受け入れるようになりました。また、リポジトリ自身を指す$/参照を、本質的にピン留めされたものとして扱います。自分のリポジトリ内のコードは、外部のタグのように第三者に差し替えられることがありません。
セルフホストの利用者に届く時期
GitHub Enterprise Serverは、企業が自社のマシンで運用するGitHubです。GitHubによると、Enterprise Server 3.24にCodeQL 2.27.1が含まれます。Java側のツールも更新されました。ドキュメントには、Eclipse Temurin OpenJDK 25.0.4.1への更新が記載されています。
開発者にとっての意味
アップグレード後は、actions/unpinned-tagに関するコードスキャンのアラートを確認してください。すでにアクションを.github/workflows/actions.lockに記録しているなら、それらの参照に対するアラートは閉じるはずです。開いたまま残るものは、ロックファイルが対象としていない参照か、クエリが有効とみなさないエントリを指しています。いずれにしても、確認する価値があります。
CやC++のチームは、古いコードでcpp/ambiguous-assignment-of-comparisonの検出結果が最初にまとめて出ることを想定してください。一括で却下せず、1件ずつ仕分けてください。意図的なスタイルのものもあります。何年もレビューをすり抜けてきた本物のタイプミスかもしれないものもあります。
K2コンパイラを使うKotlinのチームには、2つの修正が同時に届きます。2.4.20のサポートにより、解析を失わずにコンパイラをアップグレードできます。Foo::class.javaの修正で、一部の誤検知もなくなるはずです。
Go 1.27を使うGoのチームは、標準ライブラリの新しい関数に対するデータフローモデルを得られます。テイントトラッキングは、信頼できない入力がプログラム内を通って危険な箇所に達するまでを追跡します。今後はbytes.CutLastやstrings.Cloneでも、追跡を見失わずにデータを追えます。
GitHub Enterprise Serverを運用しているなら、これらの変更を得るために3.24へのアップグレードを計画してください。それまでは、コードスキャンは従来のクエリの動作のままです。
出典
- CodeQL 2.27.1 adds C and C++ query and Kotlin 2.4.20 support - GitHub Changelog
- CodeQL 2.27.1 (2026-09-22) - CodeQL documentation
関連記事

Kubernetes 1.37、rootlessモードがベータに昇格
Kubernetes 1.37でKubeletInUserNamespaceがベータになりました。kubelet、コンテナランタイム、CNIプラグイン、kube-proxyのすべてを非rootユーザーで動かせます。

Kiteworks、今週末のサーバー停止を顧客に要請
Kiteworksは、法執行機関から攻撃が差し迫っているとの警告を受け、9月26日(土)に6時間サーバーを停止するよう全顧客に要請しました。ゼロデイ(未知の脆弱性)攻撃への備えです。

Node.js 22.23.3 LTS、HTTP/2のuse-after-freeバグを修正
9月23日公開のNode.js 22.23.3 LTSは、HTTP/2のuse-after-free(ユースアフターフリー)バグを修正し、Node-APIにSharedArrayBufferのサポートを追加し、OpenSSL 3.5.8に移行しました。