CodeSonar Release 7.4, patchlevel 0: Release Notes



Notes on Upgrading

The minimum CodeSonar version for direct upgrade to CodeSonar 7.4 or later is 5.4p0. If you have a hub that is running CodeSonar 5.3p0 or earlier, contact CodeSecure support for assistance in upgrading.

If you have made changes to any of your CodeSonar configuration files, you will need to upgrade those files as part of the upgrade process.

What's New

Warning Classes There are several new warning classes for C/C++, Java, and C#.
Functionality for existing C/C++ warning classes Inconsistent Function Declarations and Inconsistent Object Declarations has been extended.
JSF++ There is a new warning category kind: JSF++. JSF++ categories correspond to guidelines in the Joint Strike Fighter Air Vehicle C++ Coding Standards.
Configuration Tool [CodeSonar SaaS only] When you select main menu item 1 "Install, connect to existing hub", and specify a SaaS hub to connect to, the configuration questions now include one about whether you would like to default to performing analyses using the SaaS cloud instead of your own resources. Previously, the configuration tool always behaved as if the answer to this question was "No".
New codesonar analyze option One new option.
  • -srcroot path/to/basedir: when warning information from this analysis is exported in SARIF format, source file paths will be expressed relative to path/to/basedir.
GUI Changes Two changes:
Authentication Services Configuration When you configure a hub to use a third-party authentication service, an authorizing user must now be specified. The authentication service will only be able to perform hub operations that the authorizing user has permission to perform.
  • If you are upgrading a hub that is already configured to use one or more third-party authentication services, the authorizing user for these services will be set to Administrator.
  • In general, we recommend setting the Authorizing User as follows.
    • CodeSonar SaaS: the user account that is configuring the authentication service.
    • otherwise: special user Administrator
