CodeQL 2.25.4 が Swift 6.3.1 をサポートし、C# と Java の分析を改善
GitHub がリリースした CodeQL 2.25.4 は、Swift 6.3.1 のサポート追加や C#・Java の分析精度向上、Vercel サーバーレス関数の検知対応など、セキュリティスキャンの信頼性を高める重要な更新である。
キーポイント
言語およびフレームワークの拡張
Swift 6.3.1 の完全サポートを開始し、C# では ASP.NET の汚染フロー検出を強化するとともに、Vercel サーバーレス関数(@vercel/node)へのセキュリティクエリ対応を追加した。
Java/Kotlin における偽陽性の削減
パス正規化や機密情報のハッシュ処理、入力検証ロジックを正しく認識するようクエリが更新され、NIO.2 API やログ出力に関する誤検知が大幅に減少した。
データフローバリア機能の強化
C/C++ から Rust までの主要言語で、データフローバリアとガードを拡張機能として追加できるようになり、カスタム設定での偽陽性抑制が容易になった。
Swift 6.3.1 のサポート追加
CodeQL 2.25.4 で Swift 6.3.1 が正式にサポートされるようになりました。
C# と Java の機能強化
本バージョンでは C# および Java に関する分析の改善が実施されています。
影響分析・編集コメントを表示
影響分析
この更新は、特に Swift や Vercel を採用している現代の Web アプリケーション開発において、セキュリティスキャンの精度と信頼性を高める決定的な役割を果たします。偽陽性の削減により、開発チームは重要な脆弱性に集中できるようになり、DevSecOps プロセスの効率化に直接寄与します。
編集コメント
セキュリティツールとしての CodeQL は、単なるバグ発見だけでなく、現代のクラウドネイティブ環境(Vercel など)や最新言語バージョンへの対応を急速に進化させています。開発現場では、偽陽性の減少が即座に生産性向上につながる実用的なアップデートです。
CodeQL は、GitHub コードスキャンの背後にある静的解析エンジンであり、コード内のセキュリティ問題を発見して修正します。このほど CodeQL 2.25.4 をリリースしました。これにより Swift 6.3.1 のサポートが追加され、C# 分析の精度が向上し、Vercel サーバーレス関数へのセキュリティ分析が拡張され、ほぼすべての対応言語でデータフローバリア拡張機能が導入されました。
言語およびフレームワークのサポート
Swift
CodeQL は now Swift 6.3.1 で構築されたアプリの解析をサポートするようになりました。
C#
ASP および ASP.NET のリモートソースモデリングを拡大し、汚染されたパラメータのフィールドや、転送的に汚染されるプロパティおよびフィールドなど、追加のソースをカバーしました。これにより、ASP.NET アプリケーション内の汚染フローの検出カバレッジが向上します。
C# 14 のユーザー定義複合代入演算子のサポートを追加しました。
ビルドモード:none で依存関係を解決する際、dotnet restore は now nuget.config に設定された到達可能な NuGet フィードおよび任意のプライベートレジストリを明示的に直接使用し、デフォルトフィードが利用できない場合や制限されている場合に信頼性が向上します。
JavaScript/TypeScript
@vercel/node による Vercel サーバーレス関数のサポートを追加しました。ハンドラは VercelRequest/VercelResponse の TypeScript パラメータ型を通じて認識されるため、標準的なセキュリティクエリ(例:js/reflected-xss, js/request-forgery, js/sql-injection, js/command-line-injection)が now Vercel API ルートファイル内の脆弱性を検出できるようになりました。
クエリの変更
Java/Kotlin
java/path-injection および java/zipslip クエリは、Path.toRealPath() をパス正規化のサニタイザーとして認識するようになりました。これは既存の Path.normalize() や File.getCanonicalPath() の扱いに合わせたものです。これにより、NIO.2 API を使用してパスの正準化を行っているコードにおける偽陽性が減少します。
java/sensitive-log クエリは、機密データを保持していない追加の変数名パターン(例:ページネーショントークン (nextToken, pageToken, continuationToken) およびシークレットメタデータ (secretName, secretId, secretVersion))を除外するようになりました。これにより偽陽性が減少します。
java/sensitive-log クエリは、名前に「encrypt」、「hash」、または「digest」が含まれるメソッド呼び出しをサニタイザーとして扱うようになりました。これにより、機密データをログ出力前にハッシュ化または暗号化する際の偽陽性が減少します。
java/trust-boundary-violation クエリは、正規表現チェック(例:String.matches() によるガードおよび @javax.validation.constraints.Pattern アノテーション)をサニタイザーとして認識するようになりました。これにより、入力値がセッションに保存される前に検証される際の偽陽性が減少します。
C/C++
Windows SDK の Strsafe.h ヘッダーに対する汚染フローモデルを追加しました。
新機能
データ拡張を使用して、C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, Rust 全体でデータフローバリアおよびバリアガードを追加できるようになりました。これにより、クエリを直接修正することなく、組織のカスタム CodeQL 設定における偽陽性を抑制しやすくなります。詳細は、各言語のライブラリモデルのカスタマイズに関するドキュメントをご覧ください。
必ず JSON 形式で返してください。translation フィールドのみ。他のフィールド (technical_terms 等) は一切追加しないこと — 余計なフィールドを書こうとして本文翻訳がトークン上限で打ち切られる事故を防ぐため:
{"translation": "翻訳全文"}
完全な変更点一覧については、バージョン 2.25.4 の完全な変更履歴をご参照ください。CodeQL の新バージョンはすべて自動的に github.com 上の GitHub コードスキャン利用者へデプロイされます。また、CodeQL 2.25.4 で追加された新機能は、将来の GitHub Enterprise Server (GHES) リリースにも含まれます。もし GHES の古いバージョンをお使いの場合は、手動で CodeQL のバージョンをアップグレードすることができます。
本記事「CodeQL 2.25.4 が Swift 6.3.1 サポートを追加し、C# および Java に改善を加えるなど」は、最初に The GitHub Blog で公開されました。
原文を表示
CodeQL is the static analysis engine behind GitHub code scanning, which finds and remediates security issues in your code. We’ve recently released CodeQL 2.25.4, which adds Swift 6.3.1 support, improves accuracy of C# analysis, extends security analysis to Vercel serverless functions, and introduces data flow barrier extensions across nearly every supported language.
Language and framework support
Swift
CodeQL now supports analysis of apps built with Swift 6.3.1.
C#
We’ve expanded ASP and ASP.NET remote source modeling to cover additional sources, including fields of tainted parameters as well as properties and fields that become tainted transitively. This improves detection coverage for taint flows in ASP.NET applications.
We’ve added support for C# 14 user-defined compound assignment operators.
When resolving dependencies in build-mode: none, dotnet restore now explicitly uses reachable NuGet feeds configured in nuget.config and any private registries directly, improving reliability when default feeds are unavailable or restricted.
JavaScript/TypeScript
We’ve added support for @vercel/node Vercel serverless functions. Handlers are recognized via VercelRequest/VercelResponse TypeScript parameter types, so standard security queries (e.g., js/reflected-xss, js/request-forgery, js/sql-injection, and js/command-line-injection) now detect vulnerabilities in Vercel API route files.
Query changes
Java/Kotlin
The java/path-injection and java/zipslip queries now recognize Path.toRealPath() as a path normalization sanitizer, consistent with the existing treatment of Path.normalize() and File.getCanonicalPath(). This reduces false positives for code using the NIO.2 API for path canonicalization.
The java/sensitive-log query now excludes additional variable naming patterns that don’t hold sensitive data (e.g., pagination tokens (nextToken, pageToken, continuationToken) and secret metadata (secretName, secretId, secretVersion)) reducing false positives.
The java/sensitive-log query now treats method calls whose names contain “encrypt”, “hash”, or “digest” as sanitizers, reducing false positives when sensitive data is hashed or encrypted before logging.
The java/trust-boundary-violation query now recognizes regular expression checks (e.g., String.matches() guards and @javax.validation.constraints.Pattern annotations) as sanitizers, reducing false positives when input is validated before being stored in a session.
C/C++
We’ve added taint flow models for the Strsafe.h header from the Windows SDK.
New features
You can now add data flow barriers and barrier guards using data extensions across C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, and Rust. This makes it easier to suppress false positives in your organization’s custom CodeQL configurations without modifying queries directly. See the customizing library models documentation for your language for details.
For a full list of changes, please refer to the complete changelog for version 2.25.4. Every new version of CodeQL is automatically deployed to users of GitHub code scanning on github.com. The new functionality in CodeQL 2.25.4 will also be included in a future GitHub Enterprise Server (GHES) release. If you use an older version of GHES, you can manually upgrade your CodeQL version.
The post CodeQL 2.25.4 adds Swift 6.3.1 support, improvements to C# and Java, and more appeared first on The GitHub Blog.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み