Klocwork C および C++ チェッカーにマッピングされた DISA STIG バージョン 6 ID

この記事では、DISA Security Technical Implementation Guide バージョン 6 ID を Klocwork C/C++ チェッカーにマッピングします。DISA STIG の詳細については、STIG Web サイトを参照してください。

規則 チェッカー名と説明
V-222396 [APSC-DV-000160](CAT 2)

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

V-222397 [APSC-DV-000170](CAT 2)

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

V-222425 [APSC-DV-000460](CAT 1)

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

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

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

V-222430 [APSC-DV-000510](CAT 1)

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

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

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

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

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

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

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

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

V-222432 [APSC-DV-000530](CAT 1)

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

V-222511 [APSC-DV-001410](CAT 2)

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

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

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

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

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

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

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

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

V-222536 [APSC-DV-001680](CAT 1)

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

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

V-222542 [APSC-DV-001740](CAT 1)

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

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

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

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

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

V-222543 [APSC-DV-001750](CAT 1)

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

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

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

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

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

V-222551 [APSC-DV-001820](CAT 1)

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

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

V-222554 [APSC-DV-001850](CAT 1)

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

V-222555 [APSC-DV-001860](CAT 1)

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

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

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

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

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

V-222566 [APSC-DV-001980](CAT 2)

RH.LEAK   リソースリーク

V-222567 [APSC-DV-001995](CAT 2)

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

V-222568 [APSC-DV-002000](CAT 2)

RH.LEAK   リソースリーク

V-222571 [APSC-DV-002030](CAT 2)

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

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

V-222572 [APSC-DV-002040](CAT 2)

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

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

V-222577 [APSC-DV-002230](CAT 1)

CXX.SV.INSECURE_COOKIE   安全でない Cookie

V-222578 [APSC-DV-002240](CAT 1)

CXX.SV.PERSISTENT_COOKIE   永続的な Cookie の不正使用

V-222583 [APSC-DV-002290](CAT 2)

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

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

V-222589 [APSC-DV-002350](CAT 2)

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

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

V-222592 [APSC-DV-002380](CAT 2)

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

V-222594 [APSC-DV-002400](CAT 2)

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

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

INFINITE_LOOP.GLOBAL   無限ループ

INFINITE_LOOP.LOCAL   無限ループ

INFINITE_LOOP.MACRO   無限ループ

SV.STR_PAR.UNDESIRED_STRING_PARAMETER   ファイルパスに好ましくない文字列

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

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

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

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

V-222596 [APSC-DV-002440](CAT 1)

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

V-222602 [APSC-DV-002490](CAT 1)

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

V-222604 [APSC-DV-002510](CAT 1)

SV.CODE_INJECTION.SHELL_EXEC   シェル実行へのコマンド挿入

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

SV.DLLPRELOAD.NONABSOLUTE.EXE   プロセス挿入ベクターの可能性

SV.DLLPRELOAD.SEARCHPATH   DLL を探すために SearchPath を使用しない

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

V-222605 [APSC-DV-002520](CAT 2)

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

V-222605 [APSC-DV-002520](CAT 2)

SV.DLLPRELOAD.NONABSOLUTE.EXE   プロセス挿入ベクターの可能性

SV.DLLPRELOAD.SEARCHPATH   DLL を探すために SearchPath を使用しない

V-222606 [APSC-DV-002530](CAT 2)

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.FMTSTR   書式文字列での未検証データの使用

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

SV.TAINTED.INJECTION   コマンド挿入

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

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

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

V-222607 [APSC-DV-002540](CAT 1)

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

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

SV.TAINTED.INJECTION   コマンド挿入

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

V-222608 [APSC-DV-002550](CAT 1)

CXX.SV.XXE   XML ファイルの解析中に外部エンティティを解決しようとすると、XXE 攻撃につながる可能性があります。

V-222609 [APSC-DV-002560](CAT 1)

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

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

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

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

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

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

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

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

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

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

V-222612 [APSC-DV-002590]

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

V-222612 [APSC-DV-002590](CAT 1)

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.UNKNOWN_SIZE   バッファオーバーフロー - 配列インデックスが範囲外

CXX.FUNC.T2OLE.LOOP   ループ内で T2OLE または OLE2CT を呼び出さないでください

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

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

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

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

