Release Notes - 1.0

1.0.11-funcrel

Resolved Issues

Customer Ticket Id Details
44572 Provides improved support (including removing false positives) for the quality rule "Avoid using unsecured cookie" (for .NET): the Security Analyzer now takes into account the `Secure` value if it is equals to `FormAuthentication.RequireSSL`.

Other Updates

Details
In a JEE environment, some methods of `org.apache.commons.compress`, `java.util.Scanner` and `com.vaadin.ui` are now recognized as inputs. This change may impact all rules computed by the Security Analyzer.
The Security Analyzer is now able to explore all arguments of methods that have a variable number of arguments, not just the first argument. Example of a method with a variable number of arguments: `java.lang.ProcessBuilder(String… command)`.

Rules

Rule Id New Rule Details
7750 FALSE Fix false positives for the quality rule "Avoid XPath injection" (for .NET) when using some methods of `System.Xml.XmlNode`.
8504 FALSE Fix false positives for the quality rule "Avoid XPath injection through API requests" (for .NET) when using some methods of `System.Xml.XmlNode`.
1025002 FALSE Fix false positives for the quality rule "Avoid second order XPath injection" (for .NET) when using some methods of `System.Xml.XmlNode`.
7748 FALSE Improved support for the quality rule "Avoid OS command injection" (for JEE): better support of `java.lang.ProcessBuilder`.
8494 FALSE Improved support for the quality rule "Avoid OS command injection through API requests" (for JEE): better support of `java.lang.ProcessBuilder`.
1025000 FALSE Improved support for the quality rule "Avoid second order OS command injection" (for JEE): better support of `java.lang.ProcessBuilder`.
8518 FALSE Improved support for the quality rule "Avoid regular expression injection" (for JEE): support of `dk.brics.automaton.RegExp`.
8520 FALSE Improved support for the quality rule "Avoid second order regular expression injection" (for JEE): support of `dk.brics.automaton.RegExp`.
8522 FALSE Improved support for the quality rule "Avoid regular expression injection through API requests" (for JEE): support of `dk.brics.automaton.RegExp`.
7750 FALSE Improved support for the quality rule "Avoid XPath injection" (for JEE): support of `org.apache.xpath.XPathAPI`.
8504 FALSE Improved support for the quality rule "Avoid XPath injection through API requests" (for JEE): support of `org.apache.xpath.XPathAPI`.
1025002 FALSE Improved support for the quality rule "Avoid second order XPath injection" (for JEE): support of `org.apache.xpath.XPathAPI`.
7742 FALSE Fix false positives for the quality rule "Avoid SQL injection" (for JEE) when using the methods `javax.persistence.criteria.CriteriaBuilder.createQuery` and `javax.persistence.EntityManager.createQuery`.
8420 FALSE Fix false positives for the quality rule "Avoid second order SQL injection" (for JEE) when using the methods `javax.persistence.criteria.CriteriaBuilder.createQuery` and `javax.persistence.EntityManager.createQuery`.
8490 FALSE Fix false positives for the quality rule "Avoid SQL injection through API requests" (for JEE) when using the methods `javax.persistence.criteria.CriteriaBuilder.createQuery` and `javax.persistence.EntityManager.createQuery`.

1.0.10-funcrel

Resolved Issues

Customer Ticket Id Details
42131 Fixes a false positive for the rule "Avoid hard-coded password in connection string".
42507 Fixes an issue that can cause a rare crash (ERROR System.ApplicationException) of the Security Analyzer.

Other Updates

Details
The Security Analyzer now displays more complete violation paths. The first consequence is that the dashboard may display more steps for some violations. The second consequence is that the Security Analyzer may report additional violations in some rare situations.
The Security Analyzer now displays an additional step for violations (the first step of these violations was missing) when the first step comes from one of the following extensions: DWR, SpringMVC, JaxRS, SecurityForJava, or when the first step is the argument of a main/Main function or when the first step is a call on an MVC method.

Rules

