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.12.5 runs a total of 385 security queries when configured with the Default suite (covering 154 CWE). The Extended suite enables an additional 124 queries (covering 31 more CWE). 2 security queries have been added with this release.
CodeQL CLI¶ Bug Fixes¶Fix a bug in codeql query run
where queries whose path contain colons cannot be run.
The codeql pack install
command now accepts a --additional-packs
option. This option takes a list of directories to search for locally available packs when resolving which packs to install. Any pack that is found locally through --additional-packs
will override any other version of a pack found in the package registry. Locally resolved packs are not added to the lock file.
Because the use of --additional-packs
when running codeql pack install
makes running queries dependent on the local state of the machine initially invoking codeql pack install
, a warning is emitted if any pack is found outside of the package registry. This warning can be suppressed by using the --no-strict-mode
option.
The following queries now recognize HTML sanitizers as propagating taint: js/sql-injection
, js/path-injection
, js/server-side-unvalidated-url-redirection
, js/client-side-unvalidated-url-redirection
, and js/request-forgery
.
The NetworkToBufferSizeConfiguration
and UntrustedDataToExternalApiConfig
dataflow configurations have been deprecated. Please use NetworkToBufferSizeFlow
and UntrustedDataToExternalApiFlow
.
The LeapYearCheckConfiguration
, FiletimeYearArithmeticOperationCheckConfiguration
, and PossibleYearArithmeticOperationCheckConfiguration
dataflow configurations have been deprecated. Please use LeapYearCheckFlow
, FiletimeYearArithmeticOperationCheckFlow
and PossibleYearArithmeticOperationCheckFlow
.
Added a new query, java/android/arbitrary-apk-installation
, to detect installation of APKs from untrusted sources.
Added a new query, py/shell-command-constructed-from-input
, to detect libraries that unsafely construct shell commands from their inputs.
Added a new query, rb/zip-slip
, to detect arbitrary file writes during extraction of zip/tar archives.
The semmle.code.cpp.commons.Buffer
and semmle.code.cpp.commons.NullTermination
libraries no longer expose semmle.code.cpp.dataflow.DataFlow
. Please import semmle.code.cpp.dataflow.DataFlow
directly.
A new C/C++ dataflow library (semmle.code.cpp.dataflow.new.DataFlow
) has been added. The new library behaves much more like the dataflow library of other CodeQL supported languages by following use-use dataflow paths instead of def-use dataflow paths. The new library also better supports dataflow through indirections, and new predicates such as Node::asIndirectExpr
have been added to facilitate working with indirections.
The semmle.code.cpp.ir.dataflow.DataFlow
library is now identical to the new semmle.code.cpp.dataflow.new.DataFlow
library.
The main data flow and taint tracking APIs have been changed. The old APIs remain in place for now and translate to the new through a backwards-compatible wrapper. If multiple configurations are in scope simultaneously, then this may affect results slightly. The new API is quite similar to the old, but makes use of a configuration module instead of a configuration class.
The main data flow and taint tracking APIs have been changed. The old APIs remain in place for now and translate to the new through a backwards-compatible wrapper. If multiple configurations are in scope simultaneously, then this may affect results slightly. The new API is quite similar to the old, but makes use of a configuration module instead of a configuration class.
The main data flow and taint tracking APIs have been changed. The old APIs remain in place for now and translate to the new through a backwards-compatible wrapper. If multiple configurations are in scope simultaneously, then this may affect results slightly. The new API is quite similar to the old, but makes use of a configuration module instead of a configuration class.
Removed low-confidence call edges to known neutral call targets from the call graph used in data flow analysis. This includes, for example, custom List.contains
implementations when the best inferrable type at the call site is simply List
.
Added more sink and summary dataflow models for the following packages:
java.io
java.lang
java.sql
javafx.scene.web
org.apache.commons.compress.archivers.tar
org.apache.http.client.utils
org.codehaus.cargo.container.installer
The main data flow and taint tracking APIs have been changed. The old APIs remain in place for now and translate to the new through a backwards-compatible wrapper. If multiple configurations are in scope simultaneously, then this may affect results slightly. The new API is quite similar to the old, but makes use of a configuration module instead of a configuration class.
The main data flow and taint tracking APIs have been changed. The old APIs remain in place for now and translate to the new through a backwards-compatible wrapper. If multiple configurations are in scope simultaneously, then this may affect results slightly. The new API is quite similar to the old, but makes use of a configuration module instead of a configuration class.
The main data flow and taint tracking APIs have been changed. The old APIs remain in place for now and translate to the new through a backwards-compatible wrapper. If multiple configurations are in scope simultaneously, then this may affect results slightly. The new API is quite similar to the old, but makes use of a configuration module instead of a configuration class.
Deleted the deprecated hasGeneratedCopyConstructor
and hasGeneratedCopyAssignmentOperator
predicates from the Folder
class.
Deleted the deprecated getPath
and getFolder
predicates from the XmlFile
class.
Deleted the deprecated getMustlockFunction
, getTrylockFunction
, getLockFunction
, and getUnlockFunction
predicates from the MutexType
class.
Deleted the deprecated getPosInBasicBlock
predicate from the SubBasicBlock
class.
Deleted the deprecated getExpr
predicate from the PointerDereferenceExpr
class.
Deleted the deprecated getUseInstruction
and getDefinitionInstruction
predicates from the Operand
class.
Deleted the deprecated isInParameter
, isInParameterPointer
, and isInQualifier
predicates from the FunctionInput
class.
Deleted the deprecated isOutParameterPointer
, isOutQualifier
, isOutReturnValue
, and isOutReturnPointer
predicate from the FunctionOutput
class.
Deleted the deprecated 3-argument isGuardPhi
predicate from the RangeSsaDefinition
class.
Deleted the deprecated getPath
and getFolder
predicates from the XmlFile
class.
Deleted the deprecated getAssertionIndex
, and getAssertedParameter
predicates from the AssertMethod
class.
Deleted the deprecated OverridableMethod
and OverridableAccessor
classes.
The unsafe
predicate for Modifiable
has been extended to cover delegate return types and identify pointer-like types at any nest level. This is relevant for unsafe
declarations extracted from assemblies.
Deleted the deprecated getPath
and getFolder
predicates from the XmlFile
class.
Deleted the deprecated getRepresentedString
predicate from the StringLiteral
class.
Deleted the deprecated ServletWriterSource
class.
Deleted the deprecated getGroupID
, getArtefactID
, and artefactMatches
predicates from the MavenRepoJar
class.
Deleted the deprecated getPath
and getFolder
predicates from the XmlFile
class.
Deleted the deprecated getId
from the Function
, NamespaceDefinition
, and ImportEqualsDeclaration
classes.
Deleted the deprecated flowsTo
predicate from the HTTP::Servers::RequestSource
and HTTP::Servers::ResponseSource
class.
Deleted the deprecated getEventName
predicate from the SocketIO::ReceiveNode
, SocketIO::SendNode
, SocketIOClient::SendNode
classes.
Deleted the deprecated RateLimitedRouteHandlerExpr
and RouteHandlerExpressionWithRateLimiter
classes.
Import assertions are now supported. Previously this feature was only supported in TypeScript code, but is now supported for plain JavaScript as well and is also accessible in the AST.
Deleted the deprecated getPath
and getFolder
predicates from the XmlFile
class.
Data flow through initialize
methods is now taken into account also when the receiver of a new
call is an (implicit or explicit) self
.
The Active Record query methods reorder
and count_by_sql
are now recognized as SQL executions.
Calls to ActiveRecord::Connection#execute
, including those via subclasses, are now recognized as SQL executions.
Data flow through ActionController::Parameters#require
is now tracked properly.
The severity of parse errors was reduced to warning (previously error).
Deleted the deprecated getQualifiedName
predicate from the ConstantWriteAccess
class.
Deleted the deprecated getWhenBranch
and getAWhenBranch
predicates from the CaseExpr
class.
Deleted the deprecated Self
, PatternParameter
, Pattern
, VariablePattern
, TuplePattern
, and TuplePatternParameter
classes.
The WriteConfig
taint tracking configuration has been deprecated. Please use WriteFlow
.
Added support for merging two PathGraph
s via disjoint union to allow results from multiple data flow computations in a single path-problem
query.
Added support for merging two PathGraph
s via disjoint union to allow results from multiple data flow computations in a single path-problem
query.
Added support for merging two PathGraph
s via disjoint union to allow results from multiple data flow computations in a single path-problem
query.
Added support for merging two PathGraph
s via disjoint union to allow results from multiple data flow computations in a single path-problem
query.
Added support for merging two PathGraph
s via disjoint union to allow results from multiple data flow computations in a single path-problem
query.
Added support for merging two PathGraph
s via disjoint union to allow results from multiple data flow computations in a single path-problem
query.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4