Skip to main content

CodeQL 分析用の C および C++ クエリ

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

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

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

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

C および C++ 分析用の組み込みクエリ

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

メモ

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

クエリ名関連する共通脆弱性タイプ (CWE)デフォルト値拡張されたCopilot の自動修正
整数加算のオーバーフローに対する不適切なチェック190, 192
不適切な制限付き書き込み120, 787, 805
[
          `memset` の呼び出しが削除される可能性がある](https://codeql.github.com/codeql-query-help/cpp/cpp-memset-may-be-deleted/) | 014 | <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-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> |

| ループ内の alloca の呼び出し | 770 | | | | | 宣言されたパラメーターよりも少ない引数を持つ関数の呼び出し | 234, 685 | | | | | HRESULT とブール型の間のキャスト | 253 | | | | | char* から wchar_t* へのキャスト | 704 | | | | | クロスサイト スクリプティングに対する CGI スクリプトの脆弱性 | 079 | | | | | ファイル内の機密情報のクリア テキスト ストレージ | 260, 313 | | | | | 機密情報の平文送信 | 319, 359 | | | | | ループ条件における狭い型と広い型の比較 | 190, 197, 835 | | | | | 'cin' の危険な使用 | 676 | | | | | 承認されていない制御領域へのシステム データの露出 | 497 | | | | | HTTPS URL を使用できない | 319, 345 | | | | | O_CREAT フラグを使用して開かれたファイル (mode 引数なし) | 732 | | | | | 'scanf' のような関数の戻り値チェックが正しくない | 253 | | | | | 期限切れのコンテナへのイテレータ | 416, 664 | | | | | 書き込みが超過する可能性があります | 120, 787, 805 | | | | | new/free または malloc/delete の不一致 | 401 | | | | | 乗算結果を大きな型に変換 | 190, 192, 197, 681 | | | | | ゼロ終端文字を入れるスペースがない | 131, 120, 122 | | | | | ポインター オーバーフロー チェック | 758 | | | | | 二重開放の可能性 | 415 | | | | | 開放後に使用する可能性がある | 416 | | | | | snprintf へのオーバーフローの可能性がある呼び出し | 190, 253 | | | | | 安全でない可能性がある strncat への呼び出し | 788, 676, 119, 251 | | | | | 以前に行った逆参照による冗長なnullチェック | 476 | | | | | スタックに割り当てられたメモリを返す | 825 | | | | | SECURITY_DESCRIPTOR で DACL を NULL に設定する | 732 | | | | | 符号付きオーバーフロー チェック | 128, 190 | | | | | 静的配列アクセスによってオーバーフローが発生する可能性がある | 119, 131 | | | | | sizeof を使用した疑わしい追加操作 | 468 | | | | | チェック時間と使用時間のファイルシステムの競合状態 | 367 | | | | | 書式設定関数の引数が少なすぎる | 234, 685 | | | | | 算術式の制御されないデータ | 190, 191 | | | | | SQL クエリの制御されないデータ | 089 | | | | | OS コマンドで使用される制御されていないデータ | 078, 088 | | | | | 制御されないフォーマット文字列 | 134 | | | | | コンストラクターでの this の安全でない使用 | 670 | | | | | ゼロと比較した符号なし差分式 | 191 | | | | | アップキャストされた配列がポインター算術で使用 | 119, 843 | | | | | 破損あるいは危険な暗号化アルゴリズムの使用 | 327 | | | | | 不十分なキー サイズでの暗号化アルゴリズムの使用 | 326 | | | | | Heartbleed での OpenSSL のバージョンの使用 | 327, 788 | | | | | 危険な機能の使用 | 242, 676 | | | | | 期限切れのスタック アドレスの使用 | 825 | | | | | 有効期間終了後の文字列の使用 | 416, 664 | | | | | 有効期間終了後の一意のポインターの使用 | 416, 664 | | | | | 書式設定関数の引数の型が正しくない | 686 | | | | | XML 外部エンティティの拡張 | 611 | | | | | 範囲チェック前に使用される配列オフセット | 120, 125 | | | | | スプーフィングによる認証バイパス | 290 | | | | | boost::asio TLS 設定の構成ミス | 326 | | | | | boost::asio 非推奨のハードコーディングされたプロトコルの使用 | 327 | | | | | メモリ アクセス関数を呼び出すとバッファー オーバーフローが発生する可能性がある | 119、121、122、126 | | | | | 証明書がチェックされていない | 295 | | | | | 証明書の結果のコンフレーション | 295 | | | | | SQLite データベース内の機密情報のクリア テキスト ストレージ | 313 | | | | | バッファー内の機密情報の平文保存 | 312 | | | | | 誤解を招くインデントの前のコンマ | 1078, 670 | | | | | アクセス許可を制限せずに作成されたファイル | 732 | | | | | 'not' 演算子の使用法が正しくない | 480 | | | | | 不適切な割り当てエラー処理 | 570, 252, 755 | | | | | 無効なポインタ逆参照 | 119, 125, 193, 787 | | | | | 'scanf' のような関数の戻り値チェックがない | 252, 253 | | | | | 非定数書式指定文字列 | 134 | | | | | ポインター型の配列に割り当てられたメモリが不足している | 131, 122 | | | | | ポインター型に割り当てられたメモリが不足しているす | 131, 122 | | | | | CreateProcess の呼び出しで引用符で囲まれていないパスを持つ NULL アプリケーション名 | 428 | | | | | オーバーランの書き込み | 119, 131 | | | | | 文字列コピーのバッファー サイズが間違っている可能性がある | 676, 119, 251 | | | | | 機密システム データが許可されていない制御領域にさらされる可能性 | 497 | | | | | 書き込みがオーバーランする可能性がある | 120, 787, 805 | | | | | float から文字列への変換によって書き込みが超過される可能性があります | 120, 787, 805 | | | | | 初期化されていない可能性のあるローカル変数 | 665, 457 | | | | | strcat の安全でない可能性がある使用 | 676, 120, 251 | | | | | 疑わしい 'sizeof' の使用 | 467 | | | | | 疑わしいポインターのスケーリング | 468 | | | | | 疑わしいポインターのvoid型への変換 | 468 | | | | | 型の混乱 | 843 | | | | | 無制限の書き込み | 120, 787, 805 | | | | | 制御されない割り当てサイズ | 190, 789 | | | | | パス式で使用される制御されないデータ | 022, 023, 036, 073 | | | | | 制御されないプロセス操作 | 114 | | | | | 終端化されていない可変個引数呼び出し | 121 | | | | | 条件に対する信頼されていない入力 | 807 | | | | | 潜在的に危険な機能の使用 | 676 | | | |