Rule Id New Rule Details
8542 FALSE The quality rule "Avoid debug forging" now contains more sanitization methods.
8544 FALSE The quality rule "Avoid debug forging through API requests" now contains more sanitization methods.
7742 FALSE Improved support for the rule "Avoid SQL injection" (for JEE): support of "com.crystaldecisions.sdk.occa.infostore" and "org.springframework.jdbc".
8420 FALSE Improved support for the rule "Avoid second order SQL injection" (for JEE): support of "com.crystaldecisions.sdk.occa.infostore" and "org.springframework.jdbc".
8490 FALSE Improved support for the rule "Avoid SQL injection through API requests" (for JEE): support of "com.crystaldecisions.sdk.occa.infostore" and "org.springframework.jdbc".
7748 FALSE Improved support for the rule "Avoid OS command injection" (for JEE): support of "java.lang.ProcessBuilder".
8494 FALSE Improved support for the rule "Avoid OS command injection through API requests" (for JEE): support of "java.lang.ProcessBuilder".
1025000 FALSE Improved support for the rule "Avoid second order OS command injection" (for JEE): support of "java.lang.ProcessBuilder".
8446 FALSE Improved support for the rule "Avoid URL redirection to untrusted site" (for JEE): support of "org.springframework.http".
1025004 FALSE Improved support for the rule "Avoid second order URL redirection to untrusted site" (for JEE): support of "org.springframework.http".
8516 FALSE Improved support for the rule "Avoid URL redirection to untrusted site through API requests" (for JEE): support of "org.springframework.http".

1.0.9-funcrel

Other Updates

Details
The Security Analyzer now supports the "jakarta.servlet" similar to the existing support for "javax.servlet".
For Java technologies, improved support for BufferedReader and InputStreamReader types has now been implemented. This change may impact all rules computed by the Security Analyzer.

Rules

Rule Id New Rule Details
8424 FALSE Fixes an issue for the quality rule "Avoid using hard-coded HMAC keys" caused by the specific type java.util.Base64$Decoder
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for JEE): support of JDBI 3.
8420 FALSE Improved support for the quality rule "Avoid second order SQL injection" (for JEE): support of JDBI 3
8490 FALSE Improved support for the quality rule "Avoid SQL injection through API requests" (for JEE): support of JDBI 3
8044 FALSE Fix false positives for the quality rule "Avoid log forging" (for .NET and JEE) when there is a numerical type passed in argument of sensible methods
8508 FALSE Fix false positives for the quality rule "Avoid log forging through API requests" (for .NET and JEE) when there is a numerical type passed in argument of sensible methods
8542 FALSE Fix false positives for the quality rule "Avoid debug forging" (for .NET and JEE) when there is a numerical type passed in argument of sensible methods
8544 FALSE Fix false positives for the quality rule "Avoid debug forging through API requests" (for .NET and JEE) when there is a numerical type passed in argument of sensible methods
8418 FALSE Fix false positives for the quality rule "Avoid NoSQL injection" (for .NET and JEE) when there is a numerical type passed in argument of sensible methods
8514 FALSE Fix false positives for the quality rule "Avoid NoSQL injection through API requests" (for .NET and JEE) when there is a numerical type passed in argument of sensible methods

1.0.8-funcrel

Other Updates

