CWE ID (C および C++)

マッピングは CWE の最新バージョンに基づきます。

ID チェッカー名および説明
20

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

SV.CODE_INJECTION.SHELL_EXEC  シェル実行へのコマンドインジェクション

SV.TAINTED.ALLOC_SIZE  メモリ割り当て時の未検証の整数の使用

SV.TAINTED.BINOP  バイナリ演算での未検証整数値の使用

SV.TAINTED.CALL.BINOP  バイナリ演算での未検証整数値の使用

SV.TAINTED.CALL.DEREF  未検証ポインターの逆参照

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.CALL.LOOP_BOUND  関数呼び出しのループ条件での未検証の整数の使用

SV.TAINTED.DEREF  未検証ポインターの逆参照

SV.TAINTED.FMTSTR  書式文字列での未検証データの使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

SV.TAINTED.INJECTION  コマンドインジェクション

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

SV.TAINTED.PATH_TRAVERSAL  パストラバーサルでの未検証データの使用

SV.TAINTED.SECURITY_DECISION  セキュリティ決定

22

SV.DLLPRELOAD.NONABSOLUTE.DLL  DLL プリロードのハイジャック ベクターの可能性

SV.DLLPRELOAD.NONABSOLUTE.EXE  プロセスインジェクションベクターの可能性

SV.DLLPRELOAD.SEARCHPATH  DLL の検索に SearchPath の使用は推奨されません

SV.TAINTED.PATH_TRAVERSAL  パストラバーサルでの未検証データの使用

23

SV.DLLPRELOAD.NONABSOLUTE.DLL  DLL プリロードのハイジャック ベクターの可能性

SV.DLLPRELOAD.NONABSOLUTE.EXE  プロセスインジェクションベクターの可能性

SV.DLLPRELOAD.SEARCHPATH  DLL の検索に SearchPath の使用は推奨されません

73

SV.DLLPRELOAD.NONABSOLUTE.DLL  DLL プリロードのハイジャック ベクターの可能性

SV.DLLPRELOAD.NONABSOLUTE.EXE  プロセスインジェクションベクターの可能性

SV.DLLPRELOAD.SEARCHPATH  DLL の検索に SearchPath の使用は推奨されません

77

SV.CODE_INJECTION.SHELL_EXEC  シェル実行へのコマンドインジェクション

SV.TAINTED.INJECTION  コマンドインジェクション

78

SV.CODE_INJECTION.SHELL_EXEC  シェル実行へのコマンドインジェクション

SV.TAINTED.INJECTION  コマンドインジェクション

79

SV.TAINTED.XSS.REFLECTED  クロスサイト スクリプティング脆弱性

80

SV.TAINTED.XSS.REFLECTED  クロスサイト スクリプティング脆弱性

88

SV.CODE_INJECTION.SHELL_EXEC  シェル実行へのコマンドインジェクション

SV.TAINTED.INJECTION  コマンドインジェクション

89

CXX.SQL.INJECT  SQL インジェクション

94

SV.CODE_INJECTION.SHELL_EXEC  シェル実行へのコマンドインジェクション

SV.TAINTED.INJECTION  コマンドインジェクション

99

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

SV.CODE_INJECTION.SHELL_EXEC  シェル実行へのコマンドインジェクション

SV.TAINTED.INJECTION  コマンドインジェクション

SV.TAINTED.PATH_TRAVERSAL  パストラバーサルでの未検証データの使用

114

SV.DLLPRELOAD.NONABSOLUTE.DLL  DLL プリロードのハイジャック ベクターの可能性

SV.DLLPRELOAD.NONABSOLUTE.EXE  プロセスインジェクションベクターの可能性

SV.DLLPRELOAD.SEARCHPATH  DLL の検索に SearchPath の使用は推奨されません

119

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

ABV.MEMBER  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

ABV.UNKNOWN_SIZE  バッファオーバーフロー - 配列インデックスが範囲外

CXX.SUSPICIOUS_INDEX_CHECK  境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL  境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  ゼロのインデックスチェック後のインデックスの不審な使用

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

RABV.CHECK  境界チェック前のインデックスの不審な使用

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

120

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

ABV.MEMBER  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

SV.STRBO.BOUND_COPY.OVERFLOW  バインドされた文字列コピーでのバッファオーバーフロー

SV.STRBO.UNBOUND_COPY  バインドされていない文字列コピーでのバッファオーバーフロー

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

121

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

122

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

124

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

