DISA STIG バージョン 6 ID (C および C++)

この記事では、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  安全でないクッキー

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 1)

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 の登録商標です。​