Skip to main content

CodeQL 分析のための Java クエリと Kotlin クエリ

default または security-extended クエリ スイートを選択時、CodeQL が Java または Kotlin のコード分析に使用するクエリについて詳しく見てみましょう。

この機能を使用できるユーザーについて

Code scanning は、GitHub Enterprise Server の Organization 所有のリポジトリで利用できます。 この機能には、GitHub Advanced Security のライセンスが必要です。 詳しくは、「GitHub Advanced Security について」を参照してください。

CodeQL には、Java および Kotlin コードを分析するためのクエリが多数含まれています。 default クエリ スイート内のすべてのクエリは、既定で実行されます。 security-extended クエリ スイートを使用する場合は、追加のクエリが実行されます。 詳しくは、「CodeQL クエリ スイート」を参照してください。

: Kotlin の CodeQL 分析は、現在ベータ版です。 ベータ版の間、Kotlin の分析は他の言語の CodeQL 分析ほど包括的ではありません。

Java および Kotlin 分析用の組み込みクエリ

次の表に、最新リリースの CodeQL アクションと CodeQL CLI で使用できるクエリを示します。 詳細については、CodeQL ドキュメントにある CodeQL クエリに関するページを参照してください。

注: GitHub Enterprise Server 3.10 の最初のリリースには、CodeQL アクションと CodeQL CLI 2.13.5 が含まれていました。これには、これらのクエリがすべて含まれていない場合があります。 サイト管理者は、CodeQL バージョンを新しいリリースに更新できます。 詳しくは、「アプライアンス用コードスキャンの構成」を参照してください。

クエリ名関連する CWE既定値ExtendedAutofix
すべての証明書を受け入れる TrustManager295
すべての証明書を受け入れる Android WebView295
Android デバッグ可能な属性が有効になっている489
Android フラグメント インジェクション470
PreferenceActivity での Android フラグメント インジェクション470
Android インテント リダイレクト926, 940
Android Webview のデバッグが有効になっている489
アーカイブ抽出中の任意のファイル アクセス ("Zip Slip")022
文字列連結によるコマンド ラインの作成078, 088
Cookie 内の機密情報のクリア テキスト ストレージ315
クロスサイト スクリプティング079
アーティファクト リポジトリとして JCenter/Bintray に依存1104
ユーザーが制御するデータの逆シリアル化502
JHipster ジェネレーターの脆弱性 CVE-2019-16303 を検出する338
Netty HTTP ヘッダーの検証を無効にしました93, 113
Spring CSRF 保護を無効にしました352
式言語インジェクション (JEXL)094
式言語インジェクション (MVEL)094
式言語インジェクション (Spring)094
Maven アーティファクトのアップロード/ダウンロードで HTTPS または SFTP URL を使用できない300, 319, 494, 829
セキュリティで保護された Cookie を使用できない614
Groovy 言語 インジェクション094
HTTP 応答分割113
複合代入での暗黙的な縮小変換190, 192, 197, 681
暗黙的にエクスポートされた Android コンポーネント926
ブロードキャスト レシーバーで受信したインテントの不適切な検証925
非効率的な正規表現1333, 730, 400
スタック トレースを介した情報の露出209, 497
安全でない Bean 検証094
安全でない LDAP 認証522, 319
安全でないローカル認証287
安全でないランダム性330, 338
インテント URI アクセス許可の操作266, 926
ユーザー制御名を使用した JNDI 検索074
ユーザーが制御するソースから構築された LDAP クエリ090
JWT 署名チェックがない347
ユーザーが制御する入力を含む OGNL 式言語ステートメント917
正規表現の範囲が許容範囲が広すぎる020
リモートからのパス トラバーサルの部分的な脆弱性023
制御されないデータで使用される多項式正規表現1333, 730, 400
ユーザーが制御するソースから作成されたクエリ089, 564
他ユーザーが書き込み可能なファイルからの読み取り732
正規表現インジェクション730, 400
ユーザーが制御するデータ内の XML 外部エンティティの解決611, 776, 827
サーバー側リクエスト フォージェリ918
サーバー側のテンプレート インジェクション1336, 094
制御されないコマンド ライン078, 088
コンテンツ解決で使用される制御されないデータ441, 610
パス式で使用される制御されないデータ022, 023, 036, 073
安全でないホスト名の検証297
リモート ソースから URL 転送552
リモート ソースからの URL リダイレクト601
破損あるいは危険な暗号化アルゴリズムの使用327, 328
不十分なキー サイズでの暗号化アルゴリズムの使用326
安全な乱数ジェネレーターでの予測可能なシードの使用335, 337
外部から制御可能な書式指定文字列の使用134
暗黙的な PendingIntent の使用927
OAEP を使用しない RSA アルゴリズムの使用780
数値キャストでのユーザー制御データ197, 681
アクセス許可チェックで使用されるユーザー制御データ807, 290
暗号化に静的初期化ベクターの使用329, 1204
XPath インジェクション643
ユーザーが制御するスタイルシートを使用した XSLT 変換074
JavaScript の露出を通じて Java オブジェクト メソッドにアクセスする079
Android APK のインストール094
Android に証明書のピン留めがない295
Android の機密性の高いキーボード キャッシュ524
Android WebSettings ファイルへのアクセス200
Android WebView JavaScript の設定079
Android WebView 設定によりコンテンツ リンクへのアクセスが許可される200
アプリケーションのバックアップが許可されている312
挿入された環境変数でコマンドのビルド078、088、454
Android ファイルシステム内の機密情報のクリア テキスト ストレージ312
'Properties' クラスを使用した機密情報のクリア テキスト ストレージ313
Android で SharedPreferences を使用した機密情報のクリア テキスト ストレージ312
Android 上のローカル データベースを使用した機密情報のクリア テキスト ストレージ312
ループ条件における狭い型と広い型の比較190, 197
相対パスを使用したコマンドの実行078, 088
通知への機密情報の公開200
UI テキスト ビューへの機密情報の公開200
API 呼び出しでハードコーディングされた認証情報798
ユーザー指定の配列インデックスの不適切な検証129
配列の構築に使用されるユーザー指定サイズの不適切な検証129
安全でない基本認証522, 319
安全でない JavaMail SSL 構成297
ローカル認証用に安全に生成されていないキー287
ログ ファイルへの機密情報の挿入532
ResultReceiver を使用した機密情報の漏洩927
暗黙的な意図による機密情報の漏洩927
一時ディレクトリ内のローカル情報の開示200, 732
ログ インジェクション117
到達不能の終了条件を含むループ835
コンテンツ プロバイダーに読み取りまたは書き込みアクセス許可がない926
部分パス トラバーサルの脆弱性023
信頼されない可能性のある文字列との連結によって構築されたクエリ089, 564
ソケット認証の競合状態421
チェック時間と使用時間の競合状態367
信頼境界違反501
算術式の制御されないデータ190, 191
未リリースのロック764, 833
安全でない証明書の信頼273
Android WebView での安全でないリソースフェッチ749, 079
壊れている可能性のある暗号アルゴリズムまたは危険な暗号アルゴリズムの使用327, 328
潜在的に危険な関数の使用676
機密性の高いメソッドのユーザーが制御するバイパス807, 290
算術式のユーザー制御データ190, 191