ABV.MEMBER  バッファオーバーフロー - 配列インデックスが範囲外

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

ABV.UNKNOWN_SIZE  バッファオーバーフロー - 配列インデックスが範囲外

CXX.SUSPICIOUS_INDEX_CHECK  境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL  境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  ゼロのインデックスチェック後のインデックスの不審な使用

RABV.CHECK  境界チェック前のインデックスの不審な使用

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

125

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

ABV.MEMBER  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

ABV.UNKNOWN_SIZE  バッファオーバーフロー - 配列インデックスが範囲外

CXX.SUSPICIOUS_INDEX_CHECK  境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL  境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  ゼロのインデックスチェック後のインデックスの不審な使用

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

RABV.CHECK  境界チェック前のインデックスの不審な使用

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

126

SV.STRBO.BOUND_COPY.UNTERM  次の文字列演算でバッファオーバーフローの可能性があります

127

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

129

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

131

CXX.SIZEOF.CSTRING  char* での sizeof の使用は、誤解を招く場合があります

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

134

SV.FMTSTR.GENERIC  書式文字列の脆弱性

SV.TAINTED.FMTSTR  書式文字列での未検証データの使用

135

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

170

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

SV.STRBO.BOUND_COPY.UNTERM  次の文字列演算でバッファオーバーフローの可能性があります

176

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

190

NUM.OVERFLOW  オーバーフローの可能性

NUM.OVERFLOW.DF  起こり得る数値のオーバーフローまたはラップアラウンド

SV.TAINTED.BINOP  バイナリ演算での未検証整数値の使用

SV.TAINTED.CALL.BINOP  バイナリ演算での未検証整数値の使用

192

MISRA.CAST.INT  自明ではない整数式が広い型または別の符号を持つ型にキャストされています

MISRA.CAST.UNSIGNED_BITS  unsigned char または short でのビット演算の結果は元の型にキャストできません

MISRA.UMINUS.UNSIGNED  単項マイナス演算子が符号なしオペランドに対して使用されています。

PRECISION.LOSS  精度の損失

PRECISION.LOSS.CALL  関数呼び出し中の精度の損失

PRECISION.LOSS.INIT  初期化中の精度の損失

193

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

SV.STRBO.BOUND_COPY.UNTERM  次の文字列演算でバッファオーバーフローの可能性があります

195

MISRA.CONV.INT.SIGN  暗黙的な整数変換により符号が変わります

MISRA.CVALUE.IMPL.CAST.CPP  暗黙の型変換で符号、型サイズ、型の違いにより情報の損失を起こす記述があります。

196

MISRA.CAST.INT.SIGN  自明ではない複合式が別の符号を持つ型にキャストされています

MISRA.CONV.INT.SIGN  暗黙的な整数変換により符号が変わります

197

MISRA.CAST.INT  自明ではない整数式が広い型または別の符号を持つ型にキャストされています

MISRA.CAST.UNSIGNED_BITS  unsigned char または short でのビット演算の結果は元の型にキャストできません

MISRA.UMINUS.UNSIGNED  単項マイナス演算子が符号なしオペランドに対して使用されています。

PRECISION.LOSS  精度の損失

PRECISION.LOSS.CALL  関数呼び出し中の精度の損失

PRECISION.LOSS.INIT  初期化中の精度の損失

200

SPECTRE.VARIANT1  予測実行の悪用の可能性

242

SV.FIU.PROCESS_VARIANTS  危険なプロセス作成の使用

SV.PIPE.VAR  パイプのハイジャックの可能性

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

SV.USAGERULES.PROCESS_VARIANTS  危険なプロセス作成関数の使用

250

SV.FIU.PROCESS_VARIANTS  危険なプロセス作成の使用

SV.USAGERULES.PERMISSIONS  特権の昇給の使用

SV.USAGERULES.PROCESS_VARIANTS  危険なプロセス作成関数の使用

251

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

252

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

253

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

256

CXX.SV.PWD.PLAIN  プレーンな文字列を使用してパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH  15 文字未満の長さでパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH.ZERO  ゼロ文字の長さでパスワードを設定しようとしています

259

CXX.SV.PWD.PLAIN  プレーンな文字列を使用してパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH  15 文字未満の長さでパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH.ZERO  ゼロ文字の長さでパスワードを設定しようとしています

HCC  ハードコードされた資格情報の使用

HCC.PWD  ハードコードされたパスワードの使用

269

SV.USAGERULES.PERMISSIONS  特権の昇給の使用

272

