此版本包括以下增强功能:
发布日期:2024 年 5 月 29 日
升级注意事项
- 授权 C/C++test 2024.1 需要使用 DTP 或 License Server 2024.1。升级至 C/C++test 2024.1 之前,您必须升级为 DTP 或 License Server 2024.1 才能成功授权该产品。
- 与 DTP 和 License Server 的连接必须通过 HTTPS 建立。不再支持 HTTP。
增强 Security Compliance Pack
- Security Pack 已扩展新的 CWE Top 25 2023 和 CWE Top 25 + on the Cusp 2023 测试配置,以帮助您遵循安全标准。
- 更新 DISA ASD STIG 规则集和 DISA-ASD-STIG 测试配置,以反映 DISA-ASD-STIG 2022-09 标准中的变化。
增强静态分析
- 增强静态分析引擎,更好地支持 Modern C++ 构造,包括带有初始化器和结构化绑定的 if 语句。这些增强功能实现了更精确的代码执行模拟,并提高了报告任务的准确性。
- 提高选定 MISRA C++ 2023 规则的准确性。
- 为选定规则扩展了对规则参数化的支持。
- 添加新的代码分析规则,增加合规标准的覆盖率。有关新增规则和更新规则的列表,请参阅新增规则和更新规则。
增强覆盖率分析
增强对报告代码覆盖率的支持。现在,您可以启用忽略在编译时已知结果的分支/判定的报告模式。详细信息,请参阅在编译时已知判定结果时忽略判定/分支点。
编译器支持
现已支持以下编译器:
编译器名称 | 编译器标识符 |
---|---|
GCC for Tricore 4.9.x | tricoregcc_4_9 |
HighTec Clang C/C++ Compiler 8.1 (aarch32/arm)* | hightec-clang_8_1-aarch32 |
IAR Compiler for ARM v. 9.40x | iccarm_9_40 |
IAR Compiler for ARM v. 9.50x | iccarm_9_50 |
QNX GCC 8.x (ARM64) ** | qccarm_8-64 |
QNX GCC 8.x (x86_64) ** | qcc_8-64 |
* - 仅用于静态分析。
** - 支持级别已从标准更新为扩展。
请参阅编译器。
新增和更新的测试配置
通过添加对以下测试配置的支持,扩展了 Security Compliance Pack:
- CWE Top 25 2023
- CWE Top 25 + On the Cusp 2023
- OWASP API Security Top 10-2023
已使用新规则更新以下测试配置:
- DISA-ASD-STIG
其他更新
- 现在,连接独立版 License Server 时,可以启用身份验证(如果配置为要求进行身份验证);请参阅许可以及 license.network.auth.enabled。
- 现在可以使用 report.xml.param{n}.key 和 report.xml.param{n}.value 设置指定添加到 report.xml 头文件中的自定义参数。
- 可以通过
parasoft-instrumentation coverage
注释为特定函数禁用或启用覆盖率插桩。请参阅选择性禁用覆盖率插桩。 - 附带的 JRE 已升级到版本 17.0.10+7。
弃用和删除的支持
已弃用的 IDE 支持
已弃用以下 IDE 的支持,并将在以后的版本中删除:
- Visual Studio 2015
即将弃用的编译器
在未来的版本中,将不再支持以下编译器:
- ARM Compiler 5.0
- ARM Compiler 5.0 for uVision
- GNU GCC 4.9.x (mips64el)
- Green Hills Software Compiler for PPC v. 2013.1.x
- IAR Compiler for MSP430 v. 6.1x
- Microchip MPLAB C30 Compiler for dsPIC v3.2x
- National Instruments LabWindows/CVI 2015 Clang C/C++ Compiler v3.3 for Win32
- Renesas RX C/C++ Compiler 2.5x
已弃用的编译器
已弃用以下编译器的支持,并将在以后的版本中删除:
- GNU GCC 5.x
- GNU GCC 5.x (x86_64)
- GNU GCC 6.x
- GNU GCC 6.x (x86_64)
- Green Hills Software Compiler for ARM64 v. 2014.1.x
- Green Hills Software Compiler for PPC v. 4.2.x
- Green Hills Software Compiler for PPC v. 5.0.x
- Green Hills Software Compiler for V850 v. 2014.1.x
- IAR Compiler for ARM v. 7.4x
- IAR Compiler for ARM v. 7.8x
- IAR Compiler for M16C & R8C v. 3.5x
- Microsoft Visual C++ 14.0
- Microsoft Visual C++ 14.0 (x64)
- SH Series C/C++ Compiler V.9.04.xx
- Vx-toolset for TriCore C/C++ Compiler 6.2
- Wind River GCC 4.8.x
删除的编译器支持
不再支持以下编译器:
- Clang C/C++ Compiler v 6.0
- FR Family Softune C/C++ Compiler V6
- TI MSP430 C/C++ Compiler GNU GCC 6.x
- TI TMS320C2000 C/C++ Compiler v16.9
解决的 Bug 和 FR
Bug/FR ID | 说明 |
---|---|
CPP-36809 | [coverage] 在编译时已知判定结果时忽略判定/分支点 |
CPP-50180 | [static] MISRA2004-10_1_a (MISRA2008-5_0_4_a) 针对枚举常量的误报 |
CPP-51512 | [coverage] 文件“parasoft-instrumentation coverage off/on”注释 |
CPP-52296 | [complier] 支持 IAR ARM 9.40(windows,扩展,完整版) |
CPP-52872 | [static] 优化 AUTOSAR M5-8-1 的映射 |
CPP-52955 | [static] 扩展 MISRA2008 5-8-1 (AUTOSAR M5-8-1) 规则的映射 |
CPP-54945 | [engine] 插桩不编译 - 错误:成员函数模板的重新声明无效 |
CPP-55003 | [static] 优化 MISRA2008-7_5_4 / AUTOSAR-A7_5_2-a 的映射 |
CPP-55518 | [complier] 支持用于 ARM 的 HighTec C 编译器(基于 LLVM 13.x)- 静态分析 |
CPP-55598 | [static] 为 CWE 390 误动作检测错误添加映射 |
CPP-55599 | [static] 为 CWE 398 不良代码质量添加映射 |
CPP-55734 | [static] 对 RapidJSON 项目的 CDD-DUP I 执行解析时挂起 |
CPP-55746 | [static] 优化 HIC++7.1.6 要求的映射 |
CPP-55821 | [complier] 支持 HighTec TriCore 4.9(windows,扩展,完整版) |
CPP-56183 | [static] CODSTA-14 针对非指针/非引用类型的强制转换误报 |
CPP-56220 | [static] CODSTA-CPP-92(MISRA2008-10_2_1-a,AUTOSAR-M10_2_1)不报告在不同文件中定义的类,或者在继承层次结构中使用相同基类名称的类的违规 |
CPP-56270 | [static] CODSTA-CPP-62 (MISRA2008-4_10_1, AUTOSAR-A4_10_1-a, AUTOSAR-M4_10_1-a) 在 'NULL' 宏展开为非字面值 '0' 时不报告违规 |
CPP-56272 | [engine] 错误:“final”不是函数或静态数据成员 |
CPP-56284 | [static] CODSTA-MCPP-11_a_cpp11 (AUTOSAR-A7_1_2-a) 针对编译器生成的变量误报 |
CPP-56286 | [static] 优化 MISRACPP2023 Rule 6.7.2 的映射 |
CPP-56434 | [static] 拆分 CODSTA-63 规则以(可选地)排除报告在按位运算符中使用的正 const 整数值 |
CPP-56435 | [engine] 在 Android NDK 中使用 _attribute_((overloadable)) 时发生重复定义 |
CPP-56463 | [static] 在 MISRA C++:2023 7.0.1 和 7.0.3 中引入额外的异常,允许丢弃函数返回的值(CODSTA-CPP-211、CODSTA-316) |
CPP-56467 | [build] cpptesttrace 由于文件路径中包含空格发生错误 |
CPP-56491 | [static] 优化 MISRACPP2023 Rule 16.6.1 的映射 |
CPP-56502 | [static] CODSTA-60 (CERT_C-EXP20-a) 在包含宏的代码行中使用 'TRUE' 时不报告违规 |
CPP-56507 | [static] 针对在模板的 'if constexpr' 中使用的参数更新 OPT-03 (AUTOSAR-A0_1_4-a) 的文档 |
CPP-56508 | [static] INTERNAL-GLOBAL-ONEUSEVAR_1 针对模板报告 python 错误 |
CPP-56513 | [engine] 解析错误:原子约束依赖于其自身 |
CPP-56566 | [static] 优化 MISRACPP2023 Rule 8.2.5 的映射 |
CPP-56572 | [engine] 解析错误:参数包“types_t”被引用但未展开 |
CPP-56582 | [ide] 在 C/C++test Pro 中优化对大工作空间的静态分析 |
CPP-56583 | [engine] 错误:函数“<unnamed>::TraceInternals::GetProcAddress”的多个实例与参数列表匹配 |
CPP-56584 | [engine] 命令行错误:将 /D 与 # 一起使用时,宏定义无效 |
CPP-56592 | [complier] 扩展 QNX GCC 8(x86-64、arm64)的支持 |
CPP-56601 | [engine] 错误:此处不允许引用限定符 |
CPP-56656 | [static] MISRACPP2023-9_5_1-a (CODSTA-315) 针对循环计数器与循环边界类型不匹配误报 |
CPP-56658 | [static] 优化 CWE-190 整数溢出的映射 |
CPP-56660 | [static] 添加 CWE-366 线程内的竞争条件的映射 |
CPP-56663 | [static] OPT-05 (AUTOSAR-M0_1_3-c) 在内部类的函数中使用私有成员时误报 |
CPP-56665 | [engine] 错误:没有重载函数 rapidjson::GenericValue 的实例 |
CPP-56676 | [engine] 对 edgtk mangler 添加新内建类型的支持 |
CPP-56717 | [static] CODSTA-CPP-82 (MISRACPP2023-6_7_2-a) 针对全局 constexpr 变量误报 |
CPP-56722 | [static] MISRA2004-14_1_a (MISRACPP2023-0_0_1-a) 针对带有 'else' 的 'if constexpr' 语句后的代码误报 |
CPP-56728 | [rulewizard] 在 'if constrexpr-else' 构造后错误检测到空语句 |
CPP-56735 | [engine] 为覆盖率插桩时 cpptestcc 崩溃 |
CPP-56745 | [static] 在测试文件的总数中,不要将没有对应源文件的头文件报告为测试文件 |
CPP-56749 | [engine] hexagon_clang 的 target_gnu_version 错误并破坏指定的初始化器 |
CPP-56783 | [static] MISRACPP2023-9_5_1-a:优化违规消息 |
CPP-56784 | [static] INIT-19 (MISRACPP2023-15_1_4-a) 针对默认复制和移动构造函数误报 |
CPP-56785 | [static] MISRACPP2023-6_7_2-a 针对全局 constexpr 变量误报 |
CPP-56786 | [static] FORMAT-48 (MISRACPP2023-6_0_1-b) 针对 noexcept 中使用的参数误报 |
CPP-56788 | [static] MISRACPP2023-16_6_1-a 针对不对称的运算符 << 误报违规 |
CPP-56789 | [static] MISRACPP2023-5_10_1-a 针对嵌套“posix”命名空间误报 |
CPP-56801 | [static] 修改 BD-PB-VOVR 内建克隆的“报告变量声明 > 包括未使用的未初始化原始值和指针”参数的默认值 |
CPP-56804 | [engine] 将 edg.microsoft_version 更新为 1939 以适配 vc_14_3 编译器 |
CPP-56911 | [engine] C/C++test 无法识别使用 std::tuple 的函数中的桩函数 |
CPP-56918 | [build] cpptest_bdf.bzl 有两个编码错误 |
CPP-56924 | [engine] 使用 IAR Compiler 9.10 初始化柔性数组成员时出现解析错误 |
CPP-56925 | [engine] 错误:偏特化的模板参数列表中包含一个非类型参数,该参数的类型依赖于模板参数 |
CPP-57059 | [engine] 类模板与模板模板参数不兼容 |
CPP-57360 | [engine] 支持 Clang 10 及更高版本中的通用模板模板参数 |
CPP-57372 | [engine] 程序在以下位置接收信号 11:栈追踪: 0# 0x00007FC1B9C81090 in /lib/x86_64-linux-gnu/libc.so.6 |
FA-9453 | C 标准库 Juliet/CWE-401 中的 realloc 函数建模不正确 |
FA-9689 | BD-PB-VOVR 抛出 java.lang.OutOfMemoryError |
FA-9692 | BD-PB-ARRAY(MISRAC2012-DIR_4_1-a) - 误报 |
FA-9713 | BD-PB-OVERFFMT 针对 '*' 字符串精度误报 |
FA-9736 | 为联合体成员存储的值不正确 |
FA-9787 | BD-PB-OVERFNZT 误报 |
FA-9795 | BD-PB-NOTINIT 误报 |
FA-9841 | BD-PB-ARRAY 误报 |
FA-9842 | BD-PB-CC 误报 |
FA-9847 | 使用 sizeof byte != 8 的编译器时,增量分析结果可能不正确 |
FA-9852 | BD-PB-ARRAY 不一致的行为 |
FA-9856 | BD-PB-NOTINIT 在通过引用在被调用函数中初始化数组时误报 |
FA-9866 | 可能的 MISRA 误报(BD-API-STRSIZE、BD-PB-OVERFRD) |
FA-9883 | BD-PB-ARRAY 针对嵌套结构报告违规 |
规则更新
新增规则
规则 ID | 标题 |
---|---|
APSC_DV-000060-a | 使用安全的临时文件名称函数 |
APSC_DV-000060-b | 在调用 'mkstemp' 之前调用 'umask' |
APSC_DV-000510-a | 在调用 'mkstemp' 之前调用 'umask' |
APSC_DV-000510-b | 如果调用 'chroot',请调用 'chdir' |
APSC_DV-001350-a | 请勿使用弱加密函数 |
APSC_DV-001360-a | 请勿使用弱加密函数 |
APSC_DV-001370-a | 出于安全考虑,不应该使用标准随机数生成器来生成随机性 |
APSC_DV-001370-b | 请勿使用弱加密函数 |
APSC_DV-002020-a | 出于安全考虑,不应该使用标准随机数生成器来生成随机性 |
APSC_DV-002020-b | 请勿使用弱加密函数 |
APSC_DV-002030-a | 出于安全考虑,不应该使用标准随机数生成器来生成随机性 |
APSC_DV-002030-b | 请勿使用弱加密函数 |
APSC_DV-002040-a | 出于安全考虑,不应该使用标准随机数生成器来生成随机性 |
APSC_DV-002040-b | 请勿使用弱加密函数 |
APSC_DV-002050-a | 出于安全考虑,不应该使用标准随机数生成器来生成随机性 |
APSC_DV-002050-b | 不应使用随机数生成器函数 'rand()' 和 'srand()' |
APSC_DV-002050-c | 在伪随机数生成器中指定适当的种子 |
APSC_DV-002380-a | 不应将指向结构体的指针传递给可将数据复制到用户空间的函数 |
APSC_DV-002485-a | 不要硬编码字符串字面量 |
APSC_DV-002485-b | 限制使用系统属性 (环境变量) |
APSC_DV-002580-a | 避免将敏感数据传递给写日志文件的函数 |
APSC_DV-002580-b | 不要将应用程序错误导致的潜在敏感信息打印到异常消息中 |
APSC_DV-003100-a | 请勿使用弱加密函数 |
APSC_DV-003120-a | 避免将敏感数据传递给写日志文件的函数 |
APSC_DV-003120-b | 不要将应用程序错误导致的潜在敏感信息打印到异常消息中 |
APSC_DV-003120-c | 不应将指向结构体的指针传递给可将数据复制到用户空间的函数 |
APSC_DV-003140-a | 请勿使用弱加密函数 |
APSC_DV-003235-c | 如果函数返回错误信息,则应测试该错误信息 |
APSC_DV-003235-d | 如果在单个 try-catch 语句或 function-try-block 中为派生类及其部分或全部基类提供了多个处理程序,则处理程序应按最派生类到基类排序 |
APSC_DV-003280-a | 不要硬编码字符串字面量 |
APSC_DV-003320-a | 避免使用 'vfork()' 函数 |
APSC_DV-003320-b | 避免使用对线程不安全的函数 |
APSC_DV-003320-c | 在使用潜在可能受污染的数据确定内存分配大小之前对其进行验证 |
APSC_DV-003320-d | 在用于循环的控制表达式之前验证可能被污染的数据 |
AUTOSAR-A12_8_5-b | 用户提供的移动赋值运算符应处理自赋值 |
AUTOSAR-A15_5_2-d | 不应使用 'terminate' 函数 |
AUTOSAR-A3_1_1-b | 不应在头文件中声明具有内部链接的函数和非 const 对象 |
AUTOSAR-M5_0_21-b | 位运算符不得使用正整数字面量作为操作数 |
AUTOSAR-M5_8_1-b | 移位运算符的右操作数应介于零和一之间,小于左操作数的基本类型或基础类型的位宽 |
BD-SECURITY-TDINTOVERF | 避免污点数据可能出现的整数上溢/下溢 |
CERT_C-INT13-b | 移位运算符的操作数应为 unsigned 类型 |
CERT_C-INT16-b | 位运算符不得使用正整数字面量作为操作数 |
CODSTA-244 | 除了调用值为 SIG_IGN 的 'signal()' 函数外,不得使用 <signal.h> 的信号处理功能 |
CODSTA-63_a | 位运算符不得使用正整数字面量作为操作数 |
CODSTA-CPP-20_b | 对称运算符只能作为非成员函数实现 |
CODSTA-CPP-213 | 仅将 'noexcept' 函数传递给无法处理异常的函数 |
CODSTA-MCPP-62 | 由标准整数类型常量表达式初始化的变量,不应使用 'auto' 说明符定义 |
CWE-125-e | 避免在数组索引中有受污染数据 |
CWE-190-j | 避免在整数类型之间转换时的数据丢失 |
CWE-190-k | 避免污点数据可能出现的整数上溢/下溢 |
CWE-366-a | 线程之间不应存在数据争用 |
CWE-390-a | 不应使用空的 'catch' 块 |
CWE-390-b | 避免使用空体的 'if' 语句 |
CWE-787-h | 避免在数组索引中有受污染数据 |
HICPP-5_6_1-b | 位运算符不得使用正整数字面量作为操作数 |
JSF-039_b | 不应在头文件中声明具有内部链接的函数和非 const 对象 |
MISRA2008-3_1_1_b | 在不违反一个定义规则的情况下,可以在多个翻译单元中包含任何头文件 |
MISRA2008-5_0_21_b | 位运算符不得使用正整数字面量作为操作数 |
MISRA2008-5_8_1_b | 常量表达式移位运算符的右操作数应介于 0 和 1 之间,小于左操作数基本类型的位宽 |
MISRACPP2023-15_8_1-b | 用户提供的移动赋值运算符应处理自赋值 |
MISRACPP2023-18_4_1-c | 仅将 'noexcept' 函数传递给无法处理异常的函数 |
MISRACPP2023-18_5_2-d | 不应使用 'terminate' 函数 |
MISRACPP2023-7_11_2-b | 数组类型的对象不应作为可变参数传递给函数 |
OOP-34_b | 用户提供的移动赋值运算符应处理自赋值 |
OPT-49 | 不应使用 null 语句 |
OPT-50 | 不应使用空的复合语句 |
OPT-51 | 避免使用空体的 'if' 语句 |
OWASP2023-API10-a | 避免在数组索引中有受污染数据 |
OWASP2023-API10-b | 避免污点数据可能出现的整数上溢/下溢 |
OWASP2023-API10-c | 避免将未经验证的二进制数据传递给日志方法 |
OWASP2023-API10-d | 防止命令注入 |
OWASP2023-API10-e | 避免在输出控制台打印受污染的数据 |
OWASP2023-API10-f | 防止环境注入 |
OWASP2023-API10-g | 从格式字符串中排除未经净化的用户输入 |
OWASP2023-API10-h | 防止 SQL 注入 |
OWASP2023-API10-i | 防止文件名注入 |
OWASP2023-API10-j | 不受信的数据被用作循环边界 |
OWASP2023-API2-a | 请勿使用弱加密函数 |
OWASP2023-API3-a | 释放之前清除敏感数据 |
OWASP2023-API3-b | 避免将敏感数据传递给写日志文件的函数 |
OWASP2023-API3-c | 不要将应用程序错误导致的潜在敏感信息打印到异常消息中 |
OWASP2023-API4-a | 在使用潜在可能受污染的数据确定内存分配大小之前对其进行验证 |
OWASP2023-API4-b | 在用于循环的控制表达式之前验证可能被污染的数据 |
OWASP2023-API4-c | 不要在超过已定义的限制的栈上创建变量 |
OWASP2023-API4-d | 确保资源已释放 |
OWASP2023-API8-a | 如果在单个 try-catch 语句或 function-try-block 中为派生类及其部分或全部基类提供了多个处理程序,则处理程序应按最派生类到基类排序 |
OWASP2023-API8-b | 不应使用空的 'catch' 块 |
OWASP2023-API8-c | 正确使用 errno 值 |
OWASP2023-API9-a | 应该注释说明所有汇编程序的使用 |
OWASP2023-API9-b | 应该在头文件中声明具有外部链接的对象或函数 |
OWASP2023-API9-c | 使用 #pragma 指令必须进行注释并说明 |
OWASP2023-API9-d | 在函数定义之前的注释中记录函数 |
PB-41_c | 数组类型的对象不应作为可变参数传递给函数 |
PB-75_d | 不应使用 'terminate' 函数 |
PFO-01_b | 不应在头文件中声明具有内部链接的函数和非 const 对象 |
PORT-01_b | 'L' 的小写形式不得用作字面量后缀的第一个字符 |
TEMPL-07_b | 模板构造函数不得参与封闭类类型的单个参数的重载解析 |
更新规则
类别 ID | 规则 ID |
---|---|
AUTOSAR C++14 编码指南 | AUTOSAR-A0_1_1-a, AUTOSAR-A0_4_4-a, AUTOSAR-A12_4_1-a, AUTOSAR-A12_8_5-a, AUTOSAR-A14_5_1-a, AUTOSAR-A15_0_2-a, AUTOSAR-A15_1_4-a, AUTOSAR-A15_3_3-a, AUTOSAR-A15_5_2-b, AUTOSAR-A15_5_2-c, AUTOSAR-A15_5_3-d, AUTOSAR-A15_5_3-e, AUTOSAR-A18_0_2-a, AUTOSAR-A27_0_1-g, AUTOSAR-A27_0_1-h, AUTOSAR-A27_0_2-a, AUTOSAR-A3_1_1-a, AUTOSAR-A3_1_4-a, AUTOSAR-A3_3_1-b, AUTOSAR-A4_10_1-a, AUTOSAR-A5_10_1-a, AUTOSAR-A5_2_4-a, AUTOSAR-A5_2_5-a, AUTOSAR-A6_6_1-a, AUTOSAR-A7_1_2-a, AUTOSAR-A7_1_2-b, AUTOSAR-A7_5_2-a, AUTOSAR-A8_5_0-a, AUTOSAR-M0_1_1-c, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_1_3-c, AUTOSAR-M0_1_4-a, AUTOSAR-M0_3_1-d, AUTOSAR-M0_3_1-g, AUTOSAR-M0_3_1-h, AUTOSAR-M0_3_1-i, AUTOSAR-M10_2_1-a, AUTOSAR-M15_1_3-a, AUTOSAR-M16_0_7-a, AUTOSAR-M18_0_3-a, AUTOSAR-M18_0_3-b, AUTOSAR-M18_0_3-c, AUTOSAR-M18_7_1-a, AUTOSAR-M4_10_1-a, AUTOSAR-M5_0_16-a, AUTOSAR-M5_0_21-a, AUTOSAR-M5_18_1-a, AUTOSAR-M5_2_12-a, AUTOSAR-M5_8_1-a, AUTOSAR-M6_6_2-a, AUTOSAR-M7_3_1-a |
C++ 编码规范 | CODSTA-CPP-09, CODSTA-CPP-211, CODSTA-CPP-212, CODSTA-CPP-36, CODSTA-CPP-62, CODSTA-CPP-66, CODSTA-CPP-82, CODSTA-CPP-92, CODSTA-CPP-95_b |
Modern C++ 编码规范 | CODSTA-MCPP-11_a_cpp11, CODSTA-MCPP-11_b_cpp11, CODSTA-MCPP-26 |
编码规范 | CODSTA-110, CODSTA-125, CODSTA-14, CODSTA-301, CODSTA-302, CODSTA-305, CODSTA-313, CODSTA-315, CODSTA-316, CODSTA-60, CODSTA-63, CODSTA-77 |
常见缺陷列表 | CWE-119-a, CWE-119-c, CWE-119-d, CWE-125-a, CWE-125-c, CWE-20-b, CWE-20-d, CWE-20-e, CWE-20-f, CWE-20-g, CWE-20-h, CWE-20-i, CWE-22-a, CWE-401-a, CWE-668-a, CWE-704-c, CWE-77-a, CWE-770-a, CWE-772-a, CWE-78-a, CWE-787-a, CWE-787-c, CWE-89-a |
DISA ASD STIG | APSC_DV-000480-a, APSC_DV-001290-a, APSC_DV-001300-a, APSC_DV-002000-a, APSC_DV-002400-a, APSC_DV-002510-a, APSC_DV-002520-a, APSC_DV-002520-b, APSC_DV-002520-c, APSC_DV-002520-f, APSC_DV-002520-h, APSC_DV-002520-i, APSC_DV-002520-j, APSC_DV-002530-a, APSC_DV-002530-b, APSC_DV-002530-c, APSC_DV-002530-f, APSC_DV-002530-h, APSC_DV-002530-i, APSC_DV-002530-j, APSC_DV-002540-a, APSC_DV-002550-a, APSC_DV-002550-b, APSC_DV-002550-c, APSC_DV-002550-f, APSC_DV-002550-h, APSC_DV-002550-i, APSC_DV-002550-j, APSC_DV-002560-a, APSC_DV-002560-b, APSC_DV-002560-c, APSC_DV-002560-f, APSC_DV-002560-h, APSC_DV-002560-i, APSC_DV-002560-j, APSC_DV-002590-a, APSC_DV-002590-b, APSC_DV-002590-c, APSC_DV-002590-g, APSC_DV-003235-a, APSC_DV-003235-b |
异常 | EXCEPT-06, EXCEPT-07, EXCEPT-25 |
流分析 | BD-API-BADPARAM, BD-API-VALPARAM, BD-CO-ITINVCOMP, BD-PB-ARRAY, BD-PB-BADSHIFT, BD-PB-CC, BD-PB-MCCSTR, BD-PB-NOTINIT, BD-PB-OVERFFMT, BD-PB-OVERFNZT, BD-PB-OVERFRD, BD-PB-UCMETH, BD-PB-VOVR, BD-RES-LEAKS, BD-SECURITY-TDALLOC, BD-SECURITY-TDCMD, BD-SECURITY-TDCONSOLE, BD-SECURITY-TDENV, BD-SECURITY-TDFNAMES, BD-SECURITY-TDINPUT, BD-SECURITY-TDLOOP, BD-SECURITY-TDSQL, BD-TRS-THRDR |
代码格式 | FORMAT-48 |
全局静态分析 | GLOBAL-ONEUSEVAR |
High Integrity C++ | HICPP-15_3_2-b, HICPP-1_2_1-a, HICPP-1_2_1-h, HICPP-1_2_1-i, HICPP-4_1_1-a, HICPP-4_2_2-f, HICPP-5_1_2-i, HICPP-5_2_1-a, HICPP-5_4_1-b, HICPP-5_6_1-a, HICPP-5_7_2-a, HICPP-6_3_1-b, HICPP-8_4_1-a |
初始化 | INIT-101, INIT-19 |
联合攻击战斗机 | JSF-021_b, JSF-023, JSF-024, JSF-024_b, JSF-024_d, JSF-039_a, JSF-081, JSF-097_d, JSF-098, JSF-164, JSF-168_b, JSF-183_b, JSF-185, JSF-186_a, JSF-189, JSF-207 |
MISRA C 2004 | MISRA2004-10_1_g, MISRA2004-12_10, MISRA2004-14_1_a, MISRA2004-14_4, MISRA2004-19_11_b, MISRA2004-20_10, MISRA2004-20_11, MISRA2004-20_11_b, MISRA2004-20_11_d, MISRA2004-20_8_b, MISRA2004-8_12 |
MISRA C 2012(遗留) | MISRA2012-DIR-4_11, MISRA2012-DIR-4_13_a, MISRA2012-DIR-4_14_b, MISRA2012-DIR-4_14_e, MISRA2012-DIR-4_14_f, MISRA2012-DIR-4_14_g, MISRA2012-DIR-4_14_j, MISRA2012-DIR-4_14_k, MISRA2012-DIR-4_14_l, MISRA2012-DIR-4_1_a, MISRA2012-DIR-4_1_d, MISRA2012-DIR-4_1_e, MISRA2012-DIR-4_1_g, MISRA2012-DIR-5_1_c, MISRA2012-RULE-11_2, MISRA2012-RULE-11_8, MISRA2012-RULE-12_2, MISRA2012-RULE-12_2_b, MISRA2012-RULE-12_3, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-15_1, MISRA2012-RULE-15_2, MISRA2012-RULE-18_1_a, MISRA2012-RULE-1_3_b, MISRA2012-RULE-1_3_d, MISRA2012-RULE-20_9_b, MISRA2012-RULE-21_14, MISRA2012-RULE-21_17_a, MISRA2012-RULE-21_21, MISRA2012-RULE-21_5_b, MISRA2012-RULE-21_6, MISRA2012-RULE-21_7, MISRA2012-RULE-21_8, MISRA2012-RULE-21_8_b, MISRA2012-RULE-21_8_c, MISRA2012-RULE-22_1, MISRA2012-RULE-2_1_a, MISRA2012-RULE-2_1_h, MISRA2012-RULE-2_2_b, MISRA2012-RULE-8_11, MISRA2012-RULE-8_12, MISRA2012-RULE-9_1 |
MISRA C 2023 (MISRA C 2012) | MISRAC2012-DIR_4_1-a, MISRAC2012-DIR_4_1-d, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_1-g, MISRAC2012-DIR_4_11-a, MISRAC2012-DIR_4_13-a, MISRAC2012-DIR_4_14-b, MISRAC2012-DIR_4_14-e, MISRAC2012-DIR_4_14-f, MISRAC2012-DIR_4_14-g, MISRAC2012-DIR_4_14-j, MISRAC2012-DIR_4_14-k, MISRAC2012-DIR_4_14-l, MISRAC2012-DIR_5_1-c, MISRAC2012-RULE_11_2-a, MISRAC2012-RULE_11_8-a, MISRAC2012-RULE_12_2-a, MISRAC2012-RULE_12_2-b, MISRAC2012-RULE_12_3-a, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_15_1-a, MISRAC2012-RULE_15_2-a, MISRAC2012-RULE_18_1-a, MISRAC2012-RULE_1_3-b, MISRAC2012-RULE_1_3-d, MISRAC2012-RULE_20_9-b, MISRAC2012-RULE_21_14-a, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_21_21-a, MISRAC2012-RULE_21_5-b, MISRAC2012-RULE_21_6-a, MISRAC2012-RULE_21_7-a, MISRAC2012-RULE_21_8-a, MISRAC2012-RULE_21_8-b, MISRAC2012-RULE_21_8-c, MISRAC2012-RULE_22_1-a, MISRAC2012-RULE_2_1-a, MISRAC2012-RULE_2_1-h, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_8_11-a, MISRAC2012-RULE_8_12-a, MISRAC2012-RULE_9_1-a |
MISRA C++ 2008 | MISRA2008-0_1_1_a, MISRA2008-0_1_2_aa, MISRA2008-0_1_3_c, MISRA2008-0_1_4, MISRA2008-0_1_6, MISRA2008-0_3_1_a, MISRA2008-0_3_1_d, MISRA2008-0_3_1_e, MISRA2008-0_3_1_g, MISRA2008-10_2_1, MISRA2008-15_1_3, MISRA2008-15_3_2, MISRA2008-15_5_3_d, MISRA2008-15_5_3_e, MISRA2008-16_0_7_b, MISRA2008-18_0_2, MISRA2008-18_0_3, MISRA2008-18_0_3_b, MISRA2008-18_0_3_d, MISRA2008-18_7_1_b, MISRA2008-3_1_1, MISRA2008-3_1_3, MISRA2008-4_10_1, MISRA2008-5_0_16_a, MISRA2008-5_0_21, MISRA2008-5_18_1, MISRA2008-5_2_12, MISRA2008-5_2_4, MISRA2008-5_8_1, MISRA2008-6_6_2, MISRA2008-7_3_1, MISRA2008-7_5_4 |
MISRA C++ 2023 | MISRACPP2023-0_0_1-a, MISRACPP2023-0_0_2-a, MISRACPP2023-0_1_1-a, MISRACPP2023-0_2_4-a, MISRACPP2023-0_3_2-a, MISRACPP2023-10_2_3-a, MISRACPP2023-11_6_1-a, MISRACPP2023-11_6_2-a, MISRACPP2023-11_6_3-a, MISRACPP2023-12_2_2-b, MISRACPP2023-13_3_4-a, MISRACPP2023-15_1_4-a, MISRACPP2023-15_8_1-a, MISRACPP2023-16_6_1-a, MISRACPP2023-18_1_2-a, MISRACPP2023-18_3_1-a, MISRACPP2023-18_5_2-a, MISRACPP2023-18_5_2-b, MISRACPP2023-18_5_2-c, MISRACPP2023-19_1_3-a, MISRACPP2023-21_10_3-a, MISRACPP2023-21_2_1-a, MISRACPP2023-21_2_3-a, MISRACPP2023-30_0_1-b, MISRACPP2023-4_1_3-a, MISRACPP2023-5_10_1-a, MISRACPP2023-5_13_5-a, MISRACPP2023-6_0_1-b, MISRACPP2023-6_0_2-a, MISRACPP2023-6_0_3-a, MISRACPP2023-6_2_4-a, MISRACPP2023-6_7_2-a, MISRACPP2023-7_0_1-a, MISRACPP2023-7_0_2-a, MISRACPP2023-7_0_3-a, MISRACPP2023-7_11_2-a, MISRACPP2023-8_19_1-a, MISRACPP2023-8_2_2-a, MISRACPP2023-8_2_3-a, MISRACPP2023-8_2_5-a, MISRACPP2023-8_7_1-a, MISRACPP2023-8_7_1-c, MISRACPP2023-8_7_1-e, MISRACPP2023-9_5_1-a, MISRACPP2023-9_6_1-a, MISRACPP2023-9_6_3-a |
面向对象 | OOP-31, OOP-34 |
最优化 | OPT-05, OPT-22 |
OWASP API 10 项安全风险 (2019) | OWASP2019-API3-b, OWASP2019-API3-d, OWASP2019-API3-e, OWASP2019-API3-f, OWASP2019-API4-a, OWASP2019-API4-b, OWASP2019-API7-c, OWASP2019-API8-a, OWASP2019-API8-b, OWASP2019-API8-c, OWASP2019-API8-d, OWASP2019-API8-e, OWASP2019-API8-f |
OWASP Top 10 (2017) | OWASP2017-A1-b, OWASP2017-A1-c, OWASP2017-A1-d, OWASP2017-A1-e, OWASP2017-A1-f, OWASP2017-A5-a, OWASP2017-A6-b |
OWASP Top 10 (2021) | OWASP2021-A1-a, OWASP2021-A3-b, OWASP2021-A3-c, OWASP2021-A3-d, OWASP2021-A3-e, OWASP2021-A3-f, OWASP2021-A5-b |
物理文件组织 | PFO-01 |
潜在的缺陷 | PB-41, PB-41_b, PB-58, PB-75, PB-75_b, PB-75_c |
安全性 | SECURITY-48, SECURITY-48_b |
SEI CERT C++ | CERT_CPP-CTR53-b, CERT_CPP-CTR54-a, CERT_CPP-DCL53-a, CERT_CPP-ERR50-d, CERT_CPP-ERR50-e, CERT_CPP-ERR50-l, CERT_CPP-ERR50-n, CERT_CPP-ERR56-b, CERT_CPP-ERR57-a, CERT_CPP-ERR62-a, CERT_CPP-EXP53-a, CERT_CPP-EXP57-b, CERT_CPP-FIO51-a, CERT_CPP-OOP54-a, CERT_CPP-STR50-b |
SEI CERT C | CERT_C-ARR30-a, CERT_C-ARR38-a, CERT_C-ARR38-c, CERT_C-ARR38-d, CERT_C-ARR39-a, CERT_C-CON30-a, CERT_C-CON37-a, CERT_C-DCL16-a, CERT_C-DCL22-a, CERT_C-ENV33-a, CERT_C-ERR02-a, CERT_C-ERR04-a, CERT_C-ERR04-b, CERT_C-ERR04-c, CERT_C-ERR05-a, CERT_C-ERR05-b, CERT_C-ERR05-c, CERT_C-ERR07-a, CERT_C-ERR34-a, CERT_C-EXP08-b, CERT_C-EXP20-a, CERT_C-EXP33-a, CERT_C-FIO22-a, CERT_C-FIO32-a, CERT_C-FIO37-a, CERT_C-FIO42-a, CERT_C-FLP32-a, CERT_C-INT04-a, CERT_C-INT13-a, CERT_C-INT16-a, CERT_C-INT34-a, CERT_C-MEM00-e, CERT_C-MEM12-a, CERT_C-MEM31-a, CERT_C-MSC07-a, CERT_C-MSC07-i, CERT_C-MSC12-a, CERT_C-MSC12-i, CERT_C-MSC12-j, CERT_C-MSC19-a, CERT_C-MSC24-a, CERT_C-POS30-a, CERT_C-SIG00-a, CERT_C-SIG01-a, CERT_C-SIG02-a, CERT_C-STR02-a, CERT_C-STR02-b, CERT_C-STR02-c, CERT_C-STR03-a, CERT_C-STR31-a, CERT_C-STR32-a, CERT_C-WIN30-a |
删除规则
规则 ID | 注意 |
---|---|
AUTOSAR-A18_0_2-b | 从 AUTOSAR C++ 14 配置中删除。对于其他配置,可以使用 MISRA2004-20_10 作为替代。 |
AUTOSAR-A2_5_1-b | 从 AUTOSAR C++ 14 配置中删除。对于其他配置,可以使用 MISRA2004-4_2 作为替代。 |
AUTOSAR-A9_5_1-b | 从 AUTOSAR C++ 14 配置中删除。对于其他配置,可以使用 MISRA2004-18_4 作为替代。 |
AUTOSAR-M0_3_1-j | 从 AUTOSAR C++ 14 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。 |
BD-PB-DEREF | 可以使用 BD-PB-CC 作为替代。 |
BD-PB-INTOVERF | 可以使用 BD-PB-INTDL、BD-PB-INTUB、BD-PB-INTVC 或 BD-PB-INTWRAP 作为替代。 |
BD-PB-POVR | 可以使用 BD-PB-VOVR 作为替代。 |
CODSTA-63_b | 可以使用 CODSTA-307 和 CODSTA-308 作为替代。 |
CWE-476-b | 从 CWE Top 25 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。 |
HICPP-4_1_1-b | 从 High Integrity C++ 配置中删除。对于其他配置,可以使用 PB-41_b 作为替代。 |
MISRA2008-0_3_1_f | 从 MISRA C++ 2008 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。 |
MISRA2012-DIR-4_1_f | 从 MISRA C 2012 (遗留) 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。 |
MISRAC2012-DIR_4_1-f | 从 MISRA C 2023 (MISRA C 2012) 配置中删除。对于其他配置,可以使用 BD-PB-CC 或 BD-PB-NP 作为替代。 |
MISRACPP2023-7_0_3-b | 从 MISRA C++ 2023 配置中删除。对于其他配置,可以使用 MISRA2004-6_2 作为替代。 |