Skip to main content

Enterprise Server 3.21 は、現在リリース候補として使用できます。

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.21 の最初のリリースには、CodeQL アクションと CodeQL CLI 2.24.3 が含まれていました。これには、これらのクエリがすべて含まれていない場合があります。 サイト管理者は、CodeQL バージョンを新しいリリースに更新できます。 詳しくは、「アプライアンスのコード スキャンの構成」をご覧ください。

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