Release Notes - 1.0
-
1.0.12-funcrel
1.0.12-funcrel
Fixes an issue causing the Security Analyzer to crash while computing the code of a complex lambda. Improved support for the quality rule “Avoid SQL injection”: better support of Dapper for .NET. 💎 7742 Improved support for the quality rule “Avoid second order SQL injection”: better support of Dapper for .NET. 💎 8420 Improved support for the quality rule “Avoid SQL injection through API requests”: better support of Dapper for .NET. 💎 8490 NEW New rule: “Avoid numeric user inputs in SQL queries” has been added. 💎 1025058 NEW New rule: “Avoid second order numeric user inputs in SQL queries” has been added. 💎 1025060 NEW New rule: “Avoid numeric user inputs in SQL queries through API requests” has been added. 💎 1025062 Modification of the quality rule “Avoid SQL injection”: when the user input is a numeric value or is modified to a numeric value, violations are now part of the quality rule “Avoid numeric user inputs in SQL queries” (1025058). 💎 7742 Modification of the quality rule “Avoid second order SQL injection”: when the user input is a numeric value or is modified to a numeric value, violations are now part of the quality rule “Avoid second order numeric user inputs in SQL queries” (1025060). 💎 8420 Modification of the quality rule “Avoid SQL injection through API requests”: when the user input is a numeric value or is modified to a numeric value, violations are now part of the quality rule “Avoid numeric user inputs in SQL queries through API requests” (1025062). 💎 8490 The Security Analyzer now supports the following four frameworks: RabbitMQ, Kafka, Azure Service Bus and AWSSDK.SQS for .NET environment. They are considered as tainted input “through API requests”, affecting all rules “through API requests”. As a consequence after upgrade to this release and a new analysis, additional violations may be found. Support for RabbitMQ, Kafka, Azure Service Bus and AWSSDK.SQS for .NET 1.0.11-funcrel
1.0.11-funcrel
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`. 📝 44572 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)`. Fix false positives for the quality rule “Avoid XPath injection” (for .NET) when using some methods of `System.Xml.XmlNode`. 💎 7750 Fix false positives for the quality rule “Avoid XPath injection through API requests” (for .NET) when using some methods of `System.Xml.XmlNode`. 💎 8504 Fix false positives for the quality rule “Avoid second order XPath injection” (for .NET) when using some methods of `System.Xml.XmlNode`. 💎 1025002 Improved support for the quality rule “Avoid OS command injection” (for JEE): better support of `java.lang.ProcessBuilder`. 💎 7748 Improved support for the quality rule “Avoid OS command injection through API requests” (for JEE): better support of `java.lang.ProcessBuilder`. 💎 8494 Improved support for the quality rule “Avoid second order OS command injection” (for JEE): better support of `java.lang.ProcessBuilder`. 💎 1025000 Improved support for the quality rule “Avoid regular expression injection” (for JEE): support of `dk.brics.automaton.RegExp`. 💎 8518 Improved support for the quality rule “Avoid second order regular expression injection” (for JEE): support of `dk.brics.automaton.RegExp`. 💎 8520 Improved support for the quality rule “Avoid regular expression injection through API requests” (for JEE): support of `dk.brics.automaton.RegExp`. 💎 8522 Improved support for the quality rule “Avoid XPath injection” (for JEE): support of `org.apache.xpath.XPathAPI`. 💎 7750 Improved support for the quality rule “Avoid XPath injection through API requests” (for JEE): support of `org.apache.xpath.XPathAPI`. 💎 8504 Improved support for the quality rule “Avoid second order XPath injection” (for JEE): support of `org.apache.xpath.XPathAPI`. 💎 1025002 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`. 💎 7742 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`. 💎 8420 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`. 💎 8490 1.0.10-funcrel
1.0.10-funcrel
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. The quality rule “Avoid debug forging” now contains more sanitization methods. 💎 8542 The quality rule “Avoid debug forging through API requests” now contains more sanitization methods. 💎 8544 Improved support for the rule “Avoid SQL injection” (for JEE): support of “com.crystaldecisions.sdk.occa.infostore” and “org.springframework.jdbc”. 💎 7742 Improved support for the rule “Avoid second order SQL injection” (for JEE): support of “com.crystaldecisions.sdk.occa.infostore” and “org.springframework.jdbc”. 💎 8420 Improved support for the rule “Avoid SQL injection through API requests” (for JEE): support of “com.crystaldecisions.sdk.occa.infostore” and “org.springframework.jdbc”. 💎 8490 Improved support for the rule “Avoid OS command injection” (for JEE): support of “java.lang.ProcessBuilder”. 💎 7748 Improved support for the rule “Avoid OS command injection through API requests” (for JEE): support of “java.lang.ProcessBuilder”. 💎 8494 Improved support for the rule “Avoid second order OS command injection” (for JEE): support of “java.lang.ProcessBuilder”. 💎 1025000 Improved support for the rule “Avoid URL redirection to untrusted site” (for JEE): support of “org.springframework.http”. 💎 8446 Improved support for the rule “Avoid second order URL redirection to untrusted site” (for JEE): support of “org.springframework.http”. 💎 1025004 Improved support for the rule “Avoid URL redirection to untrusted site through API requests” (for JEE): support of “org.springframework.http”. 💎 8516 1.0.9-funcrel
1.0.9-funcrel
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. Fixes an issue for the quality rule “Avoid using hard-coded HMAC keys” caused by the specific type java.util.Base64$Decoder 💎 8424 Improved support for the quality rule “Avoid SQL injection” (for JEE): support of JDBI 3. 💎 7742 Improved support for the quality rule “Avoid second order SQL injection” (for JEE): support of JDBI 3 💎 8420 Improved support for the quality rule “Avoid SQL injection through API requests” (for JEE): support of JDBI 3 💎 8490 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 💎 8044 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 💎 8508 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 💎 8542 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 💎 8544 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 💎 8418 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 💎 8514 1.0.8-funcrel
1.0.8-funcrel
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. Improved support for the rule “Avoid use of a reversible one-way hash” (for JEE): support of “org.apache.commons.codec”. 💎 8416 Improved support for the rule “Avoid using hard-coded HMAC keys” (for JEE): support of “org.apache.commons.codec”. 💎 8424 Improved support for the rule “Avoid reflected cross-site scripting (non persistent)” (for .NET): support of “System.Web.HttpResponseBase”. 💎 8408 Improved support for the rule “Avoid cross-site scripting (persistent)” (for .NET): support of “System.Web.HttpResponseBase”. 💎 8410 Improved support for the rule “Avoid cross-site scripting through API requests” (for .NET): support of “System.Web.HttpResponseBase”. 💎 8482 1.0.7-funcrel
1.0.7-funcrel
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. Improved support for the rule “Avoid resource URL manipulation” (for JEE): support of “java.lang.Class” and “java.lang.Object”. 💎 8444 Improved support for the rule “Avoid hard-coded password in connection string” (for .NET): support of “System.Data”. 💎 1025048 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. 💎 1025054 Improved support for the rule “Avoid code injection” (for .NET): support of “System.CodeDom.Compiler”. 💎 8438 Improved support for the rule “Avoid deserialization injection” (for .NET): support of “Newtonsoft.Json”. 💎 8524 Improved support for the rule “Avoid second order deserialization injection” (for .NET): support of “Newtonsoft.Json”. 💎 8526 Improved support for the rule “Avoid deserialization injection through API requests” (for .NET): support of “Newtonsoft.Json”. 💎 8528 Improved support for the rule “Avoid reflected cross-site scripting (non persistent)” (for .NET): support of “System.Console”. 💎 8408 Improved support for the rule “Avoid cross-site scripting (persistent)” (for .NET): support of “System.Console”. 💎 8410 Improved support for the rule “Avoid cross-site scripting through API requests” (for .NET): support of “System.Console”. 💎 8482 Improved support for the rule “Avoid regular expression injection” (for JEE): support of “spring-security”. 💎 8518 Improved support for the rule “Avoid second order regular expression injection” (for JEE): support of “spring-security”. 💎 8520 Improved support for the rule “Avoid regular expression injection through API requests” (for JEE): support of “spring-security”. 💎 8522 Improved support for the rule “Avoid disabling the expiration time validation of a JWT token” (for .NET): support of “System.IdentityModel.Tokens.Jwt”. 💎 1025024 Improved support for the rule “Avoid reflected cross-site scripting (non persistent)” (for JEE): support of “java.awt.Component”. 💎 8408 Improved support for the rule “Avoid cross-site scripting (persistent)” (for JEE): support of “java.awt.Component”. 💎 8410 Improved support for the rule “Avoid cross-site scripting through API requests” (for JEE): support of “java.awt.Component”. 💎 8482 Improved support for the rule “Avoid code injection” (for JEE): support of “java.lang.reflect”. 💎 8438 Improved support for the rule “Avoid code injection through API requests” (for JEE): support of “java.lang.reflect”. 💎 8500 Improved support for the rule “Avoid use of a reversible one-way hash” (for JEE): support of “org.springframework.util”. 💎 8416 Improved support for the rule “Avoid SQL injection” (for JEE): support of frameworks with “IRepository” in their type name. 💎 7742 Improved support for the rule “Avoid second order SQL injection” (for JEE): support of frameworks with “IRepository” in their type name. 💎 8420 Improved support for the rule “Avoid SQL injection through API requests” (for JEE): support of frameworks with “IRepository” in their type name. 💎 8490 Improved support for the rule “Avoid file path manipulation” (for JEE): support of “org.apache.pdfbox”. 💎 7752 Improved support for the rule “Avoid file path manipulation through API requests” (for JEE): support of “org.apache.pdfbox”. 💎 8506 1.0.6-funcrel
1.0.6-funcrel
Fixes an issue causing the Security Analyzer to crash while computing the quality rule “Avoid using unnormalized input strings” (1025052). 📝 39791 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.The Security Analyzer now recognizes automatically Password/password setters as candidates for the quality rule “Avoid hard-coded credentials” 💎 8222 Improved support for the quality rule “Avoid regular expression injection” (for JEE): support of org.apache.oro. 💎 8518 Improved support for the quality rule “Avoid second order regular expression injection” (for JEE): support of org.apache.oro. 💎 8520 Improved support for the quality rule “Avoid regular expression injection through API requests” (for JEE): support of org.apache.oro. 💎 8522 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of Microsoft.EntityFrameworkCore.RelationalQueryableExtensions. 💎 7742 Improved support for the quality rule “Avoid second order SQL injection” (for .NET): support of Microsoft.EntityFrameworkCore.RelationalQueryableExtensions. 💎 8420 Improved support for the quality rule “Avoid SQL injection through API requests” (for .NET): support of Microsoft.EntityFrameworkCore.RelationalQueryableExtensions. 💎 8490 Improved support for the quality rule “Avoid hard-coded credentials” (for JEE): support of android.webkit.HttpAuthHandler. 💎 8222 Improved support for the quality rule “Avoid plaintext storage of password” (for JEE): support of android.webkit.HttpAuthHandler. 💎 1025054 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of MySql.Data.MySqlClient.MySqlHelper. 💎 7742 Improved support for the quality rule “Avoid second order SQL injection” (for .NET): support of MySql.Data.MySqlClient.MySqlHelper. 💎 8420 Improved support for the quality rule “Avoid SQL injection through API requests” (for .NET): support of MySql.Data.MySqlClient.MySqlHelper. 💎 8490 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of Microsoft.SqlServer.Server.SqlPipe. 💎 7742 Improved support for the quality rule “Avoid second order SQL injection” (for .NET): support of Microsoft.SqlServer.Server.SqlPipe. 💎 8420 Improved support for the quality rule “Avoid SQL injection through API requests” (for .NET): support of Microsoft.SqlServer.Server.SqlPipe. 💎 8490 Improved support for the quality rule “Avoid using unsecured cookie” (for JEE): support of org.apache.commons.httpclient. 💎 8240 Improved support for the quality rule “Avoid using cookie without the HttpOnly flag” (for JEE): support of org.apache.commons.httpclient. 💎 1025016 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”. 💎 8044 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”. 💎 8508 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”. 💎 8542 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”. 💎 8544 Improved support for the quality rule “Avoid LDAP injection” (for JEE): support of org.apache.directory.ldap. 💎 7746 Improved support for the quality rule “Avoid LDAP injection through API requests” (for JEE): support of org.apache.directory.ldap. 💎 8492 Improved support for the quality rule “Avoid second order LDAP injection” (for JEE): support of org.apache.directory.ldap. 💎 1025010 1.0.4-funcrel
1.0.4-funcrel
Removed some rare false positives for the quality rule: “Avoid OS command injection” (7748). 📝 38343 NEW New rule: “Avoid dangerous file inclusion” has been added. 💎 1025050 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of SQLite-net. 💎 7742 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of Microsoft.Data.Sqlite. 💎 7742 Removed false positives for the rule “Avoid OS command injection” (7748). 💎 7748 1.0.3-funcrel
1.0.3-funcrel
Improved support for the quality rule “Avoid reflected cross-site scripting” (for .NET): support of the type System.IO.TextWriter 💎 8408 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of Microsoft.ServiceFabric.Data 💎 7742 Improved support for the quality rule “Avoid SQL injection” (for .NET): improved support of Oracle.DataAccess.Client 💎 7742 Improved support for the quality rule “Avoid SQL injection” (for .NET): better support for System.Data types 💎 7742 Improved support for the quality rule “Avoid reflected cross-site scripting” (for JEE): support of the type “AntiSamy” sanitization framework 💎 8408 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of IBM.Data.DB2 and IBM.Data.Informix 💎 7742 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of MySql.Data, MySqlConnector and Devart.Data.MySql 💎 7742 NEW New rule: “Avoid external control of system or configuration setting” is added 💎 1025040 NEW New rule: “Avoid external control of system or configuration setting through API requests” is added 💎 1025042 NEW New rule: “Avoid MVC injection” is added 💎 1025044 NEW New rule: “Avoid MVC injection through AIP requests” is added 💎 1025046 NEW New rule: “Avoid hard-coded password in connection string” is added 💎 1025048 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of System.Web.UI.WebControls.SqlDataSource 💎 7742 Improved support for the quality rule “Avoid SQL injection” (for .NET): support of Microsoft.Data.SqlClient 💎 7742 1.0.2-funcrel
1.0.2-funcrel
NEW New rule: “Avoid disabling the expiration time validation of a JWT token” is added with the support of Microsoft.IdentityModel framework for .NET. 💎 1025024 NEW 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. 💎 1025026 NEW 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. 💎 1025028 NEW New rule: “Avoid hard-coded JWT secret keys” is added with the support of jwkt for java. 💎 1025030 NEW New rule: “Avoid insecure parameters for PBKDF2 password encoder” is added. 💎 1025032 NEW New rule: “Avoid insecure parameters for BCrypt password encoder” is added. 💎 1025034 NEW New rule: “Avoid insecure parameters for Argon2 password encoder” is added. 💎 1025036 NEW New rule: “Avoid insecure parameters for SCrypt password encoder” is added. 💎 1025038 1.0.1-funcrel
1.0.1-funcrel
The Security Analyzer now supports JAX-RS entry-points. Removed some rare false positives for the quality rule: “Avoid file path manipulation” (.NET only). 💎 7752 Improved the support for the quality rule: “Avoid hard-coded credentials” (for .NET and Java). 💎 8222 Rule: “Avoid using unsecured cookie” moved to “Secure Coding - Weak Security Features”. 💎 8240 NEW New rule: “Avoid cookie injection” is added for .NET and Java. 💎 1025018 NEW New rule: “Avoid second order LDAP injection” is added for .NET and Java. 💎 1025010 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. 💎 8536 NEW New rule: “Avoid data filter injection” is added for .NET and Java. 💎 1025020 NEW New rule: “Avoid data filter injection through API requests” is added for .NET and Java. 💎 1025022 NEW New rule: “Avoid second order XPath injection” is added for .NET and Java. 💎 1025002 NEW New rule: “Avoid second order URL redirection to untrusted site” is added for .NET and Java. 💎 1025004 NEW New rule: “Avoid using cookie without the HttpOnly flag” is aded for .NET and Java. 💎 1025016 1.0.0-funcrel
1.0.0-funcrel
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.NEW A new rule “Avoid second order OS command injection” has been added in this release. 💎 1025000