MISRA.CAST.FLOAT   自明ではない浮動型の式がより幅広い型にキャストされています

MISRA.CAST.FLOAT.WIDER   より幅広い浮動小数点型への浮動小数点式のキャスト

MISRA.CAST.FLOAT_INT   整数型への浮動小数点式のキャスト

MISRA.CAST.FUNC_PTR   関数ポインターと整数型以外の間のキャストです

MISRA.CAST.FUNC_PTR.2012   関数へのポインターと他の非互換型の間で変換が実行されています

MISRA.CAST.FUNC_PTR.CPP   キャストにより関数ポインターがその他のポインター型に変換されます

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012   不完全型へのポインターと他の型の間で変換が実行されています

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

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

MISRA.CAST.INT.WIDER   より幅広い整数型への整数式のキャスト

MISRA.CAST.INT_FLOAT   浮動小数点型への整数式のキャスト

MISRA.CAST.INT_TO_PTR   整数型または void を指すポインターを持つオブジェクトがポインター型にキャストされています

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.POLY.TYPE   多形基本クラスから派生クラスへのキャストです

MISRA.CAST.PTR   オブジェクトタイプを指すあるポインターとオブジェクト タイプを指す別のポインター間のキャストです

MISRA.CAST.PTR.UNRELATED   ポインター型のオブジェクトが関連のない型にキャストされています

MISRA.CAST.PTR.VRCLASS   仮想基本クラスを指すポインターから派生クラスを指すポインターへのキャストでは、'dynamic_cast' を使用しません

MISRA.CAST.PTR_TO_INT   ポインターと整数型の間のキャストです

MISRA.CAST.UNSIGNED_BITS   unsigned char または short でのビット演算の結果が、元の型にキャストバックされていません

MISRA.CAST.VOID_PTR_TO_INT.2012   void へのポインターと算術型の間のキャストです

MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012   void へのポインターとオブジェクトへのポインターの間で変換が実行されています

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

MISRA.UMINUS.UNSIGNED   単項マイナスのオペランドに符号がありません

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

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

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

PRECISION.LOSS   精度の損失

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

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

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

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

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.PRINT_IMPROP_LENGTH   print 関数呼び出しの長さ修飾子の不適切な使用

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

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

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

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

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

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

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

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

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

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

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

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

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

SV.TAINTED.INJECTION   コマンド挿入

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

V-222625 [APSC-DV-002950](CAT 2)

CONC.DL   デッドロック

V-222641 [APSC-DV-003100](CAT 2)

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

V-222642 [APSC-DV-003110](CAT 1)

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

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

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

V-222648 [APSC-DV-003170]

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

V-222648 [APSC-DV-003170](CAT 2)

MISRA.CAST.FUNC_PTR.CPP   キャストにより関数ポインターがその他のポインター型に変換されます

V-222648 [APSC-DV-003170](CAT 2)

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.UNKNOWN_SIZE   バッファオーバーフロー - 配列インデックスが範囲外

CL.MLK   メモリリーク - デストラクター内

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

CL.MLK.VIRTUAL   メモリリーク - デストラクター内での発生の可能性

CXX.FUNC.T2OLE.LOOP   ループ内で T2OLE または OLE2CT を呼び出さないでください

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

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

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

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

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

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

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

INFINITE_LOOP.GLOBAL   無限ループ

INFINITE_LOOP.LOCAL   無限ループ

INFINITE_LOOP.MACRO   無限ループ

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

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

MISRA.CAST.FLOAT   自明ではない浮動型の式がより幅広い型にキャストされています

MISRA.CAST.FLOAT.WIDER   より幅広い浮動小数点型への浮動小数点式のキャスト

MISRA.CAST.FLOAT_INT   整数型への浮動小数点式のキャスト

MISRA.CAST.FUNC_PTR   関数ポインターと整数型以外の間のキャストです

MISRA.CAST.FUNC_PTR.2012   関数へのポインターと他の非互換型の間で変換が実行されています

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012   不完全型へのポインターと他の型の間で変換が実行されています

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

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

MISRA.CAST.INT.WIDER   より幅広い整数型への整数式のキャスト

MISRA.CAST.INT_FLOAT   浮動小数点型への整数式のキャスト

