Skip to main content

CodeQL 分析用の JavaScript クエリと TypeScript クエリ

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

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

Code scanning は、GitHub.com のすべてのパブリック リポジトリに使用できます。 Code scanning は、GitHub Enterprise Cloud を使用していて GitHub Advanced Security のライセンスを持つ Organization によって所有されるプライベート リポジトリでも使用できます。 詳しくは、「GitHub Advanced Security について」を参照してください。

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

JavaScript および TypeScript 分析用の組み込みクエリ

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

Note

GitHub Copilot Autofix は、プライベート リポジトリと内部リポジトリの CodeQL によって識別されるアラートに制限されます。 Enterprise アカウントがあり、GitHub Advanced Security を使用している場合、エンタープライズは Copilot Autofix にアクセスできます。

クエリ名関連する CWEデフォルト値ExtendedCopilot Autofix
アーカイブ抽出中の任意のファイル アクセス ("Zip Slip")022
不正な HTML フィルタリング正規表現020, 080, 116, 184, 185, 186
大文字と小文字を区別するミドルウェア パス178
機密情報のクリア テキスト ストレージ312, 315, 359
機密性の高い Cookie のクリア テキスト送信614, 311, 312, 319
機密情報のクリア テキスト ログ312, 359, 532
クライアント側クロスサイト スクリプティング079, 116
クライアント側 URL リダイレクト079, 116, 601
コード インジェクション094, 095, 079, 116
認証情報の転送に対する CORS 構成の誤り346, 639, 942
暗号で保護されたソースから偏った乱数の作成327
制限されていないターゲットオリジンとのウィンドウ間通信201, 359
ユーザーが制御するソースから構築されたデータベース クエリ089, 090, 943
暗号化されていない通信チャネルを使用した依存関係のダウンロード300, 319, 494, 829
ユーザーが制御するデータの逆シリアル化502
証明書の検証を無効にする295, 297
Electron webSecurity の無効化79
SCE を無効にする116
HTML として再解釈された DOM テキスト079, 116
二重コンパイル1176
二重エスケープまたはエスケープ解除116, 020
安全でない接続を介した機密ファイルのダウンロード829
Electron allowRunningInsecureContent の有効化494
例外テキストが HTML として再解釈される079, 116
プライベート ファイルの露出200, 219, 548
アクションでの式 インジェクション094
ハードコーディングされた認証情報259, 321, 798
電子メール生成でのホスト ヘッダーのポイズニング640
不適切なコードのサニタイズ094, 079, 116
信頼されていないソースからの機能を含める830
不完全な HTML 属性のサニタイズ079, 116, 020
不完全な複数文字のサニタイズ020, 080, 116
ホスト名の不完全な正規表現020
不完全な文字列エスケープまたはエンコード020, 080, 116
不完全な URL スキームのチェック020, 184
不完全な URL 部分文字列のサニタイズ020
サフィックスのチェックが正しくない020
非効率的な正規表現1333, 730, 400
スタック トレースを介した情報の露出209, 497
Helmet セキュリティ ミドルウェアの安全でない構成693、1021
安全でないランダム性338
安全でない URL ホワイトリスト183, 625
JWT にシークレットまたは公開鍵の検証がない347
ループ バインド インジェクション834, 730
不足している CSRF ミドルウェア352
レート制限がない770, 307, 400
正規表現の範囲が許容範囲が広すぎる020
制御されないデータで使用される多項式正規表現1333, 730, 400
プロトタイプ汚染の割り当て078, 079, 094, 400, 471, 915
プロトタイプ汚染関数078, 079, 094, 400, 471, 915
プロトタイプ汚染マージ呼び出し078, 079, 094, 400, 471, 915
反映されたクロスサイト スクリプティング079, 116
正規表現インジェクション730, 400
部分文字列をそれ自体に置き換える116
リソースの枯渇400, 770
深いオブジェクト トラバーサルからのリソース枯渇400
セカンド コマンド インジェクション078, 088
GET 要求から読み取られた機密データ598
クライアントに露出される機密性の高いサーバー Cookie1004
サーバーのクラッシュ248, 730
サーバー側リクエスト フォージェリ918
サーバー側 URL リダイレクト601
環境の値からビルドされたシェル コマンド078, 088
ビルド成果物内の機密情報の保持312, 315, 359
GitHub Actions 成果物内の機密情報の保持312, 315, 359
保存されたクロスサイト スクリプティング079, 116
テンプレート オブジェクト インジェクション073, 094
パラメーターの改ざんによる型の混乱8:43
制御されないコマンド ライン078, 088
パス式で使用される制御されないデータ022, 023, 036, 073, 099
cat プロセスの不要な使用078
安全でない動的メソッド アクセス094
自己終了 HTML タグの安全でない拡張079, 116
ライブラリ入力から構築された安全でない HTML079, 116
Unsafe jQuery プラグイン079, 116
ライブラリ入力から構築された安全でないシェル コマンド078, 088
スクリプトまたはその他のコンテンツで使用される信頼されていないドメイン830
未検証の動的メソッド呼び出し754
壊れた暗号アルゴリズムまたは脆弱な暗号アルゴリズムの使用327, 328
脆弱な暗号化キーの使用326
外部から制御可能な書式指定文字列の使用134
不十分な計算量でのパスワード ハッシュの使用916
役に立たない正規表現文字のエスケープ020
XML 外部エンティティの拡張611, 827
XML 内部エンティティ拡張776, 400
XPath インジェクション643
クライアント側リクエスト フォージェリ918
構成ファイルの空のパスワード258, 862
セッションを破棄できない384
送信ネットワーク要求のファイル データ200
コードとして解釈されるハードコーディングされたデータ506
間接的に制御されないコマンド ライン078, 088
安全でない一時ファイル377, 378
ログ インジェクション117
postMessage ハンドラーにオリジンの検証がない020, 940
正規表現アンカーがない020
ファイルに書き込まれたネットワーク データ912, 434
構成ファイルのパスワード256, 260, 313, 522
ファイル システムの潜在的な競合状態367
リモート プロパティ インジェクション250, 400
SameSite 制限のない機密性の高い Cookie1275
ライブラリ入力から構築された安全でないコード094, 079, 116
ユーザーが制御するセキュリティ チェックのバイパス807, 290