CodeQL 2.9.1 (2022-05-05)¶
Contents
This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the code scanning section on the GitHub blog, relevant GitHub Changelog updates, changes in the CodeQL extension for Visual Studio Code, and the CodeQL Action changelog.
Security Coverage¶
CodeQL 2.9.1 runs a total of 327 security queries when configured with the Default suite (covering 140 CWE). The Extended suite enables an additional 103 queries (covering 29 more CWE). 3 security queries have been added with this release.
CodeQL CLI¶
There are no user-facing CLI changes in this release.
Query Packs¶
Minor Analysis Improvements¶
Java/Kotlin¶
- Query
java/insecure-cookie
no longer produces a false positive ifcookie.setSecure(...)
is called passing a constant that always equalstrue
.
JavaScript/TypeScript¶
- The call graph now deals more precisely with calls to accessors (getters and setters). Previously, calls to static accessors were not resolved, and some method calls were incorrectly seen as calls to an accessor. Both issues have been fixed.
New Queries¶
C/C++¶
- An new query
cpp/external-entity-expansion
has been added. The query detects XML objects that are vulnerable to external entity expansion (XXE) attacks.
Ruby¶
- Added a new query,
rb/insecure-download
. The query finds cases where executables and other sensitive files are downloaded over an insecure connection, which may allow for man-in-the-middle attacks. - Added a new query,
rb/regex/missing-regexp-anchor
, which finds regular expressions which are improperly anchored. Validations using such expressions are at risk of being bypassed. - Added a new query,
rb/incomplete-sanitization
. The query finds string transformations that do not replace or escape all occurrences of a meta-character.
Language Libraries¶
Bug Fixes¶
Java/Kotlin¶
- The QL class
JumpStmt
has been made the superclass ofBreakStmt
,ContinueStmt
andYieldStmt
. This allows directly using its inherited predicates without having to explicitly cast toJumpStmt
first.
Breaking Changes¶
C/C++¶
- The signature of
allowImplicitRead
onDataFlow::Configuration
andTaintTracking::Configuration
has changed fromallowImplicitRead(DataFlow::Node node, DataFlow::Content c)
toallowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c)
.
C#¶
- The signature of
allowImplicitRead
onDataFlow::Configuration
andTaintTracking::Configuration
has changed fromallowImplicitRead(DataFlow::Node node, DataFlow::Content c)
toallowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c)
.
Java/Kotlin¶
- The signature of
allowImplicitRead
onDataFlow::Configuration
andTaintTracking::Configuration
has changed fromallowImplicitRead(DataFlow::Node node, DataFlow::Content c)
toallowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c)
.
Python¶
- The signature of
allowImplicitRead
onDataFlow::Configuration
andTaintTracking::Configuration
has changed fromallowImplicitRead(DataFlow::Node node, DataFlow::Content c)
toallowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c)
.
Ruby¶
- The signature of
allowImplicitRead
onDataFlow::Configuration
andTaintTracking::Configuration
has changed fromallowImplicitRead(DataFlow::Node node, DataFlow::Content c)
toallowImplicitRead(DataFlow::Node node, DataFlow::ContentSet c)
.
Minor Analysis Improvements¶
C/C++¶
- More Windows pool allocation functions are now detected as
AllocationFunction
s. - The
semmle.code.cpp.commons.Buffer
library has been enhanced to handle array members of classes that do not specify a size.
Java/Kotlin¶
- Improved the data flow support for the Android class
SharedPreferences$Editor
. Specifically, the fluent logic of some of its methods is now taken into account when calculating data flow.- Added flow sources and steps for JMS versions 1 and 2.
- Added flow sources and steps for RabbitMQ.
- Added flow steps for
java.io.DataInput
andjava.io.ObjectInput
implementations.
- Added data-flow models for the Spring Framework component
spring-beans
.