SV.BRM.HKEY_LOCAL_MACHINE  レジストリ操作関数の 'hkey' とパラメーターしての HKEY_LOCAL_MACHINE の使用

273

SV.FIU.PROCESS_VARIANTS  危険なプロセス作成の使用

SV.USAGERULES.PERMISSIONS  特権の昇給の使用

276

SV.USAGERULES.PROCESS_VARIANTS  危険なプロセス作成関数の使用

284

SV.LPP.CONST  危険な関数についての安全でないマクロの使用

SV.LPP.VAR  危険な関数についての安全でないパラメーターの使用

287

CXX.SV.PWD.PLAIN  プレーンな文字列を使用してパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH  15 文字未満の長さでパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH.ZERO  ゼロ文字の長さでパスワードを設定しようとしています

HCC  ハードコードされた資格情報の使用

HCC.PWD  ハードコードされたパスワードの使用

SV.WEAK_CRYPTO.WEAK_HASH  弱ハッシュ関数

290

SV.WEAK_CRYPTO.WEAK_HASH  弱ハッシュ関数

307

CXX.SV.PWD_INPUT.REVIEW  パスワード認証は、ブルートフォース攻撃に対してチェックする必要があります

311

CXX.SV.PRIVATE_KEY.EMPTY_PASSWD  不正な方法で秘密キーをシリアル化しようとしています

CXX.SV.PRIVATE_KEY.UNENCRYPTED  不正な方法で秘密キーをシリアル化しようとしています

312

CXX.SV.PRIVATE_KEY.EMPTY_PASSWD  不正な方法で秘密キーをシリアル化しようとしています

CXX.SV.PRIVATE_KEY.UNENCRYPTED  不正な方法で秘密キーをシリアル化しようとしています

321

HCC  ハードコードされた資格情報の使用

HCC.PWD  ハードコードされたパスワードの使用

326

SV.USAGERULES.SPOOFING  スプーフィングの影響を受けやすい関数の使用

327

RCA  危険な暗号化アルゴリズムが使用されています

SV.WEAK_CRYPTO.WEAK_HASH  弱ハッシュ関数

362

SV.TOCTOU.FILE_ACCESS  ファイル アクセス時の作成日時/使用日時の競合状態

367

SV.TOCTOU.FILE_ACCESS  ファイル アクセス時の作成日時/使用日時の競合状態

369

DBZ.CONST  ゼロ定数による除算が発生しました

DBZ.CONST.CALL  値 '0' が除数としてこの値を使用できる関数に渡されます

DBZ.GENERAL  ゼロ除算が発生した可能性があります

DBZ.GENERAL.FLOAT  浮動小数点数のゼロ除算が発生した可能性があります

DBZ.ITERATOR  ループ反復子でゼロ除算が発生した可能性があります

DBZ.ITERATOR.CALL  関数呼出しでゼロ除算が発生した可能性があります

DBZ.ITERATOR.FLOAT  ループ反復子でゼロ除算が発生した可能性があります

377

SV.PCC.CONST  CreateFile の呼び出し時に安全でない (定数) テンポラリファイルの名前が使用されています

SV.PCC.INVALID_TEMP_PATH  CreateFile の呼び出し時に安全でないテンポラリファイルの名前が使用されています

SV.PCC.MISSING_TEMP_CALLS.MUST  CreateFile の呼び出し時に安全なテンポラリファイルの名前が欠落しています

SV.PCC.MISSING_TEMP_FILENAME  CreateFile の呼び出し時にテンポラリファイルの名前が欠落しています

SV.PCC.MODIFIED_BEFORE_CREATE  CreateFile の呼び出し前にテンポラリファイルが変更されます

390

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

391

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

394

RETVOID.GEN  非 void 関数が void 値を返しています

RETVOID.IMPLICIT  暗黙的な int 関数によって void 値が返されます

VOIDRET  void 関数が戻り値を返しています

400

CL.MLK  メモリリーク - デストラクタで発生

CL.MLK.ASSIGN  メモリリーク - 代入演算子

CL.MLK.VIRTUAL  メモリリーク - デストラクタで発生している可能性

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

SV.CODE_INJECTION.SHELL_EXEC  シェル実行へのコマンドインジェクション

SV.TAINTED.INJECTION  コマンドインジェクション

401

CL.MLK  メモリリーク - デストラクタで発生

CL.MLK.ASSIGN  メモリリーク - 代入演算子

CL.MLK.VIRTUAL  メモリリーク - デストラクタで発生している可能性

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