Details
Extension com.castsoftware.dwr for "Direct Web Remoting Framework" (https://doc.castsoftware.com/display/TECHNOS/Direct+Web+Remoting ) is able to prepare a collection of user-inputs specific to the DWR environment. This change may impact injection rules computed by the Security Analyzer: more violations may be detected on unchanged source code.
Fixes an issue causing the Security Analyzer to incorrectly detect false positive/not detect true positive violations for the quality rules "Avoid log forging" (8044), "Avoid log forging through API requests" (8508), "Avoid debug forging" (8542), "Avoid debug forging through API requests" (8544), Avoid NoSQL injection" (8418), "Avoid NoSQL injection through API requests" (8514) with numerical user-inputs.

Rules

Rule Id New Rule Details
8416 FALSE Improved support for the rule "Avoid use of a reversible one-way hash" (for JEE): support of "org.apache.commons.codec".
8424 FALSE Improved support for the rule "Avoid using hard-coded HMAC keys" (for JEE): support of "org.apache.commons.codec".
8408 FALSE Improved support for the rule "Avoid reflected cross-site scripting (non persistent)" (for .NET): support of "System.Web.HttpResponseBase".
8410 FALSE Improved support for the rule "Avoid cross-site scripting (persistent)" (for .NET): support of "System.Web.HttpResponseBase".
8482 FALSE Improved support for the rule "Avoid cross-site scripting through API requests" (for .NET): support of "System.Web.HttpResponseBase".

1.0.7-funcrel

Other Updates

Details
For JEE environment, all rules of type "Avoid second order injection" are now computed more accurately. As a consequence after upgrade to this release and a new analysis, violation paths may differ compared with existing results and the number of violations may change.
For JEE environment, some methods of java.net.Socket are now recognized as inputs. This change may impact all rules computed by the Security Analyzer.
For JEE, "jakarta.jms.MessageListener" is now an input for the series of rules "through API requests" computed by the Security Analyzer, such as "Avoid cross-site scripting through API requests". This change may impact existing analysis results for unchanged source code: additional violations may be found that were not found previously.
For .NET, "System.Web.UI.StateBag" instances are now an inputfor the series of quality rules "through API requests" computed by the Security Analyzer, such as "Avoid cross-site scripting through API requests". This change may impact existing analysis results for unchanged source code: additional violations may be found that were not found previously.
The Security Analyzer is now able to follow non-static fields and in some very rare situations, it is now able to explore more paths. This fix impacts all rules computed by the Security Analyzer: the number of violations may change in comparison to previous results..
Improvements have been implemented for the rules "Avoid NoSQL injection" (8418) , "Avoid NoSQL injection through API requests" (8514): previously these rules were not able to correctly identify input arguments with specific types such as int / long / float / double or other specific types like "java.lang.Throwable". This situation has now been resolved and these input types are now handled correctly. As a result, after upgrade to this release and the generation of a new snapshot on unchanged source code, some violations that were previously detected erroneously may now not be detected.

Rules

Rule Id New Rule Details
8444 FALSE Improved support for the rule "Avoid resource URL manipulation" (for JEE): support of "java.lang.Class" and "java.lang.Object".
1025048 FALSE Improved support for the rule "Avoid hard-coded password in connection string" (for .NET): support of "System.Data".
1025054 FALSE Improved support for the rule "Avoid plaintext storage of password" (for JEE): the rule now supports a situation where the source is a call to the "getProperty" method.
8438 FALSE Improved support for the rule "Avoid code injection" (for .NET): support of "System.CodeDom.Compiler".
8524 FALSE Improved support for the rule "Avoid deserialization injection" (for .NET): support of "Newtonsoft.Json".
8526 FALSE Improved support for the rule "Avoid second order deserialization injection" (for .NET): support of "Newtonsoft.Json".
8528 FALSE Improved support for the rule "Avoid deserialization injection through API requests" (for .NET): support of "Newtonsoft.Json".
8408 FALSE Improved support for the rule "Avoid reflected cross-site scripting (non persistent)" (for .NET): support of "System.Console".
8410 FALSE Improved support for the rule "Avoid cross-site scripting (persistent)" (for .NET): support of "System.Console".
8482 FALSE Improved support for the rule "Avoid cross-site scripting through API requests" (for .NET): support of "System.Console".
8518 FALSE Improved support for the rule "Avoid regular expression injection" (for JEE): support of "spring-security".
8520 FALSE Improved support for the rule "Avoid second order regular expression injection" (for JEE): support of "spring-security".
8522 FALSE Improved support for the rule "Avoid regular expression injection through API requests" (for JEE): support of "spring-security".
1025024 FALSE Improved support for the rule "Avoid disabling the expiration time validation of a JWT token" (for .NET): support of "System.IdentityModel.Tokens.Jwt".
8408 FALSE Improved support for the rule "Avoid reflected cross-site scripting (non persistent)" (for JEE): support of "java.awt.Component".
8410 FALSE Improved support for the rule "Avoid cross-site scripting (persistent)" (for JEE): support of "java.awt.Component".
8482 FALSE Improved support for the rule "Avoid cross-site scripting through API requests" (for JEE): support of "java.awt.Component".
8438 FALSE Improved support for the rule "Avoid code injection" (for JEE): support of "java.lang.reflect".
8500 FALSE Improved support for the rule "Avoid code injection through API requests" (for JEE): support of "java.lang.reflect".
8416 FALSE Improved support for the rule "Avoid use of a reversible one-way hash" (for JEE): support of "org.springframework.util".
7742 FALSE Improved support for the rule "Avoid SQL injection" (for JEE): support of frameworks with "IRepository" in their type name.
8420 FALSE Improved support for the rule "Avoid second order SQL injection" (for JEE): support of frameworks with "IRepository" in their type name.
8490 FALSE Improved support for the rule "Avoid SQL injection through API requests" (for JEE): support of frameworks with "IRepository" in their type name.
7752 FALSE Improved support for the rule "Avoid file path manipulation" (for JEE): support of "org.apache.pdfbox".
8506 FALSE Improved support for the rule "Avoid file path manipulation through API requests" (for JEE): support of "org.apache.pdfbox".

1.0.6-funcrel

Resolved Issues

Customer Ticket Id Details
39791 Fixes an issue causing the Security Analyzer to crash while computing the quality rule "Avoid using unnormalized input strings" (1025052).

Other Updates

Details
For JEE, ESAPI sanitization now applies only to the quality rules 8410 (Avoid cross-site scripting (persistent)), 8408 (Avoid reflected cross-site scripting (non persistent)) and 8482 (Avoid cross-site scripting through API requests). In previous releases ESAPI sanitization applied to all rules, therefore this change may impact existing analysis results for unchanged source code: less violations may be found for rules that are no longer configured for ESAPI santization.
In an ASP.NET MVC environment, the methods of controllers that return a Task<ActionResult> are now a source for the series of quality rules "through API requests" of the Security Analyzer, such as "Avoid cross-site scripting through API requests". This change may impact existing analysis results for unchanged source code: additional violations may be found that were not found previously.

Rules

Rule Id New Rule Details
8222 FALSE The Security Analyzer now recognizes automatically Password/password setters as candidates for the quality rule "Avoid hard-coded credentials"
8518 FALSE Improved support for the quality rule "Avoid regular expression injection" (for JEE): support of org.apache.oro.
8520 FALSE Improved support for the quality rule "Avoid second order regular expression injection" (for JEE): support of org.apache.oro.
8522 FALSE Improved support for the quality rule "Avoid regular expression injection through API requests" (for JEE): support of org.apache.oro.
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.
8420 FALSE Improved support for the quality rule "Avoid second order SQL injection" (for .NET): support of Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.
8490 FALSE Improved support for the quality rule "Avoid SQL injection through API requests" (for .NET): support of Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.
8222 FALSE Improved support for the quality rule "Avoid hard-coded credentials" (for JEE): support of android.webkit.HttpAuthHandler.
1025054 FALSE Improved support for the quality rule "Avoid plaintext storage of password" (for JEE): support of android.webkit.HttpAuthHandler.
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of MySql.Data.MySqlClient.MySqlHelper.
8420 FALSE Improved support for the quality rule "Avoid second order SQL injection" (for .NET): support of MySql.Data.MySqlClient.MySqlHelper.
8490 FALSE Improved support for the quality rule "Avoid SQL injection through API requests" (for .NET): support of MySql.Data.MySqlClient.MySqlHelper.
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of Microsoft.SqlServer.Server.SqlPipe.
8420 FALSE Improved support for the quality rule "Avoid second order SQL injection" (for .NET): support of Microsoft.SqlServer.Server.SqlPipe.
8490 FALSE Improved support for the quality rule "Avoid SQL injection through API requests" (for .NET): support of Microsoft.SqlServer.Server.SqlPipe.
8240 FALSE Improved support for the quality rule "Avoid using unsecured cookie" (for JEE): support of org.apache.commons.httpclient.
1025016 FALSE Improved support for the quality rule "Avoid using cookie without the HttpOnly flag" (for JEE): support of org.apache.commons.httpclient.
8044 FALSE The Security Analyzer now automatically recognizes log/trace/info/warn/error methods for more types (for JEE and .NET) as candidates for the quality rule "Avoid log forging".
8508 FALSE The Security Analyzer now automatically recognizes log/trace/info/warn/error methods for more types (for JEE and .NET) as candidates for the quality rule "Avoid log forging through API requests".
8542 FALSE The Security Analyzer now automatically recognizes automatically log/trace/info/warn/error methods for more types (for JEE and .NET) as candidates for the quality rule "Avoid debug forging".
8544 FALSE The Security Analyzer now automatically recognizes log/trace/info/warn/error methods for more types (for JEE and .NET) as candidates for the quality rule "Avoid debug forging through API requests".
7746 FALSE Improved support for the quality rule "Avoid LDAP injection" (for JEE): support of org.apache.directory.ldap.
8492 FALSE Improved support for the quality rule "Avoid LDAP injection through API requests" (for JEE): support of org.apache.directory.ldap.
1025010 FALSE Improved support for the quality rule "Avoid second order LDAP injection" (for JEE): support of org.apache.directory.ldap.

1.0.5-funcrel

Rules

Rule Id New Rule Details
1025052 TRUE New rule: "Avoid using unnormalized input strings" has been added.
1025054 TRUE New rule: "Avoid plaintext storage of password" has been added.
8222 FALSE Improved support for the quality rule "Avoid hard-coded credentials" (for .NET and JEE)

1.0.4-funcrel

Resolved Issues

Customer Ticket Id Details
38343 Removed some rare false positives for the quality rule: "Avoid OS command injection" (7748).

Rules

Rule Id New Rule Details
1025050 TRUE New rule: "Avoid dangerous file inclusion" has been added.
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of SQLite-net.
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of Microsoft.Data.Sqlite.
7748 FALSE Removed false positives for the rule "Avoid OS command injection" (7748).

1.0.3-funcrel

Rules

Rule Id New Rule Details
8408 FALSE Improved support for the quality rule "Avoid reflected cross-site scripting" (for .NET): support of the type System.IO.TextWriter
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of Microsoft.ServiceFabric.Data
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): improved support of Oracle.DataAccess.Client
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): better support for System.Data types
8408 FALSE Improved support for the quality rule "Avoid reflected cross-site scripting" (for JEE): support of the type "AntiSamy" sanitization framework
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of IBM.Data.DB2 and IBM.Data.Informix
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of MySql.Data, MySqlConnector and Devart.Data.MySql
1025040 TRUE New rule: "Avoid external control of system or configuration setting" is added
1025042 TRUE New rule: "Avoid external control of system or configuration setting through API requests" is added
1025044 TRUE New rule: "Avoid MVC injection" is added
1025046 TRUE New rule: "Avoid MVC injection through AIP requests" is added
1025048 TRUE New rule: "Avoid hard-coded password in connection string" is added
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of System.Web.UI.WebControls.SqlDataSource
7742 FALSE Improved support for the quality rule "Avoid SQL injection" (for .NET): support of Microsoft.Data.SqlClient