CWE This version of CodeSonar uses CWE v4.11, released April 27, 2023.
codesonar dump_warnings.py There are several changes to the behavior of the codesonar dump_warnings.py subcommand.
Configuration Presets New presets misra2012-0, misra2012-1, misra2012-2, misra2012-3, misra2012-4 each enable the warning classes that are mapped to a rule in the indicated edition of MISRA C:2012.
New presets jsf++ and jsf++_inc enable warning classes that are mapped to guidelines in the Joint Strike Fighter Air Vehicle C++ Coding Standards.
Configuration Parameters New configuration parameter SRCROOT_PATHS: specifies base directories for the CodeSonar SARIF generator to use when relativizing file paths.
MISRA C:2012 Editions CodeSonar now separately tracks the various editions of MISRA C:2012.
HTTP API HTTP endpoints that produce SARIF listings now have a new optional parameter: "detail".
SARIF Export SARIF export functionality has been extended.
  • SARIF export is now available for arbitrary sets of warnings (previously, it was only available for warnings from a single analysis.
  • You can now specify a detail level for SARIF exported through codesonar dump_warnings.py or the HTTP API.
AST Changes There is one modified normalized C/C++ AST class, and five modified unnormalized C/C++ AST classes. There is also a new helper enumeration.
Performance Improvements CodeSonar will generally run faster than previously in environments where ulimit -n is above 10000.
Custom Authenticator API There are several changes.
  • The return value for get_user_from_request() no longer has a return_state field.
  • The conf_data argument to sso_redirect() must be included as a POST field named RelayState in the IdP response to the hub.
RBAC Changes There are some changes to the RBAC permission requirements for third-party authentication services.
C# Build/Analysis Note The -msbuild-solution option is suitable for use with Visual Studio 2017 and later only.
It cannot be used with the CodeSonar Plug-in for Visual Studio (regardless of version).
TLS Root Certificates The TLS root certificates have been updated.
Database Upgrade CodeSonar now uses PostgreSQL 15.
Linux Support glibc versions before 2.11.3 are no longer supported.
Jira Server Note Atlassian is retiring its Jira Server offering. The CodeSonar integration for Jira Server will thus no longer be available.
This does not affect Jira Cloud.
Deprecation Notices CodeSonar warning class mappings to the "Build Security In" (BSI) taxonomy are deprecated as of this release. Mappings to BSI:* categories will be removed in the next release.

Warning Classes

There are several new warning classes for C/C++, Java, and C#.

Functionality for two existing C/C++ warning classes has been extended:

New Warning Classes

New Warning Classes Mnemonic
C/C++
File Open for Both Read and Write IO.BRAW
High Cyclomatic Complexity LANG.METRIC.VG_P
Inappropriate C Atomic Initialization CONCURRENCY.C_ATOMIC.INIT
Java
Clone Call to Super is Missing (Java) JAVA.CLASS.CLONE.CCSM
Comparison to Class Names (Java) JAVA.COMPARE.EQUALS.CN
Cross Site Scripting In Error Message Web Page (Java) JAVA.IO.INJ.XSS.EMWP
Direct Thread Usage in Http Servlet (Java) JAVA.INSEC.HTTP.DTU
Execution After Redirect (Java) JAVA.INSEC.EAR
Explicit Finalize (Java) JAVA.FUNCS.EF
Format String Injection (Java) JAVA.IO.INJ.FMT
Hardcoded Cryptographic Key (Java) JAVA.HARDCODED.KEY
Missing Required Cryptographic Step (Java) JAVA.CRYPTO.MRCS
Mutable Public Static Final Array (Java) JAVA.TYPE.MPSFA
Open Redirect (Java) JAVA.IO.TAINT.HTTP.OR
Tainted Allocation Size (Java) JAVA.IO.TAINT.SIZE
Unsafe Session Expiration Time (Java) JAVA.INSEC.USET
Use of Same Seed (Java) JAVA.INSEC.SS
C#
Comparison to Class Names (C#) CSHARP.COMPARE.EQUALS.CN
Cross Site Scripting In Error Message Web Page (C#) CSHARP.IO.INJ.XSS
Execution After Redirect (C#) CSHARP.INSEC.EAR
Format String Injection (C#) CSHARP.IO.INJ.FMT
Hardcoded Cryptographic Key (C#) CSHARP.HARDCODED.KEY
Missing Required Cryptographic Step (C#) CSHARP.CRYPTO.MRCS
Mutable Public Static Final Array (C#) CSHARP.TYPE.MPSFA
Open Redirect (C#) CSHARP.IO.TAINT.HTTP.OR
Tainted Allocation Size (C#) CSHARP.IO.TAINT.SIZE
Unsafe Session Expiration Time (C#) CSHARP.INSEC.USET
Use of Same Seed (C#) CSHARP.INSEC.SS

New Warning Category Kind: JSF++

CodeSonar now provides mappings for the Joint Strike Fighter Air Vehicle C++ Coding Standards.

Relevant JSF++ mappings for each warning class are displayed in the following locations.

There are two new related presets :

MISRA C:2012 Editions

CodeSonar now separately tracks the various editions of MISRA C:2012.

More-detailed version tracking for MISRA C:2012 will be added in a future version.
Edition tracking for other category kinds may be added in a future version.

SARIF Export

SARIF export functionality has been extended.

codesonar dump_warnings.py

There are several changes to the behavior of the codesonar dump_warnings.py subcommand.

HTTP API

HTTP endpoints that produce SARIF listings now have a new optional parameter: "detail".

The affected endpoints are:

AST Changes

There is one modified normalized C/C++ AST class.

There are five modified unnormalized AST classes.

There is also a new helper enumeration: atomic_kind.

Customer Tickets Fixed

NUMBER NAME NOTES
CSO-2273, ZD-27442 Document how to reassign hub service to another user Documentation added.
CSO-2305 FP: Conversion: Pointer to Incomplete fixed
CSO-2430, ZD-27449 Compiler model update for _Float16 fixed
CSO-2433, ZD-27545 CodeSonar, need to add more information to log output for message: Cannot open file for build output fixed
CSO-2437 Mistake in the Qlik integration manual Documentation updated.
CSO-2508, ZD-27585 Update SARIF to include "Significance" and "Warning ID" information fixed
CSO-2510, ZD-27641 "Default Role for Saved Resources" dropdown doesnt offer a newly created, user attached role, as a choice fixed
CSO-2550, ZD-27719 Keil armcc missing definition for __promise keyword fixed
CSO-2568, ZD-27686 getting "Too Many Parse Errors" because of arm_neon.h version, compiler arm-elina-linux-gnueabi-g++ fixed
CSO-2603, ZD-27755 FN - Buffer Overrun related to std::vector::operator[] fixed
CSO-2617, ZD-27702 Manual update: provide more information on how the -msbuild option operates Documentation updated.
CSO-2637, ZD-27740 FE crash fixed
CSO-2640, ZD-27819 Binary analysis not finding entry point fixed
CSO-2649, ZD-27907 parse error related to iccarm use of short enums fixed
CSO-2669, ZD-27961 issues when compiling with IAR 9.32.1, and using the vprintf function fixed
CSO-2675, ZD-27986 IAR 9.32.1 and conditional detection of linkage fixed
CSO-2705, ZD-28104 Update manual documentation for BackupRestoreDBTLS.htm Documentation updated.
CSO-2828, ZD-28240 Hub Exception if Anonymous does not have G_SIGN_IN fixed
CSO-2868, ZD-28277 Pylint errors in Python analysis fixed
CSO-2882, ZD-28319 Error when using '-remote-archive' option when you did not use '-launchd-home' with your 'install-launchd' command fixed
CSO-2892, ZD-28347 ccppc.exe - Parse error: static_assert(sizeof(size_t) == 8, "This code is for 64-bit size_t."); fixed
CSO-2895, ZD-28174 Recover hub after a failed upgrade fixed
CSO-2902, ZD-28317 Setting up remote-managed/remote-requested launchd groups when running concurrent analyses There is a new manual page: Task: Set Up and Perform a Remote-Managed Analysis.
CSO-2956, ZD-28455 SaaS hub - customer able to escalate privileges because of SSO configuration fixed
CSO-2961, ZD-28465 dump_warnings.py with option "--gained-since-previous-analysis" returns CS_INTERNAL_ERROR_CONNECTION_FAILED, 0 fixed
CSO-2962 The description of CodeSonar for Libraries is out of date fixed; documentation updated.
CSO-2983, ZD-28499 Typo in Okta Setup Documentation fixed

Note. This page contains references to HTTP API documentation, which is served directly by the hub and cannot be accessed via a file:// URL. For active HTTP API documentation links, start a hub (if one is not already running), then open the manual from the hub.