This documentation is not maintained. Please refer to doc.castsoftware.com/technologies to find the latest updates.

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 IdNew RuleDetails
8424FALSEFixes an issue for the quality rule "Avoid using hard-coded HMAC keys" caused by the specific type java.util.Base64$Decoder
7742FALSEImproved support for the quality rule "Avoid SQL injection" (for JEE): support of JDBI 3.
8420FALSEImproved support for the quality rule "Avoid second order SQL injection" (for JEE): support of JDBI 3
8490FALSEImproved support for the quality rule "Avoid SQL injection through API requests" (for JEE): support of JDBI 3
8044FALSEFix 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
8508FALSEFix 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
8542FALSEFix 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
8544FALSEFix 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
8418FALSEFix 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
8514FALSEFix 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 IdNew RuleDetails
8416FALSEImproved support for the rule "Avoid use of a reversible one-way hash" (for JEE): support of "org.apache.commons.codec".
8424FALSEImproved support for the rule "Avoid using hard-coded HMAC keys" (for JEE): support of "org.apache.commons.codec".
8408FALSEImproved support for the rule "Avoid reflected cross-site scripting (non persistent)" (for .NET): support of "System.Web.HttpResponseBase".
8410FALSEImproved support for the rule "Avoid cross-site scripting (persistent)" (for .NET): support of "System.Web.HttpResponseBase".
8482FALSEImproved 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 IdNew RuleDetails
8444FALSEImproved support for the rule "Avoid resource URL manipulation" (for JEE): support of "java.lang.Class" and "java.lang.Object".
1025048FALSEImproved support for the rule "Avoid hard-coded password in connection string" (for .NET): support of "System.Data".
1025054FALSEImproved 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.
8438FALSEImproved support for the rule "Avoid code injection" (for .NET): support of "System.CodeDom.Compiler".
8524FALSEImproved support for the rule "Avoid deserialization injection" (for .NET): support of "Newtonsoft.Json".
8526FALSEImproved support for the rule "Avoid second order deserialization injection" (for .NET): support of "Newtonsoft.Json".
8528FALSEImproved support for the rule "Avoid deserialization injection through API requests" (for .NET): support of "Newtonsoft.Json".
8408FALSEImproved support for the rule "Avoid reflected cross-site scripting (non persistent)" (for .NET): support of "System.Console".
8410FALSEImproved support for the rule "Avoid cross-site scripting (persistent)" (for .NET): support of "System.Console".
8482FALSEImproved support for the rule "Avoid cross-site scripting through API requests" (for .NET): support of "System.Console".
8518FALSEImproved support for the rule "Avoid regular expression injection" (for JEE): support of "spring-security".
8520FALSEImproved support for the rule "Avoid second order regular expression injection" (for JEE): support of "spring-security".
8522FALSEImproved support for the rule "Avoid regular expression injection through API requests" (for JEE): support of "spring-security".
1025024FALSEImproved support for the rule "Avoid disabling the expiration time validation of a JWT token" (for .NET): support of "System.IdentityModel.Tokens.Jwt".
8408FALSEImproved support for the rule "Avoid reflected cross-site scripting (non persistent)" (for JEE): support of "java.awt.Component".
8410FALSEImproved support for the rule "Avoid cross-site scripting (persistent)" (for JEE): support of "java.awt.Component".
8482FALSEImproved support for the rule "Avoid cross-site scripting through API requests" (for JEE): support of "java.awt.Component".
8438FALSEImproved support for the rule "Avoid code injection" (for JEE): support of "java.lang.reflect".
8500FALSEImproved support for the rule "Avoid code injection through API requests" (for JEE): support of "java.lang.reflect".
8416FALSEImproved support for the rule "Avoid use of a reversible one-way hash" (for JEE): support of "org.springframework.util".
7742FALSEImproved support for the rule "Avoid SQL injection" (for JEE): support of frameworks with "IRepository" in their type name.
8420FALSEImproved support for the rule "Avoid second order SQL injection" (for JEE): support of frameworks with "IRepository" in their type name.
8490FALSEImproved support for the rule "Avoid SQL injection through API requests" (for JEE): support of frameworks with "IRepository" in their type name.
7752FALSEImproved support for the rule "Avoid file path manipulation" (for JEE): support of "org.apache.pdfbox".
8506FALSEImproved 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 IdDetails
39791Fixes 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 IdNew RuleDetails
8222FALSEThe Security Analyzer now recognizes automatically Password/password setters as candidates for the quality rule "Avoid hard-coded credentials"
8518FALSEImproved support for the quality rule "Avoid regular expression injection" (for JEE): support of org.apache.oro.
8520FALSEImproved support for the quality rule "Avoid second order regular expression injection" (for JEE): support of org.apache.oro.
8522FALSEImproved support for the quality rule "Avoid regular expression injection through API requests" (for JEE): support of org.apache.oro.
7742FALSEImproved support for the quality rule "Avoid SQL injection" (for .NET): support of Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.
8420FALSEImproved support for the quality rule "Avoid second order SQL injection" (for .NET): support of Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.
8490FALSEImproved support for the quality rule "Avoid SQL injection through API requests" (for .NET): support of Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.
8222FALSEImproved support for the quality rule "Avoid hard-coded credentials" (for JEE): support of android.webkit.HttpAuthHandler.
1025054FALSEImproved support for the quality rule "Avoid plaintext storage of password" (for JEE): support of android.webkit.HttpAuthHandler.
7742FALSEImproved support for the quality rule "Avoid SQL injection" (for .NET): support of MySql.Data.MySqlClient.MySqlHelper.
8420FALSEImproved support for the quality rule "Avoid second order SQL injection" (for .NET): support of MySql.Data.MySqlClient.MySqlHelper.
8490FALSEImproved support for the quality rule "Avoid SQL injection through API requests" (for .NET): support of MySql.Data.MySqlClient.MySqlHelper.
7742FALSEImproved support for the quality rule "Avoid SQL injection" (for .NET): support of Microsoft.SqlServer.Server.SqlPipe.
8420FALSEImproved support for the quality rule "Avoid second order SQL injection" (for .NET): support of Microsoft.SqlServer.Server.SqlPipe.
8490FALSEImproved support for the quality rule "Avoid SQL injection through API requests" (for .NET): support of Microsoft.SqlServer.Server.SqlPipe.
8240FALSEImproved support for the quality rule "Avoid using unsecured cookie" (for JEE): support of org.apache.commons.httpclient.
1025016FALSEImproved support for the quality rule "Avoid using cookie without the HttpOnly flag" (for JEE): support of org.apache.commons.httpclient.
8044FALSEThe 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".
8508FALSEThe 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".
8542FALSEThe 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".
8544FALSEThe 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".
7746FALSEImproved support for the quality rule "Avoid LDAP injection" (for JEE): support of org.apache.directory.ldap.
8492FALSEImproved support for the quality rule "Avoid LDAP injection through API requests" (for JEE): support of org.apache.directory.ldap.
1025010FALSEImproved support for the quality rule "Avoid second order LDAP injection" (for JEE): support of org.apache.directory.ldap.