1.0.2-funcrel

Rules

Rule Id New Rule Details
1025024 TRUE New rule: "Avoid disabling the expiration time validation of a JWT token" is added with the support of Microsoft.IdentityModel framework for .NET.
1025026 TRUE New rule: "Avoid disabling the expiration time requirement of a JWT token" is added with the support of Microsoft.IdentityModel framework for .NET and jwkt for java.
1025028 TRUE New rule: "Avoid disabling the signature requirement of a JWT token" is added with the support of Microsoft.IdentityModel framework for .NET and jwkt for java.
1025030 TRUE New rule: "Avoid hard-coded JWT secret keys" is added with the support of jwkt for java.
1025032 TRUE New rule: "Avoid insecure parameters for PBKDF2 password encoder" is added.
1025034 TRUE New rule: "Avoid insecure parameters for BCrypt password encoder" is added.
1025036 TRUE New rule: "Avoid insecure parameters for Argon2 password encoder" is added.
1025038 TRUE New rule: "Avoid insecure parameters for SCrypt password encoder" is added.

1.0.1-funcrel

Other Updates

Details
The Security Analyzer now supports JAX-RS entry-points.

Rules

Rule Id New Rule Details
7752 FALSE Removed some rare false positives for the quality rule: "Avoid file path manipulation" (.NET only).
8222 FALSE Improved the support for the quality rule: "Avoid hard-coded credentials" (for .NET and Java).
8240 FALSE Rule: "Avoid using unsecured cookie" moved to "Secure Coding - Weak Security Features".
1025018 TRUE New rule: "Avoid cookie injection" is added for .NET and Java.
1025010 TRUE New rule: "Avoid second order LDAP injection" is added for .NET and Java.
8536 FALSE Improved the support for the rule: "Avoid expression language injection". The Security Analyzer is now able to detect violations of type "Avoid expression language injection" for OGNL expressions.
1025020 TRUE New rule: "Avoid data filter injection" is added for .NET and Java.
1025022 TRUE New rule: "Avoid data filter injection through API requests" is added for .NET and Java.
1025002 TRUE New rule: "Avoid second order XPath injection" is added for .NET and Java.
1025004 TRUE New rule: "Avoid second order URL redirection to untrusted site" is added for .NET and Java.
1025016 TRUE New rule: "Avoid using cookie without the HttpOnly flag" is aded for .NET and Java.

1.0.0-funcrel

Note

This is the first release of the Security Analyzer as a standalone extension. The Security Analyzer has been externalised as an extension to give the feature more flexibility to future development. The Security Analyzer embedded in AIP Core will continue to exist and will be shipped "out of the box" with AIP Core, but only critical bugs will be fixed and no new features or functionality will be added. This extension has the same features and functionality on release as the Security Analyzer embedded in AIP Core (except for the addition of one new rule - see below). The new Security Analyzer extension is compatible with AIP Core ≥ 8.3.44. All future development of the Security Analyzer (bug fixes, new features, functionality etc.) will be completed in the Security Analyzer extension only. The behaviour is as follows: 1) Nothing is automatic - for both AIP Console and "legacy" CAST AIP deployments, the Security Analyzer extension must be manually downloaded and installed in order to use it, 2) if the extension is installed, CAST AIP Console/CAST Management Studio will automatically detect that it exists and will use the extension rather than the analyzer embedded in AIP Core, 3) once the extension has been installed and used to produce analysis results, it is not possible to reverse this choice by removing the extension and re-analyzing the source code again.

Rules

Rule Id New Rule Details
1025000 TRUE A new rule "Avoid second order OS command injection" has been added in this release.