403

RH.LEAK  リソースリーク

404

FMM.MIGHT  メモリの解放の不一致の可能性

FMM.MUST  メモリの解放の不一致

RH.LEAK  リソースリーク

412

CONC.DL  デッドロック

413

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  ロックされている間はミューテックスを破棄しないでください

415

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

416

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

CL.SELF-ASSIGN  解放済みメモリの使用 (二重解放) - operator=

CL.SHALLOW.ASSIGN  解放済みメモリの使用 (二重解放) - 演算子 = での浅いコピー

CL.SHALLOW.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタでの浅いコピー

LOCRET.ARG  関数がローカル変数のアドレスを返しています

LOCRET.GLOB  関数がローカル変数のアドレスを返しています

LOCRET.RET  関数がローカル変数のアドレスを返しています

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

421

SV.PIPE.CONST  パイプのハイジャックの可能性

SV.PIPE.VAR  パイプのハイジャックの可能性

426

SV.TAINTED.PATH_TRAVERSAL  パストラバーサルでの未検証データの使用

457

UNINIT.CTOR.MIGHT  コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST  コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

464

SV.BANNED.RECOMMENDED.TOKEN  禁止が推奨されているAPI: 安全でないトークン作成関数

SV.TAINTED.FMTSTR  書式文字列での未検証データの使用

467

CXX.SIZEOF.CSTRING  char* での sizeof の使用は、誤解を招く場合があります

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

468

CWARN.ALIGNMENT  不正確なポインタのスケーリングが使用されています

MISRA.PTR.ARITH  代数式または配列インデックス式でポインタが使用されています

476

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  NULLポインタを逆参照します

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

478

MISRA.SWITCH.WELL_FORMED.DEFAULT.2012  各 switch ステートメントはデフォルトラベルを有するべきです。

480

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

EFFECT  ステートメントの影響はありません

SEMICOL  セミコロンの位置を確認してください

481

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

482

EFFECT  ステートメントの影響はありません

484

MISRA.SWITCH.NO_BREAK  switch 句の最後に break ステートメントまたは throw ステートメントがありません

MISRA.SWITCH.WELL_FORMED.BREAK.2012  条件なしの break ステートメントで各 switch 句を終了するべきです。

497

SV.STR_PAR.UNDESIRED_STRING_PARAMETER  ファイルパスの不要な文字列

522

CXX.SV.PRIVATE_KEY.EMPTY_PASSWD  不正な方法で秘密キーをシリアル化しようとしています

CXX.SV.PRIVATE_KEY.UNENCRYPTED  不正な方法で秘密キーをシリアル化しようとしています

539

CXX.SV.PERSISTENT_COOKIE  永続的な cookie の違法使用

561

INVARIANT_CONDITION.GEN  不変な条件式

INVARIANT_CONDITION.UNREACH  不変な条件式

LA_UNUSED  ラベルが使用されていません

UNREACH.ENUM  enum が取りうる値が原因で、コードは到達不能になっています

UNREACH.GEN  到達不能コード

UNREACH.RETURN  到達不能な void return文

UNREACH.SIZEOF  アーキテクチャに関連した到達不能コード

VA_UNUSED.GEN  値を割り当て後に使用しません

VA_UNUSED.INIT  値を初期化後に使用しません

562

LOCRET.ARG  関数がローカル変数のアドレスを返しています

LOCRET.GLOB  関数がローカル変数のアドレスを返しています

LOCRET.RET  関数がローカル変数のアドレスを返しています

563

LV_UNUSED.GEN  ローカル変数は使用されません

570

INVARIANT_CONDITION.GEN  不変な条件式

INVARIANT_CONDITION.UNREACH  不変な条件式

571

INVARIANT_CONDITION.GEN  不変な条件式

INVARIANT_CONDITION.UNREACH  不変な条件式

590

FNH.MIGHT  非ヒープメモリの解放の可能性

FNH.MUST  非ヒープメモリの解放

FUM.GEN.MIGHT  未割り当てメモリの解放の可能性

FUM.GEN.MUST  未割り当てメモリの解放

606

SV.TAINTED.CALL.LOOP_BOUND  関数呼び出しのループ条件での未検証の整数の使用

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

611

CXX.SV.XXE  XMLファイルのパース中にXXE攻撃を招く可能性のある外部エンティティを解決しようとしています。

614

CXX.SV.INSECURE_COOKIE  安全でないクッキー

628