MISRA.CAST.INT_TO_PTR   整数型または void を指すポインターを持つオブジェクトがポインター型にキャストされています

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.POLY.TYPE   多形基本クラスから派生クラスへのキャストです

MISRA.CAST.PTR   オブジェクトタイプを指すあるポインターとオブジェクト タイプを指す別のポインター間のキャストです

MISRA.CAST.PTR.UNRELATED   ポインター型のオブジェクトが関連のない型にキャストされています

MISRA.CAST.PTR.VRCLASS   仮想基本クラスを指すポインターから派生クラスを指すポインターへのキャストでは、'dynamic_cast' を使用しません

MISRA.CAST.PTR_TO_INT   ポインターと整数型の間のキャストです

MISRA.CAST.UNSIGNED_BITS   unsigned char または short でのビット演算の結果が、元の型にキャストバックされていません

MISRA.CAST.VOID_PTR_TO_INT.2012   void へのポインターと算術型の間のキャストです

MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012   void へのポインターとオブジェクトへのポインターの間で変換が実行されています

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

MISRA.UMINUS.UNSIGNED   単項マイナスのオペランドに符号がありません

MLK.MIGHT   メモリリーク - 可能性あり

MLK.MUST   メモリリーク

MLK.RET.MIGHT   メモリリーク - 可能性あり

MLK.RET.MUST   メモリリーク

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

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

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

PRECISION.LOSS   精度の損失

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

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

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

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

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.PRINT_IMPROP_LENGTH   print 関数呼び出しの長さ修飾子の不適切な使用

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

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

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

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

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

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

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

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

SV.STR_PAR.UNDESIRED_STRING_PARAMETER   ファイルパスに好ましくない文字列

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.FMTSTR   書式文字列での未検証データの使用

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

SV.TAINTED.INJECTION   コマンド挿入

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

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

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

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

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

UNUSED.FUNC.GEN   関数が定義されているが、使用されていません

UNUSED.FUNC.WARN   潜在的未使用関数

VA_UNUSED.GEN   割り当て後、値は使用されません

VA_UNUSED.INIT   初期化後、値は使用されません

V-222656 [APSC-DV-003235](CAT 2)

CERT.EXIT.HANDLER_TERMINATE   すべての exit ハンドラーは正常に戻る必要があります

CWARN.PASSBYVALUE.EXC   値によって渡された例外オブジェクトが大きすぎます

CXX.ERRNO.INCORRECTLY_CHECKED    ライブラリ関数を呼び出した後に、errno の条件チェックは不要です

CXX.ERRNO.NOT_CHECKED   ライブラリ関数を呼び出した後に、errno の条件チェックが欠落しています

CXX.ERRNO.NOT_SET   ライブラリ関数を呼び出す前に、errno がゼロにリセットされていません

MISRA.CATCH.ALL   try-catch ブロックに省略記号例外ハンドラーがありません

MISRA.CATCH.BY_VALUE   クラスタイプの例外オブジェクトが値によってキャッチされています

MISRA.CATCH.NOALL   省略記号例外ハンドラーが try-catch ブロックの最後に置かれていません

MISRA.CATCH.WRONGORD   try-catch ブロックでベース例外クラスのハンドラーが派生例外クラスのハンドラーに先行しています

MISRA.DECL.EXCPT.SPEC   異なる例外指定で関数が宣言されています

MISRA.THROW.EMPTY   空のスロー式が catch ブロックに属していません

MISRA.THROW.NULL   NULL が明示的にスローされています

MISRA.THROW.PTR   例外オブジェクトがポインターになっています

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

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

SV.RVT.RETVAL_NOTTESTED   戻り値の無視

V-222662 [APSC-DV-003280](CAT 1)

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

V-222667 [APSC-DV-003320](CAT 2)

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

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

INFINITE_LOOP.GLOBAL   無限ループ

INFINITE_LOOP.LOCAL   無限ループ

INFINITE_LOOP.MACRO   無限ループ

SV.STR_PAR.UNDESIRED_STRING_PARAMETER   ファイルパスに好ましくない文字列

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

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

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

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

V-265634 [APSC-DV-002010](CAT 2)

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

RCA.HASH.SALT.EMPTY   空のソルトを持つ一方向性ハッシュの使用

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

サポートのサマリー:

  • 28 個の規則

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