1.0.5-funcrel

Rules

Rule IdNew RuleDetails
1025052TRUENew rule: "Avoid using unnormalized input strings" has been added.
1025054TRUENew rule: "Avoid plaintext storage of password" has been added.
8222FALSEImproved support for the quality rule "Avoid hard-coded credentials" (for .NET and JEE)

1.0.4-funcrel

Resolved Issues

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

Rules

Rule IdNew RuleDetails
1025050TRUENew rule: "Avoid dangerous file inclusion" has been added.
7742FALSEImproved support for the quality rule "Avoid SQL injection" (for .NET): support of SQLite-net.
7742FALSEImproved support for the quality rule "Avoid SQL injection" (for .NET): support of Microsoft.Data.Sqlite.
7748FALSERemoved false positives for the rule "Avoid OS command injection" (7748).

1.0.3-funcrel

Rules

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

1.0.2-funcrel

Rules

Rule IdNew RuleDetails
1025024TRUENew rule: "Avoid disabling the expiration time validation of a JWT token" is added with the support of Microsoft.IdentityModel framework for .NET.
1025026TRUENew 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.
1025028TRUENew 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.
1025030TRUENew rule: "Avoid hard-coded JWT secret keys" is added with the support of jwkt for java.
1025032TRUENew rule: "Avoid insecure parameters for PBKDF2 password encoder" is added.
1025034TRUENew rule: "Avoid insecure parameters for BCrypt password encoder" is added.
1025036TRUENew rule: "Avoid insecure parameters for Argon2 password encoder" is added.
1025038TRUENew 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 IdNew RuleDetails
7752FALSERemoved some rare false positives for the quality rule: "Avoid file path manipulation" (.NET only).
8222FALSEImproved the support for the quality rule: "Avoid hard-coded credentials" (for .NET and Java).
8240FALSERule: "Avoid using unsecured cookie" moved to "Secure Coding - Weak Security Features".
1025018TRUENew rule: "Avoid cookie injection" is added for .NET and Java.
1025010TRUENew rule: "Avoid second order LDAP injection" is added for .NET and Java.
8536FALSEImproved 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.
1025020TRUENew rule: "Avoid data filter injection" is added for .NET and Java.
1025022TRUENew rule: "Avoid data filter injection through API requests" is added for .NET and Java.
1025002TRUENew rule: "Avoid second order XPath injection" is added for .NET and Java.
1025004TRUENew rule: "Avoid second order URL redirection to untrusted site" is added for .NET and Java.
1025016TRUENew 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 IdNew RuleDetails
1025000TRUEA new rule "Avoid second order OS command injection" has been added in this release.