MISRA.FUNC.UNMATCHED.PARAMS  関数に渡される仮引数と実際のパラメーターの数が一致しません

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  print 関数呼び出しの引数が少なすぎます

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  print 関数呼び出しの引数が多すぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  scan 関数呼び出しの引数が少なすぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  scan 関数呼び出しの引数が多すぎます

665

UNINIT.CTOR.MIGHT  コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST  コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

667

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  ロックされている間はミューテックスを破棄しないでください

CONC.DBL_LOCK  二重ロック

CONC.DBL_UNLOCK  二重ロック解除

CONC.DL  デッドロック

CONC.NO_LOCK  変数に欠落しているロック

672

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

CL.SELF-ASSIGN  解放済みメモリの使用 (二重解放) - operator=

CL.SHALLOW.ASSIGN  解放済みメモリの使用 (二重解放) - 演算子 = での浅いコピー

CL.SHALLOW.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタでの浅いコピー

LOCRET.ARG  関数がローカル変数のアドレスを返しています

LOCRET.GLOB  関数がローカル変数のアドレスを返しています

LOCRET.RET  関数がローカル変数のアドレスを返しています

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

676

SV.BANNED.RECOMMENDED.ALLOCA  禁止が推奨されているAPI: スタック割り当て関数

SV.BANNED.RECOMMENDED.NUMERIC  禁止が推奨されているAPI: 安全でない数値化関数

SV.BANNED.RECOMMENDED.OEM  禁止が推奨されているAPI: OEM 文字ページ変換関数

SV.BANNED.RECOMMENDED.PATH  禁止が推奨されているAPI: 安全でないパス名操作関数

SV.BANNED.RECOMMENDED.SCANF  禁止が推奨されているAPI: 安全でない scanf 型関数

SV.BANNED.RECOMMENDED.SPRINTF  禁止が推奨されているAPI: 安全でない sprintf 型関数

SV.BANNED.RECOMMENDED.STRLEN  禁止が推奨されているAPI: 安全でない文字列長関数

SV.BANNED.RECOMMENDED.TOKEN  禁止が推奨されているAPI: 安全でないトークン作成関数

SV.BANNED.RECOMMENDED.WINDOW  禁止が推奨されているAPI: 安全でないウィンドウ関数

SV.BANNED.REQUIRED.CONCAT  禁止が必須とされているAPI: 安全でない文字列連結関数

SV.BANNED.REQUIRED.COPY  禁止が必須とされているAPI: 安全でないバッファコピー関数

SV.BANNED.REQUIRED.GETS  禁止が必須とされているAPI: 安全でないストリーム読み取り関数

SV.BANNED.REQUIRED.ISBAD  禁止が必須とされているAPI: IsBad 型関数

SV.BANNED.REQUIRED.SPRINTF  禁止が必須とされているAPI: 安全でない sprintf 型関数

681

PRECISION.LOSS  精度の損失

PRECISION.LOSS.CALL  関数呼び出し中の精度の損失

PRECISION.LOSS.INIT  初期化中の精度の損失

682

CWARN.ALIGNMENT  不正確なポインタのスケーリングが使用されています

CWARN.BAD.PTR.ARITH  不良なポインタ算術演算

CXX.SIZEOF.CSTRING  char* での sizeof の使用は、誤解を招く場合があります

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

MISRA.SHIFT.RANGE  シフト演算子の右側のオペランドは範囲外 (左側のオペランドの最大ビット長以上か、または負) です

MISRA.SIGNED_CHAR.NOT_NUMERIC  数値でない値に 'signed char' または 'unsigned char' が使用されています

PORTING.UNSIGNEDCHAR.OVERFLOW.FALSE  'char' 型の符号によっては関係式が常に false になる場合があります

686

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  互換性がない print 関数パラメーターの型

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  予期しない print 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  互換性がない scan 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  予期しない scan 関数パラメーターの型

SV.FMT_STR.SCAN_IMPROP_LENGTH  scan 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.UNKWN_FORMAT  print 関数呼び出しの書式指定子が不明です

SV.FMT_STR.UNKWN_FORMAT.SCAN  scan 関数呼び出しの書式指定子が不明です

690

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

704

MISRA.CAST.CONST  キャスト演算により const または volatile がポインターまたは参照から除外されます。

MISRA.CAST.FUNC_PTR.2012   関数を指すポインタと、別の非互換タイプとの間で実行された変換

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012   不完全なタイプ を指すポインタと、別のタイプとの間で実行された変換

