Skip to main content

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

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

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

CodeQL は、次の種類のリポジトリで使用できます:

CodeQL には、Java および Kotlin コードを分析するためのクエリが多数含まれています。 データ再利用可能なコードスキャニング.CodeQLクエリテーブル.クエリスイートの動作 %}

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

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

クエリ名関連する CWEDefaultExtendedCopilot自動修正
すべての証明書を受け入れる TrustManager 295
すべての証明書を受け入れる AndroidWebView295
Android デバッグ可能な属性が有効になっている489
Android フラグメント インジェクション470
PreferenceActivity での Android フラグメント インジェクション470
Android インテント リダイレクト926, 940
Android Webview のデバッグが有効になっている489
アーカイブ抽出中の任意のファイル アクセス ("Zip Slip")022
Cookie 内の機密情報のクリア テキスト ストレージ315
クロスサイト スクリプティング079
アーティファクト リポジトリとして JCenter/Bintray に依存1104
ユーザーが制御するデータの逆シリアル化502
JHipster ジェネレーターの脆弱性 CVE-2019-16303 を検出する338
Netty HTTP ヘッダーの検証が無効になっている093、113
Spring CSRF 保護が無効になっている352
公開された Spring Boot アクチュエータ200
構成ファイルでの Spring Boot アクチュエータの公開200
式言語インジェクション (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
エラー メッセージによる情報の公開209
安全でない 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
          [HttpOnly 応答ヘッダーが設定されていない機密性の高い Cookie](https://codeql.github.com/codeql-query-help/java/java-sensitive-cookie-not-httponly/) | 1004 | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Included" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="x icon" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |

| サーバー側リクエスト フォージェリ | 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 | | | | | 挿入された環境変数でコマンドのビルド | 078、088、454 | | | | | Android ファイルシステム内の機密情報のクリア テキスト ストレージ | 312 | | | | | 'Properties' クラスを使用した機密情報のクリア テキスト ストレージ | 313 | | | | | Android で SharedPreferences を使用した機密情報のクリア テキスト ストレージ | 312 | | | | | Android 上のローカル データベースを使用した機密情報のクリア テキスト ストレージ | 312 | | | | | ループ条件における狭い型と広い型の比較 | 190, 197 | | | | | 相対パスを使用したコマンドの実行 | 078, 088 | | | | | 通知への機密情報の公開 | 200 | | | | | UI テキスト ビューへの機密情報の公開 | 200 | | | | | CSRF から保護されていない HTTP 要求の種類 | 352 | | | | | ユーザー指定の配列インデックスの不適切な検証 | 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 | | | |