ABV.ANY_SIZE_ARRAY
|
缓冲区溢出 — 数组索引超出边界 |
1 |
False |
2020.1 之前 |
ABV.GENERAL
|
缓冲区溢出 — 数组索引超出边界 |
1 |
True |
2020.1 之前 |
ABV.GENERAL.MULTIDIMENSION
|
缓冲区溢出 — 数组索引超出边界 |
1 |
True |
2022.3 |
ABV.ITERATOR
|
缓冲区溢出 — 数组索引可能超出边界 |
1 |
True |
2020.1 之前 |
ABV.MEMBER
|
缓冲区溢出 — 数组索引超出边界 |
1 |
True |
2020.1 之前 |
ABV.STACK
|
缓冲区溢出 — 局部数组索引超出边界 |
1 |
True |
2020.1 之前 |
ABV.TAINTED
|
因未经验证的输入而导致缓冲区溢出 |
1 |
True |
2020.1 之前 |
ABV.UNICODE.BOUND_MAP
|
映射特征函数中出现缓冲区溢出 |
1 |
False |
2020.1 之前 |
ABV.UNICODE.FAILED_MAP
|
映射函数失败 |
1 |
False |
2020.1 之前 |
ABV.UNICODE.NNTS_MAP
|
映射特征函数中出现缓冲区溢出 |
1 |
False |
2020.1 之前 |
ABV.UNICODE.SELF_MAP
|
映射函数失败 |
1 |
False |
2020.1 之前 |
ABV.UNKNOWN_SIZE
|
缓冲区溢出 — 数组索引超出边界 |
1 |
True |
2020.1 之前 |
ASSIGCOND.CALL
|
条件语句中的赋值(调用) |
3 |
False |
2020.1 之前 |
ASSIGCOND.GEN
|
条件语句中的赋值 |
3 |
False |
2020.1 之前 |
BSTR.CAST.C
|
转换为 BSTR 的 C 样式类型 |
4 |
False |
2020.1 之前 |
BSTR.CAST.CPP
|
转换为 BSTR 的 C++ 样式类型 |
4 |
False |
2020.1 之前 |
BSTR.FUNC.ALLOC
|
对 BSTR 分配函数的错误调用 |
4 |
False |
2020.1 之前 |
BSTR.FUNC.FREE
|
对 BSTR 释放函数的错误调用 |
4 |
False |
2020.1 之前 |
BSTR.FUNC.LEN
|
尝试使用 BSTR 相关函数获取非 BSTR 字符串的长度 |
4 |
False |
2020.1 之前 |
BSTR.FUNC.REALLOC
|
对 BSTR 重新分配函数的错误调用 |
4 |
False |
2020.1 之前 |
BSTR.IA.ASSIGN
|
BSTR 变量分配到非 BSTR 值 |
4 |
False |
2020.1 之前 |
BSTR.IA.INIT
|
BSTR 变量使用非 BSTR 值初始化 |
4 |
False |
2020.1 之前 |
BSTR.OPS.ARITHM
|
采用 BSTR 值进行了非法算术运算 |
4 |
False |
2020.1 之前 |
BSTR.OPS.COMP
|
非法比较 BSTR 值 |
4 |
False |
2020.1 之前 |
BSTR.OPS.EQS
|
非法相等比较 BSTR 值 |
4 |
False |
2020.1 之前 |
BYTEORDER.HTON.SEND
|
缺少从主机到网络字节顺序的转换 |
3 |
False |
2020.1 之前 |
BYTEORDER.HTON.WRITE
|
缺少从主机到网络字节顺序的转换 |
3 |
False |
2020.1 之前 |
BYTEORDER.NTOH.READ
|
缺少从网络到主机字节顺序的转换 |
3 |
False |
2020.1 之前 |
BYTEORDER.NTOH.RECV
|
缺少从网络到主机字节顺序的转换 |
3 |
False |
2020.1 之前 |
CERT.ARR.PTR.ARITH
|
指针用于算术表达式 |
4 |
False |
2022.3 |
CERT.CONC.ATOMIC_TWICE_EXPR
|
不要在表达式中重复引用原子变量 |
4 |
False |
2022.3 |
CERT.EXIT.HANDLER_TERMINATE
|
所有退出处理程序必须正常返回 |
2 |
False |
2022.2 |
CERT.EXPR.PARENS
|
应将运算符在表达式中的优先级设置为显式。 |
4 |
False |
2022.1 |
CERT.FILE_PTR.DEREF
|
不应取消引用指向 FILE 对象的指针 |
4 |
False |
2022.1 |
CERT.FILE_PTR.DEREF.CAST
|
对象被转换为 FILE 指针,并且不应取消引用该对象 |
4 |
False |
2022.1 |
CERT.FILE_PTR.DEREF.INDIRECT
|
系统函数不应间接取消引用指向 FILE 对象的指针 |
4 |
False |
2022.1 |
CERT.FILE_PTR.DEREF.RETURN
|
不应取消引用指向 FILE 对象(由函数返回)的指针 |
4 |
False |
2022.1 |
CERT.FIO.NO_FLUSH
|
缺少刷新或定位函数调用 |
3 |
False |
2022.2 |
CERT.FSETPOS.VALUE
|
仅为 fsetpos() 使用从 fgetpos() 返回的值 |
3 |
False |
2022.2 |
CERT.MEMCMP.FLOAT_MEMBER
|
当成员为浮点时不进行比较 |
4 |
False |
2021.3 |
CERT.MEMCMP.PADDED_DATA
|
不要比较填充数据 |
4 |
False |
2021.3 |
CERT.OOP.CTOR.VIRTUAL_FUNC
|
请勿从构造函数或析构函数调用虚拟函数 |
4 |
False |
2022.1 |
CERT.PUTENV.AUTO_VARIABLE
|
不要使用指向自动变量的指针作为参数来调用 putenv() |
4 |
False |
2022.1 |
CERT.STDLIB.SIGNAL
|
不得从计算异常信号处理程序返回 |
4 |
False |
2022.2 |
CERT.VA_ARG.TYPE
|
不要通过类型错误的参数来调用 va_arg |
4 |
False |
2022.2 |
CERT.VA_START.TYPE
|
将类型正确的对象传递给 va_start |
4 |
False |
2022.2 |
CL.ASSIGN.NON_CONST_ARG
|
赋值运算符声明了非常量引用自变量 |
4 |
True |
2020.1 之前 |
CL.ASSIGN.RETURN_CONST
|
赋值运算符返回常量引用 |
4 |
True |
2020.1 之前 |
CL.ASSIGN.VOID
|
赋值运算符返回虚值 |
4 |
True |
2020.1 之前 |
CL.FFM.ASSIGN
|
使用了释放内存(双重释放)- 无赋值 (=) 运算 |
3 |
True |
2020.1 之前 |
CL.FFM.COPY
|
使用了释放内存(双重释放)- 无复制构造函数 |
3 |
True |
2020.1 之前 |
CL.FMM
|
释放不匹配内存 - 在析构函数中 |
3 |
True |
2020.1 之前 |
CL.MLK
|
内存泄漏 - 在析构函数中 |
3 |
True |
2020.1 之前 |
CL.MLK.ASSIGN
|
内存泄漏 - 在赋值运算符中 |
3 |
True |
2020.1 之前 |
CL.MLK.VIRTUAL
|
内存泄漏 - 可能在析构函数中 |
2 |
True |
2020.1 之前 |
CL.SELF-ASSIGN
|
使用了释放内存(双重释放)- 在赋值 (=) 运算中 |
2 |
True |
2020.1 之前 |
CL.SHALLOW.ASSIGN
|
使用了释放内存(双重释放)- 在赋值 (=) 运算中进行浅层复制 |
2 |
True |
2020.1 之前 |
CL.SHALLOW.COPY
|
使用了释放内存(双重释放)- 在复制构造函数中进行浅层复制 |
2 |
True |
2020.1 之前 |
CONC.DBL_LOCK
|
双重锁定 |
2 |
False |
2021.2 |
CONC.DBL_UNLOCK
|
双重解锁 |
2 |
False |
2021.2 |
CONC.DL
|
死锁 |
2 |
False |
2020.1 之前 |
CONC.NO_LOCK
|
缺少变量锁定 |
2 |
False |
2021.2 |
CONC.NO_UNLOCK
|
缺少变量解锁 |
2 |
True |
2022.3 |
CONC.SLEEP
|
函数可能在关键部分被阻止 |
3 |
True |
2022.3 |
CWARN.ALIGNMENT
|
使用了不正确的指针缩放 |
4 |
True |
2020.1 之前 |
CWARN.BAD.PTR.ARITH
|
指针算术运算错误 |
4 |
False |
2020.1 之前 |
CWARN.BITOP.SIZE
|
位运算符中不同大小的操作数 |
4 |
True |
2020.3 |
CWARN.BOOLOP.INC
|
布尔值递增或递减 |
4 |
True |
2020.1 之前 |
CWARN.CAST.VIRTUAL_INHERITANCE
|
从指向含虚拟方法的对象的指针到指向其派生类的指针的 C 样式转换 |
4 |
False |
2020.1 之前 |
CWARN.CMPCHR.EOF
|
“char”表达式与 EOF 常量进行比较 |
4 |
False |
2020.1 之前 |
CWARN.CONSTCOND.DO
|
“do”控制表达式为常量 |
4 |
False |
2020.1 之前 |
CWARN.CONSTCOND.IF
|
“if”控制表达式为常量 |
4 |
False |
2020.1 之前 |
CWARN.CONSTCOND.SWITCH
|
“Switch”选择器表达式为常量 |
4 |
False |
2020.1 之前 |
CWARN.CONSTCOND.TERNARY
|
条件表达式中的控制条件为常量 |
4 |
False |
2020.1 之前 |
CWARN.CONSTCOND.WHILE
|
“while”控制表达式为常量 |
4 |
False |
2020.1 之前 |
CWARN.COPY.NOASSIGN
|
类定义复制构造函数,但未定义赋值运算符 |
4 |
False |
2020.1 之前 |
CWARN.DTOR.NONVIRT.DELETE
|
删除含虚拟方法且无虚拟析构函数的类中对象的表达式 |
2 |
True |
2020.1 之前 |
CWARN.DTOR.NONVIRT.NOTEMPTY
|
类具有继承自基本类的虚拟函数,但其析构函数不为虚拟和空 |
2 |
True |
2020.1 之前 |
CWARN.DTOR.VOIDPTR
|
删除类型为“指向 void 的指针”的对象的表达式 |
3 |
True |
2020.1 之前 |
CWARN.EMPTY.LABEL
|
空标签语句 |
4 |
False |
2020.1 之前 |
CWARN.EMPTY.TYPEDEF
|
缺少 typedef 名称 |
4 |
False |
2020.1 之前 |
CWARN.FUNCADDR
|
使用函数地址替代此函数的调用 |
2 |
False |
2020.1 之前 |
CWARN.HIDDEN.PARAM
|
参数被局部变量隐藏 |
4 |
False |
2020.1 之前 |
CWARN.IMPLICITINT
|
过时的“implicit int” |
4 |
False |
2023.4 |
CWARN.INCL.ABSOLUTE
|
绝对路径用于 include 指令中 |
4 |
False |
2020.1 之前 |
CWARN.INCL.NO_INTERFACE
|
源文件不包含其接口标题 |
4 |
False |
2020.1 之前 |
CWARN.INLINE.NONFUNC
|
inline 与非函数一起使用 |
4 |
False |
2020.1 之前 |
CWARN.MEMBER.INIT.ORDER
|
初始化列表中的成员没有按在类中的声明顺序列出 |
4 |
False |
2020.1 之前 |
CWARN.MEM.NONPOD
|
内存操作例程应用于非 POD 对象 |
4 |
True |
2020.1 之前 |
CWARN.MEMSET.SIZEOF.PTR
|
为应用于指针的 sizeof 调用了 memset 类型函数 |
4 |
False |
2020.1 之前 |
CWARN.MOVE.CONST
|
常量值用作 std::move 的参数 |
4 |
True |
2020.1 |
CWARN.NOEFFECT.OUTOFRANGE
|
值超出范围 |
3 |
False |
2020.1 之前 |
CWARN.NOEFFECT.SELF_ASSIGN
|
变量赋值到本身 |
4 |
False |
2020.1 之前 |
CWARN.NOEFFECT.UCMP.GE
|
无符号值与 0 的比较始终为 true |
4 |
True |
2020.1 之前 |
CWARN.NOEFFECT.UCMP.GE.MACRO
|
宏中无符号值与 0 的比较始终为 true |
4 |
False |
2020.1 之前 |
CWARN.NOEFFECT.UCMP.LT
|
无符号值与 0 的比较始终为 false |
4 |
True |
2020.1 之前 |
CWARN.NOEFFECT.UCMP.LT.MACRO
|
宏中无符号值与 0 的比较始终为 false |
4 |
False |
2020.1 之前 |
CWARN.NULLCHECK.FUNCNAME
|
函数地址直接与 0 比较 |
4 |
True |
2020.1 之前 |
CWARN.OVERRIDE.CONST
|
由于 const 限定符不匹配,函数重写失败 |
4 |
True |
2020.1 之前 |
CWARN.PACKED.TYPEDEF
|
属性“packed”在 typedef 中被忽略 |
4 |
False |
2020.1 之前 |
CWARN.PASSBYVALUE.ARG
|
由值传递的函数参数过大 |
4 |
False |
2020.1 之前 |
CWARN.PASSBYVALUE.EXC
|
由值传递的异常对象过大 |
4 |
False |
2020.1 之前 |
CWARN.RET.MAIN
|
main 返回错误类型 |
4 |
True |
2020.1 之前 |
CWARN.SIGNEDBIT
|
有符号的一位字段 |
4 |
True |
2020.1 之前 |
CXX.BITOP.BOOL_OPERAND
|
潜在的逻辑错误:布尔表达式不应直接用作位运算符参数。可考虑改为使用
逻辑运算符。
|
4 |
False |
2021.1 |
CXX.BITOP.NON_CONST_OPERAND
|
位运算符只能应用于常数 |
4 |
False |
2021.1 |
CXX.CAST.OBJ_PTR_TO_OBJ_PTR
|
指向对象类型的指针与指向不同对象类型的指针之间的转换 |
4 |
False |
2021.3 |
CXX.CAST.SIGNED_CHAR_TO_INTEGER
|
在将字符型转换为更大的整型大小之前,先将其转换为无符号字符型 |
4 |
False |
2021.3 |
CXX.DIFF.WIDTH.STR_AND_FUNC
|
在调用函数时窄和宽字符串之间的隐式转换 |
4 |
False |
2021.3 |
CXX.ERRNO.INCORRECTLY_CHECKED
|
调用库函数后不需要进行 Errno 条件检查 |
3 |
False |
2021.2 |
CXX.ERRNO.NOT_CHECKED
|
调用库函数后缺少 Errno 条件检查 |
3 |
False |
2021.2 |
CXX.ERRNO.NOT_SET
|
调用库函数前 Errno 未重置为零 |
3 |
False |
2021.2 |
CXX.ID_VIS.GLOBAL_VARIABLE.EXTERN
|
外部全局变量的可见范围太宽 |
4 |
False |
2020.1 之前 |
CXX.ID_VIS.GLOBAL_VARIABLE.STATIC
|
静态全局变量的可见范围太宽 |
4 |
False |
2020.1 之前 |
CXX.INT_TO_FLOAT.CONV
|
在算术运算中使用隐式转换 |
4 |
False |
2021.2 |
CXX.LOGICAL_OP.INT_OPERAND
|
潜在的逻辑错误:整型表达式不应直接用作逻辑运算符操作数。应改为使用
布尔表达式。
|
4 |
False |
2021.1 |
CXX.LOGICAL_OP.NON_BOOL_CONSTANT
|
逻辑运算符不应直接应用于常数 |
4 |
False |
2021.1 |
CXX.OVERWRITE_CONST_CHAR
|
尝试覆盖常数字符串 |
3 |
False |
2021.1 |
CXX.POSSIBLE_COPY_PASTE.FSTRING.APPEND_SAME_STRING
|
潜在的复制粘贴错误:同一 FString 附加了两次 |
4 |
False |
2021.1 |
CXX.POSSIBLE_COPY_PASTE.LOGICAL_OP.CMP_SAME_OBJECT
|
潜在的复制粘贴错误:对象不应与自身进行逻辑上的对比 |
4 |
False |
2021.1 |
CXX.POSSIBLE_COPY_PASTE.TERNARY_OP
|
在三元运算符的 'then' 和 'else' 分支中可能存在复制粘贴操作 |
4 |
False |
2021.1 |
CXX.SQL.INJECT
|
SQL 注入 |
2 |
False |
2021.2 |
CXX.STDLIB.ILLEGAL_REUSE
|
在对标准库函数 asctime 和类似函数的后续调用之后不应使用由同一函数
返回的指针
|
4 |
False |
2021.3 |
CXX.STDLIB.ILLEGAL_WRITE
|
只有在标准库函数 localeconv、getenv、setlocale 或 strerror 具有指向常量限定类型的指针时,才能使用
由这些函数返回的指针
|
4 |
False |
2021.3 |
CXX.SUSPICIOUS_INDEX_CHECK
|
在进行边界检查后对索引进行可疑的使用 |
1 |
False |
2023.4 |
CXX.SUSPICIOUS_INDEX_CHECK.CALL
|
在进行边界检查后对函数调用中的索引进行可疑的使用 |
1 |
False |
2023.4 |
CXX.SUSPICIOUS_INDEX_CHECK.ZERO
|
在进行针对零的索引检查后对索引进行可疑的使用 |
1 |
False |
2023.4 |
CXX.SV.INSECURE_COOKIE
|
不安全的 Cookie |
4 |
False |
2023.1 |
CXX.SV.PERSISTENT_COOKIE
|
非法使用永久性 Cookie |
4 |
False |
2023.1 |
CXX.SV.PRIVATE_KEY.EMPTY_PASSWD
|
尝试以未经授权的方式序列化私钥 |
3 |
False |
2023.2 |
CXX.SV.PRIVATE_KEY.UNENCRYPTED
|
尝试以未经授权的方式序列化私钥 |
3 |
False |
2023.2 |
CXX.SV.PWD.PLAIN
|
尝试使用纯文本字符串设置密码 |
2 |
False |
2023.2 |
CXX.SV.PWD.PLAIN.LENGTH
|
尝试设置字符长度小于 15 的密码 |
3 |
False |
2023.2 |
CXX.SV.PWD.PLAIN.LENGTH.ZERO
|
尝试设置字符长度为 0 的密码 |
3 |
False |
2023.2 |
CXX.SV.PWD_INPUT.REVIEW
|
应通过检查密码验证来阻止暴力破解攻击。 |
4 |
False |
2023.2 |
CXX.SV.XXE
|
在解析 XML 文件时试图解析外部实体可能导致 XXE 攻击 |
4 |
False |
2023.1 |
DBZ.CONST
|
出现零常量为除数的情况 |
1 |
False |
2020.2 |
DBZ.CONST.CALL
|
值“0”被传递到可将此值用作除数的函数 |
1 |
False |
2020.1 之前 |
DBZ.GENERAL
|
可能出现零为除数的情况 |
1 |
False |
2023.3 |
DBZ.ITERATOR
|
循环迭代器中可能出现零为除数的情况 |
1 |
False |
2020.1 之前 |
DBZ.ITERATOR.CALL
|
函数调用中可能出现除以零的情况 |
1 |
False |
2020.1 之前 |
EFFECT
|
语句无效 |
4 |
False |
2020.1 之前 |
FMM.MIGHT
|
可能释放不匹配内存 |
2 |
True |
2020.1 之前 |
FMM.MUST
|
释放不匹配内存 |
1 |
True |
2020.1 之前 |
FNH.MIGHT
|
可能释放非堆内存 |
1 |
True |
2020.1 之前 |
FNH.MUST
|
释放非堆内存 |
2 |
True |
2020.1 之前 |
FREE.INCONSISTENT
|
内存释放不一致 |
3 |
False |
2020.1 之前 |
FUM.GEN.MIGHT
|
可能释放未分配内存 |
1 |
True |
2020.1 之前 |
FUM.GEN.MUST
|
释放未分配内存 |
1 |
True |
2020.1 之前 |
FUNCRET.GEN
|
非 void 函数未返回值 |
1 |
True |
2020.1 之前 |
FUNCRET.IMPLICIT
|
隐式返回 int 的非 void 函数未返回值 |
2 |
True |
2020.1 之前 |
HCC
|
使用硬编码凭据 |
2 |
True |
2020.1 之前 |
HCC.PWD
|
使用硬编码密码 |
2 |
True |
2020.1 之前 |
HCC.USER
|
使用硬编码用户名 |
2 |
True |
2020.1 之前 |
INCONSISTENT.LABEL
|
案例标签不一致 |
4 |
True |
2020.1 之前 |
INCORRECT.ALLOC_SIZE
|
不正确的分配大小 |
3 |
True |
2020.1 之前 |
INFINITE_LOOP.GLOBAL
|
无限循环 |
2 |
False |
2020.1 之前 |
INFINITE_LOOP.LOCAL
|
无限循环 |
2 |
True |
2020.1 之前 |
INFINITE_LOOP.MACRO
|
无限循环 |
2 |
False |
2020.1 之前 |
INVARIANT_CONDITION.GEN
|
条件中的不变表达式 |
3 |
False |
2020.1 |
INVARIANT_CONDITION.UNREACH
|
条件中的不变表达式 |
3 |
False |
2020.1 之前 |
ITER.CONTAINER.MODIFIED
|
使用了无效迭代器 |
3 |
True |
2020.1 之前 |
ITER.END.DEREF.MIGHT
|
取消引用“末端”迭代器 |
3 |
True |
2020.1 之前 |
ITER.END.DEREF.MUST
|
取消引用“末端”迭代器 |
3 |
True |
2020.1 之前 |
ITER.INAPPROPRIATE
|
使用含有不适当的容器对象的迭代器 |
4 |
True |
2020.1 之前 |
ITER.INAPPROPRIATE.MULTIPLE
|
使用含有不适当的容器对象的迭代器 |
4 |
True |
2020.1 之前 |
LA_UNUSED
|
未使用标签 |
4 |
False |
2020.1 之前 |
LOCRET.ARG
|
函数返回局部变量的地址 |
1 |
True |
2020.1 之前 |
LOCRET.GLOB
|
函数返回局部变量的地址 |
1 |
True |
2020.1 之前 |
LOCRET.RET
|
函数返回局部变量的地址 |
1 |
True |
2020.1 之前 |
LS.CALL
|
GUI 函数中非本地化字符串的可疑使用 |
3 |
False |
2020.1 之前 |
LS.CALL.STRING
|
GUI 函数中非本地化字符串的可疑使用 |
3 |
False |
2020.1 之前 |
LV_UNUSED.GEN
|
未使用局部变量 |
4 |
False |
2020.3 |
MLK.MIGHT
|
内存可能泄漏 |
2 |
True |
2020.1 之前 |
MLK.MUST
|
内存泄漏 |
2 |
True |
2020.1 |
MLK.RET.MIGHT
|
内存可能泄漏 |
2 |
False |
2020.1 之前 |
MLK.RET.MUST
|
内存泄漏 |
2 |
True |
2020.1 之前 |
NNTS.MIGHT
|
缓冲区溢出 - 非 null 结尾字符串 |
1 |
True |
2020.1 之前 |
NNTS.MUST
|
缓冲区溢出 - 非 null 结尾字符串 |
1 |
True |
2020.1 之前 |
NNTS.TAINTED
|
未经验证的用户输入导致缓冲区溢出 - 非 Null 结尾的字符串 |
1 |
True |
2020.1 之前 |
NPD.CHECK.CALL.MIGHT
|
在对指针主动进行 NULL 检查后,指针可能被传递给可将其取消引用的函数 |
1 |
True |
2020.1 之前 |
NPD.CHECK.CALL.MUST
|
在对指针主动进行 NULL 检查后,指针将被传递给可能将其取消引用的函数 |
1 |
True |
2020.1 之前 |
NPD.CHECK.MIGHT
|
在对指针主动进行 NULL 检查后,指针可能被取消引用 |
1 |
True |
2020.1 之前 |
NPD.CHECK.MUST
|
在对指针主动进行 NULL 检查后,指针将被取消引用 |
1 |
True |
2020.1 之前 |
NPD.CONST.CALL
|
NULL 将被传递给可将其取消引用的函数 |
1 |
False |
2020.1 之前 |
NPD.CONST.DEREF
|
NULL 已被取消引用 |
1 |
False |
2020.1 之前 |
NPD.FUNC.CALL.MIGHT
|
对于可能返回 NULL 的函数,其结果可能被传递给可能将其取消引用的其他函数 |
1 |
False |
2020.1 之前 |
NPD.FUNC.CALL.MUST
|
对于可能返回 NULL 的函数,其结果将被传递给可能将其取消引用的其他函数 |
1 |
False |
2020.1 之前 |
NPD.FUNC.MIGHT
|
对于可能返回 NULL 的函数,其结果可能被取消引用 |
1 |
True |
2020.1 之前 |
NPD.FUNC.MUST
|
对于可能返回 NULL 的函数,其结果将被取消引用 |
1 |
True |
2020.1 之前 |
NPD.GEN.CALL.MIGHT
|
Null 指针可能被传递给可能将其取消引用的函数 |
1 |
True |
2020.1 之前 |
NPD.GEN.CALL.MUST
|
Null 指针将被传递给可能将其取消引用的函数 |
1 |
True |
2020.1 之前 |
NPD.GEN.MIGHT
|
Null 指针可能被取消引用 |
1 |
True |
2020.1 之前 |
NPD.GEN.MUST
|
Null 指针将被取消引用 |
1 |
True |
2020.1 之前 |
NUM.OVERFLOW
|
可能溢出 |
3 |
False |
2020.1 之前 |
NUM.OVERFLOW.DF
|
可能的数值溢出或环绕 |
3 |
False |
2022.3 |
PORTING.BITFIELDS
|
在结构中使用了位域 |
4 |
False |
2020.1 之前 |
PORTING.BSWAP.MACRO
|
在不进行字节顺序检查的情况下使用了自定义字节交换宏 |
4 |
False |
2020.1 之前 |
PORTING.BYTEORDER.SIZE
|
对“ntohl”等网络宏使用了不兼容的类型 |
4 |
False |
2020.1 之前 |
PORTING.CAST.FLTPNT
|
将浮点表达式转换为非浮点类型 |
4 |
False |
2020.1 之前 |
PORTING.CAST.PTR
|
并非都为指针或都不为指针类型之间的转换 |
4 |
False |
2020.1 之前 |
PORTING.CAST.PTR.FLTPNT
|
将浮点表达式的指针转换为非浮点类型指针 |
4 |
False |
2020.1 之前 |
PORTING.CAST.PTR.SIZE
|
尝试将表达式转换为可能大小不兼容的类型 |
4 |
False |
2020.1 之前 |
PORTING.CAST.SIZE
|
表达式被转换为可能大小不同的类型 |
4 |
False |
2020.1 之前 |
PORTING.CMPSPEC.EFFECTS.ASSIGNMENT
|
函数参数中的分配 |
4 |
False |
2020.1 之前 |
PORTING.CMPSPEC.TYPE.BOOL
|
对布尔型的赋值大于 1 字节 |
4 |
False |
2020.1 之前 |
PORTING.CMPSPEC.TYPE.LONGLONG
|
使用“long long” |
4 |
False |
2020.1 之前 |
PORTING.MACRO.NUMTYPE
|
使用了描述内建数字型的宏 |
4 |
False |
2020.1 之前 |
PORTING.OPTS
|
使用了编译器相关选项 |
4 |
False |
2020.1 之前 |
PORTING.PRAGMA.ALIGN
|
#pragma align 的使用情况 |
4 |
False |
2020.1 之前 |
PORTING.PRAGMA.PACK
|
#pragma pack 的使用情况 |
4 |
False |
2020.1 之前 |
PORTING.SIGNED.CHAR
|
使用了“char”但没有明确指定符号规范 |
4 |
False |
2020.1 之前 |
PORTING.STORAGE.STRUCT
|
结构中元素的字节位置可能取决于对齐和封装属性。 |
4 |
False |
2020.1 之前 |
PORTING.STRUCT.BOOL
|
结构/类存在布尔型成员 |
4 |
False |
2020.1 之前 |
PORTING.UNIONS
|
封闭结构/封闭类/其他联合中使用了联合 |
4 |
False |
2020.1 之前 |
PORTING.UNSIGNEDCHAR.OVERFLOW.FALSE
|
关系表达式可能始终为 false,具体取决于“char”类型符号规范 |
4 |
False |
2020.1 之前 |
PORTING.UNSIGNEDCHAR.OVERFLOW.TRUE
|
关系表达式可能始终为 true,具体取决于“char”类型符号规范 |
4 |
False |
2020.1 之前 |
PORTING.UNSIGNEDCHAR.RELOP
|
明确有符号/无符号的字符型以及没有符号规范的字符型之间使用了关系运算 |
4 |
False |
2020.1 之前 |
PORTING.VAR.EFFECTS
|
变量在一个表达式中使用了两次,且其中一次会产生副作用 |
4 |
False |
2020.1 之前 |
PRECISION.LOSS
|
出现精度损失 |
4 |
False |
2020.1 之前 |
PRECISION.LOSS.CALL
|
在函数调用期间出现精度损失 |
4 |
False |
2020.1 之前 |
PRECISION.LOSS.INIT
|
初始化期间出现精度丢失 |
4 |
False |
2023.3 |
RABV.CHECK
|
在进行边界检查前对索引进行可疑的使用 |
1 |
True |
2020.1 之前 |
RCA
|
使用了有风险的密码算法 |
2 |
True |
2020.1 之前 |
RCA.HASH.SALT.EMPTY
|
在 salt 为空的情况下使用单向哈希 |
2 |
True |
2020.1 之前 |
RETVOID.GEN
|
非虚函数返回虚值 |
2 |
True |
2020.1 之前 |
RETVOID.IMPLICIT
|
隐式 int 函数返回虚值 |
2 |
True |
2020.1 之前 |
RH.LEAK
|
资源泄露 |
2 |
True |
2020.1 |
RN.INDEX
|
在进行负值检查前对索引进行可疑的使用 |
1 |
True |
2020.1 之前 |
RNPD.CALL
|
在 NULL 检查前对函数调用中的指针进行可疑的取消引用 |
1 |
True |
2020.1 之前 |
RNPD.DEREF
|
在 NULL 检查前对指针进行可疑的取消引用 |
1 |
True |
2020.1 之前 |
SEMICOL
|
可能放错位置的分号 |
4 |
False |
2020.1 之前 |
SPECTRE.VARIANT1
|
预测执行的可能利用 |
3 |
False |
2020.1 之前 |
STRONG.TYPE.ASSIGN
|
赋值未遵循强类型指定 |
4 |
False |
2020.1 之前 |
STRONG.TYPE.ASSIGN.ARG
|
赋值未遵循强类型指定 |
4 |
False |
2020.1 之前 |
STRONG.TYPE.ASSIGN.CONST
|
赋值未遵循强类型指定 |
4 |
False |
2022.4 |
STRONG.TYPE.ASSIGN.INIT
|
赋值未遵循强类型指定 |
4 |
False |
2020.3 |
STRONG.TYPE.ASSIGN.RETURN
|
赋值未遵循强类型指定 |
4 |
False |
2020.3 |
STRONG.TYPE.ASSIGN.ZERO
|
赋值未遵循强类型指定 |
4 |
False |
2020.1 之前 |
STRONG.TYPE.EXTRACT
|
赋值未遵循强类型指定 |
4 |
False |
2020.1 之前 |
STRONG.TYPE.JOIN.CMP
|
与二进制运算符的结合未遵循强类型指定 |
4 |
False |
2020.1 之前 |
STRONG.TYPE.JOIN.CONST
|
与二进制运算符的结合未遵循强类型指定 |
4 |
False |
2020.1 |
STRONG.TYPE.JOIN.EQ
|
与二进制运算符的结合未遵循强类型指定 |
4 |
False |
2020.1 之前 |
STRONG.TYPE.JOIN.OTHER
|
与二进制运算符的结合未遵循强类型指定 |
4 |
False |
2020.1 之前 |
STRONG.TYPE.JOIN.ZERO
|
与二进制运算符的结合未遵循强类型指定 |
4 |
False |
2020.1 |
SV.BANNED.RECOMMENDED.ALLOCA
|
已禁用的建议的 API:堆栈分配函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.RECOMMENDED.NUMERIC
|
已禁用的建议的 API:不安全的数值转换函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.RECOMMENDED.OEM
|
已禁用的建议的 API:OEM 字符页面转换函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.RECOMMENDED.PATH
|
已禁用的建议的 API:不安全的路径名称操作函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.RECOMMENDED.SCANF
|
已禁用的建议的 API:不安全的 scanf 类型函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.RECOMMENDED.SPRINTF
|
已禁用的建议的 API:不安全的 sprintf 类型函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.RECOMMENDED.STRLEN
|
已禁用的建议的 API:不安全的字符串长度函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.RECOMMENDED.TOKEN
|
已禁用的建议的 API:不安全的字符串令牌化函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.RECOMMENDED.WINDOW
|
已禁用的建议的 API:不安全的窗口函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.REQUIRED.CONCAT
|
已禁用的建议的 API:不安全的字符串串联函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.REQUIRED.COPY
|
已禁用的建议的 API:不安全的缓冲区复制函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.REQUIRED.GETS
|
已禁用的建议的 API:不安全的流读取函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.REQUIRED.ISBAD
|
已禁用的所需的 API:IsBad 类型函数 |
4 |
False |
2020.1 之前 |
SV.BANNED.REQUIRED.SPRINTF
|
已禁用的所需的 API:不安全的 sprintf 类型函数 |
4 |
False |
2020.1 之前 |
SV.BFC.USING_STRUCT
|
在 struct sockaddr_in 结构的 sin_addr.s_addr 字段中使用 INADDR_ANY 来调用 bind 函数 |
4 |
False |
2020.1 之前 |
SV.BRM.HKEY_LOCAL_MACHINE
|
HKEY_LOCAL_MACHINE 被用作注册表操作函数的“hkey”参数 |
4 |
False |
2020.1 之前 |
SV.CODE_INJECTION.SHELL_EXEC
|
命令注入 shell 执行 |
3 |
False |
2020.1 之前 |
SV.DLLPRELOAD.NONABSOLUTE.DLL
|
潜在的 DLL 预加载劫持载体 |
2 |
False |
2020.1 之前 |
SV.DLLPRELOAD.NONABSOLUTE.EXE
|
潜在进程注入矢量 |
2 |
False |
2020.1 之前 |
SV.DLLPRELOAD.SEARCHPATH
|
不要使用 SearchPath 查找 DLL |
2 |
False |
2020.1 之前 |
SV.FIU.PROCESS_VARIANTS
|
使用危险的进程创建 |
4 |
False |
2020.1 之前 |
SV.FMTSTR.GENERIC
|
格式字符串漏洞 |
1 |
False |
2020.1 之前 |
SV.FMT_STR.BAD_SCAN_FORMAT
|
输入格式说明符错误 |
2 |
True |
2020.1 之前 |
SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD
|
打印函数参数的不兼容类型 |
2 |
True |
2020.1 之前 |
SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED
|
打印函数参数的非预期类型 |
4 |
True |
2020.1 之前 |
SV.FMT_STR.PRINT_IMPROP_LENGTH
|
打印函数调用中的长度修饰符使用不当 |
2 |
True |
2020.1 之前 |
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW
|
打印函数调用中的自变量过少 |
2 |
True |
2020.1 之前 |
SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY
|
打印函数调用中的自变量过多 |
2 |
True |
2020.1 之前 |
SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD
|
扫描函数参数的不兼容类型 |
2 |
True |
2020.1 之前 |
SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED
|
扫描函数参数的非预期类型 |
2 |
True |
2021.4 |
SV.FMT_STR.SCAN_IMPROP_LENGTH
|
扫描函数调用中的长度修饰符使用不当 |
2 |
True |
2020.1 之前 |
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW
|
扫描函数调用中的自变量过少 |
2 |
True |
2020.1 之前 |
SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY
|
扫描函数调用中的自变量过多 |
2 |
True |
2020.1 之前 |
SV.FMT_STR.UNKWN_FORMAT
|
打印函数调用中存在未知格式说明符 |
3 |
True |
2020.1 之前 |
SV.FMT_STR.UNKWN_FORMAT.SCAN
|
扫描函数调用中存在未知格式说明符 |
3 |
True |
2020.1 之前 |
SV.INCORRECT_RESOURCE_HANDLING.URH
|
不安全的资源处理 |
3 |
False |
2020.1 之前 |
SV.INCORRECT_RESOURCE_HANDLING.WRONG_STATUS
|
不安全的资源处理 |
3 |
False |
2020.1 之前 |
SV.LPP.CONST
|
危险函数使用不安全的宏 |
3 |
False |
2020.1 之前 |
SV.LPP.VAR
|
危险函数使用不安全的函数 |
3 |
False |
2020.1 之前 |
SV.PCC.CONST
|
在调用 CreateFile 时使用了不安全的(常量)临时文件名 |
4 |
False |
2020.1 之前 |
SV.PCC.INVALID_TEMP_PATH
|
在调用 CreateFile 时使用了不安全的临时文件名 |
4 |
False |
2020.1 之前 |
SV.PCC.MISSING_TEMP_CALLS.MUST
|
在调用 CreateFile 时缺少安全的临时文件名 |
4 |
False |
2020.1 之前 |
SV.PCC.MISSING_TEMP_FILENAME
|
在调用 CreateFile 时缺少临时文件名 |
4 |
False |
2020.1 之前 |
SV.PCC.MODIFIED_BEFORE_CREATE
|
在调用 CreateFile 之前修改了临时文件名 |
4 |
False |
2020.1 之前 |
SV.PIPE.CONST
|
潜在的管道劫持 |
3 |
False |
2020.1 之前 |
SV.PIPE.VAR
|
潜在的管道劫持 |
3 |
False |
2020.1 之前 |
SV.RVT.RETVAL_NOTTESTED
|
返回值被忽略 |
4 |
False |
2021.2 |
SV.SIP.CONST
|
危险函数使用不安全的宏 |
3 |
False |
2020.1 之前 |
SV.SIP.VAR
|
危险函数使用不安全的函数 |
3 |
False |
2020.1 之前 |
SV.STRBO.BOUND_COPY.OVERFLOW
|
绑定字符串复制中的缓冲区溢出 |
1 |
False |
2023.4 |
SV.STRBO.BOUND_COPY.UNTERM
|
随后字符串运算中可能的缓冲区溢出 |
2 |
False |
2020.1 之前 |
SV.STRBO.BOUND_SPRINTF
|
绑定 sprintf 中的缓冲区溢出 |
1 |
False |
2020.1 之前 |
SV.STRBO.UNBOUND_COPY
|
非绑定字符串复制中的缓冲区溢出 |
1 |
False |
2020.1 之前 |
SV.STRBO.UNBOUND_SPRINTF
|
非绑定 sprintf 中的缓冲区溢出 |
1 |
False |
2020.1 之前 |
SV.STR_PAR.UNDESIRED_STRING_PARAMETER
|
文件路径包含不希望出现的字符串 |
4 |
False |
2020.1 之前 |
SV.TAINTED.ALLOC_SIZE
|
在内存分配中使用未经验证的整数 |
2 |
True |
2020.1 之前 |
SV.TAINTED.BINOP
|
在二进制运算中使用未经验证的整数 |
3 |
False |
2021.2 |
SV.TAINTED.CALL.BINOP
|
在二进制运算中使用未经验证的整数 |
3 |
False |
2020.1 之前 |
SV.TAINTED.CALL.DEREF
|
取消引用未验证的指针 |
3 |
False |
2020.1 之前 |
SV.TAINTED.CALL.GLOBAL
|
在赋值运算中使用未经验证的整数 |
3 |
False |
2020.2 |
SV.TAINTED.CALL.INDEX_ACCESS
|
通过函数调用将未经验证的整数用作数组索引 |
2 |
True |
2020.1 之前 |
SV.TAINTED.CALL.LOOP_BOUND
|
通过函数调用在循环条件使用未经验证的整数 |
2 |
True |
2020.1 之前 |
SV.TAINTED.DEREF
|
取消引用未验证的指针 |
3 |
False |
2020.1 之前 |
SV.TAINTED.FMTSTR
|
在格式字符串中使用未经验证的数据 |
1 |
True |
2020.1 之前 |
SV.TAINTED.GLOBAL
|
在赋值运算中使用未经验证的整数 |
3 |
False |
2020.2 |
SV.TAINTED.INDEX_ACCESS
|
将未经验证的整数用作数组索引 |
1 |
True |
2020.1 之前 |
SV.TAINTED.INJECTION
|
命令注入 |
3 |
True |
2020.1 之前 |
SV.TAINTED.LOOP_BOUND
|
在循环条件中使用未经验证的整数 |
2 |
True |
2020.1 之前 |
SV.TAINTED.PATH_TRAVERSAL
|
在路径遍历中使用未经验证的数据 |
1 |
True |
2020.1 之前 |
SV.TAINTED.SECURITY_DECISION
|
安全性决策 |
3 |
False |
2020.1 之前 |
SV.TAINTED.XSS.REFLECTED
|
跨站点脚本漏洞 |
3 |
False |
2020.3 |
SV.TOCTOU.FILE_ACCESS
|
文件访问中的时间创建/时间争用条件 |
4 |
False |
2020.1 之前 |
SV.UNBOUND_STRING_INPUT.CIN
|
将 cin 用于无边界字符串输入 |
1 |
True |
2020.1 之前 |
SV.UNBOUND_STRING_INPUT.FUNC
|
使用无边界字符串输入 |
1 |
True |
2020.1 之前 |
SV.USAGERULES.PERMISSIONS
|
使用权限提升 |
4 |
False |
2020.1 之前 |
SV.USAGERULES.PROCESS_VARIANTS
|
使用危险的进程创建函数 |
4 |
False |
2020.1 之前 |
SV.USAGERULES.SPOOFING
|
使用易遭受电子欺骗的函数 |
4 |
False |
2020.1 之前 |
SV.WEAK_CRYPTO.WEAK_HASH
|
不安全的哈希函数 |
4 |
False |
2020.1 之前 |
UFM.DEREF.MIGHT
|
可能使用了释放内存(访问) |
1 |
True |
2020.1 之前 |
UFM.DEREF.MUST
|
通过指针使用了已释放内存 |
1 |
True |
2020.1 之前 |
UFM.FFM.MIGHT
|
可能使用了释放内存(双重释放) |
1 |
True |
2020.1 之前 |
UFM.FFM.MUST
|
释放已释放的内存 |
1 |
True |
2020.1 之前 |
UFM.RETURN.MIGHT
|
可能使用了已释放内存(返回) |
2 |
True |
2020.1 之前 |
UFM.RETURN.MUST
|
返回时使用了已释放内存 |
2 |
True |
2020.1 之前 |
UFM.USE.MIGHT
|
可能使用了释放内存 |
2 |
True |
2020.1 之前 |
UFM.USE.MUST
|
使用了已释放内存 |
2 |
True |
2020.1 之前 |
UNINIT.CTOR.MIGHT
|
构造函数中可能存在未初始化的变量 |
1 |
True |
2020.1 之前 |
UNINIT.CTOR.MUST
|
构造函数中存在未初始化的变量 |
2 |
False |
2020.1 |
UNINIT.HEAP.MIGHT
|
使用的堆可能未初始化 |
1 |
True |
2020.1 之前 |
UNINIT.HEAP.MUST
|
使用的堆未初始化 |
1 |
True |
2020.1 之前 |
UNINIT.STACK.ARRAY.MIGHT
|
数组可能未初始化 |
1 |
True |
2020.1 之前 |
UNINIT.STACK.ARRAY.MUST
|
数组未初始化 |
1 |
True |
2020.1 之前 |
UNINIT.STACK.ARRAY.PARTIAL.MUST
|
部分未初始化的数组 |
1 |
True |
2020.1 之前 |
UNINIT.STACK.MIGHT
|
变量可能未初始化 |
1 |
True |
2020.1 之前 |
UNINIT.STACK.MUST
|
变量未初始化 |
1 |
True |
2020.1 之前 |
UNREACH.ENUM
|
由于枚举的可能值而无法访问代码 |
3 |
False |
2021.3 |
UNREACH.GEN
|
无法访问的代码 |
3 |
False |
2020.1 之前 |
UNREACH.RETURN
|
无法访问的返回虚值 |
3 |
False |
2020.1 之前 |
UNREACH.SIZEOF
|
体系结构相关的无法访问代码 |
3 |
False |
2020.1 之前 |
UNUSED.FUNC.GEN
|
已定义但未使用的函数 |
4 |
False |
2023.4 |
UNUSED.FUNC.STL_EMPTY
|
忽略 STL 对象 empty() 方法的返回值 |
3 |
True |
2020.1 |
UNUSED.FUNC.WARN
|
可能的未使用函数 |
4 |
False |
2020.1 之前 |
VA.LIST.INDETERMINATE
|
尝试在具有未定值的 va_list 中调用 va_arg() |
3 |
False |
2021.2 |
VA_UNUSED.GEN
|
赋值后从未使用过值 |
4 |
False |
2020.1 之前 |
VA_UNUSED.INIT
|
值在初始化后从未使用过 |
4 |
False |
2020.1 之前 |
VOIDRET
|
Void 函数返回值 |
2 |
True |
2020.1 之前 |