MISRA.CAST.OBJ_PTR_TO_INT.2012   オブジェクトを指すポインタと、整数タイプとの間で実行された変換

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012   オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012   オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト

MISRA.CAST.VOID_PTR_TO_INT.2012   void を指すポインタと算術演算タイプとの間のキャスト

MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012   void ポインタから、オブジェクトを指すポインタに実行された変換

PORTING.CAST.FLTPNT  非浮動小数点タイプへの浮動小数点式のキャスト

PORTING.CAST.PTR.FLTPNT  非浮動小数点型のポインタへの浮動小数点式のポインタのキャスト

PORTING.CAST.PTR.SIZE  サイズに互換性がない可能性がある型への式のキャストの可能性

732

SV.USAGERULES.PERMISSIONS  特権の昇給の使用

754

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

762

FMM.MIGHT  メモリの解放の不一致の可能性

FMM.MUST  メモリの解放の不一致

764

CONC.DBL_LOCK  二重ロック

765

CONC.DBL_UNLOCK  二重ロック解除

768

MISRA.LOGIC.SIDEEFF  論理 'and' 式または論理 'or' 式の右側のオペランドは副作用があります

MISRA.LOGIC.SIDEEFF.COND  条件式の分岐式に副作用があります

772

RH.LEAK  リソースリーク

783

MISRA.EXPR.PARENS.2012  式内の演算子の優先度は明示的にする必要があります。

MISRA.EXPR.PARENS.INSUFFICIENT  式の演算子優先規則に制限された依存性が必要です

786

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

787

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

ABV.MEMBER  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

ABV.UNKNOWN_SIZE  バッファオーバーフロー - 配列インデックスが範囲外

CXX.SUSPICIOUS_INDEX_CHECK  境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL  境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  ゼロのインデックスチェック後のインデックスの不審な使用

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

RABV.CHECK  境界チェック前のインデックスの不審な使用

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

788

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

798

CXX.SV.PWD.PLAIN  プレーンな文字列を使用してパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH  15 文字未満の長さでパスワードを設定しようとしています

CXX.SV.PWD.PLAIN.LENGTH.ZERO  ゼロ文字の長さでパスワードを設定しようとしています

HCC  ハードコードされた資格情報の使用

HCC.PWD  ハードコードされたパスワードの使用

HCC.USER  ハードコードされたユーザー名の使用

805

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

CXX.SIZEOF.CSTRING  char* での sizeof の使用は、誤解を招く場合があります

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

806

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

ABV.MEMBER  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

822

SV.TAINTED.CALL.DEREF  未検証ポインターの逆参照

SV.TAINTED.DEREF  未検証ポインターの逆参照

832

CONC.NO_LOCK  変数に欠落しているロック

833

CONC.DL  デッドロック

835

INFINITE_LOOP.GLOBAL  無限ループ

INFINITE_LOOP.LOCAL  無限ループ

INFINITE_LOOP.MACRO  無限ループ

843

MISRA.CAST.OBJ_PTR_TO_INT.2012   オブジェクトを指すポインタと、整数タイプとの間で実行された変換

896

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

SV.TAINTED.ALLOC_SIZE  メモリ割り当て時の未検証の整数の使用

SV.TAINTED.BINOP  バイナリ演算での未検証整数値の使用

SV.TAINTED.CALL.BINOP  バイナリ演算での未検証整数値の使用

SV.TAINTED.CALL.DEREF  未検証ポインターの逆参照

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.CALL.LOOP_BOUND  関数呼び出しのループ条件での未検証の整数の使用

SV.TAINTED.DEREF  未検証ポインターの逆参照

SV.TAINTED.FMTSTR  書式文字列での未検証データの使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

SV.TAINTED.INJECTION  コマンドインジェクション

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

SV.TAINTED.PATH_TRAVERSAL  パストラバーサルでの未検証データの使用

SV.TAINTED.SECURITY_DECISION  セキュリティ決定

SV.TAINTED.XSS.REFLECTED  クロスサイト スクリプティング脆弱性

910

SV.INCORRECT_RESOURCE_HANDLING.URH  安全でないリソース処理

1037

SPECTRE.VARIANT1  予測実行の悪用の可能性

1335

MISRA.SHIFT.RANGE  シフト演算子の右側のオペランドは範囲外 (左側のオペランドの最大ビット長以上か、または負) です

サポートのサマリー:

  • 92 規則

"MISRA"、"MISRA C" および、"MISRA C++" は、The MISRA Consortium Limited の登録商標です。​