CodeQL 2.21.3 (2025-05-15)¶
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.21.3 runs a total of 452 security queries when configured with the Default suite (covering 168 CWE). The Extended suite enables an additional 136 queries (covering 35 more CWE).
CodeQL CLI¶
Miscellaneous¶
Windows binaries for the CodeQL CLI are now built with
/guard:cf
, enabling Control Flow Guard.
Query Packs¶
Minor Analysis Improvements¶
C#¶
Changed the precision of the
cs/equality-on-floats
query from medium to high.
JavaScript/TypeScript¶
Type information is now propagated more precisely through
Promise.all()
calls, leading to more resolved calls and more sources and sinks being detected.
Query Metadata Changes¶
C/C++¶
The tag
external/cwe/cwe-14
has been removed fromcpp/memset-may-be-deleted
and the tagexternal/cwe/cwe-014
has been added.The tag
external/cwe/cwe-20
has been removed fromcpp/count-untrusted-data-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromcpp/count-untrusted-data-external-api-ir
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromcpp/untrusted-data-to-external-api-ir
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromcpp/untrusted-data-to-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromcpp/late-check-of-function-argument
and the tagexternal/cwe/cwe-020
has been added.
C#¶
The tag
external/cwe/cwe-13
has been removed fromcs/password-in-configuration
and the tagexternal/cwe/cwe-013
has been added.The tag
external/cwe/cwe-11
has been removed fromcs/web/debug-binary
and the tagexternal/cwe/cwe-011
has been added.The tag
external/cwe/cwe-16
has been removed fromcs/web/large-max-request-length
and the tagexternal/cwe/cwe-016
has been added.The tag
external/cwe/cwe-16
has been removed fromcs/web/request-validation-disabled
and the tagexternal/cwe/cwe-016
has been added.The tag
external/cwe/cwe-20
has been removed fromcs/count-untrusted-data-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromcs/serialization-check-bypass
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromcs/untrusted-data-to-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-12
has been removed fromcs/web/missing-global-error-handler
and the tagexternal/cwe/cwe-012
has been added.
Golang¶
The tag
external/cwe/cwe-20
has been removed fromgo/count-untrusted-data-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromgo/incomplete-hostname-regexp
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromgo/regex/missing-regexp-anchor
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromgo/suspicious-character-in-regex
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromgo/untrusted-data-to-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromgo/untrusted-data-to-unknown-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-90
has been removed fromgo/ldap-injection
and the tagexternal/cwe/cwe-090
has been added.The tag
external/cwe/cwe-74
has been removed fromgo/dsn-injection
and the tagexternal/cwe/cwe-074
has been added.The tag
external/cwe/cwe-74
has been removed fromgo/dsn-injection-local
and the tagexternal/cwe/cwe-074
has been added.The tag
external/cwe/cwe-79
has been removed fromgo/html-template-escaping-passthrough
and the tagexternal/cwe/cwe-079
has been added.
Java/Kotlin¶
The tag
external/cwe/cwe-20
has been removed fromjava/count-untrusted-data-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromjava/untrusted-data-to-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-93
has been removed fromjava/netty-http-request-or-response-splitting
and the tagexternal/cwe/cwe-093
has been added.
JavaScript/TypeScript¶
The tag
external/cwe/cwe-79
has been removed fromjs/disabling-electron-websecurity
and the tagexternal/cwe/cwe-079
has been added.The tag
external/cwe/cwe-20
has been removed fromjs/count-untrusted-data-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromjs/untrusted-data-to-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed fromjs/untrusted-data-to-external-api-more-sources
and the tagexternal/cwe/cwe-020
has been added.
Python¶
The tags
security/cwe/cwe-94
andsecurity/cwe/cwe-95
have been removed frompy/use-of-input
and the tagsexternal/cwe/cwe-094
andexternal/cwe/cwe-095
have been added.The tag
external/cwe/cwe-20
has been removed frompy/count-untrusted-data-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed frompy/untrusted-data-to-external-api
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed frompy/cookie-injection
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-20
has been removed frompy/incomplete-url-substring-sanitization
and the tagexternal/cwe/cwe-020
has been added.The tag
external/cwe/cwe-94
has been removed frompy/js2py-rce
and the tagexternal/cwe/cwe-094
has been added.
Ruby¶
The precision of
rb/useless-assignment-to-local
has been adjusted frommedium
tohigh
.The tag
external/cwe/cwe-94
has been removed fromrb/server-side-template-injection
and the tagexternal/cwe/cwe-094
has been added.
Language Libraries¶
Bug Fixes¶
C/C++¶
Fixed an infinite loop in
semmle.code.cpp.rangeanalysis.new.RangeAnalysis
when computing ranges in very large and complex function bodies.
Minor Analysis Improvements¶
JavaScript/TypeScript¶
Enhanced modeling of the fastify framework to support the
all
route handler method.Improved modeling of the
shelljs
andasync-shelljs
libraries by adding support for thewhich
,cmd
,asyncExec
andenv
.Added support for the
fastify
addHook
method.
Python¶
Added modeling for the
hdbcli
PyPI package as a database library implementing PEP 249.Added header write model for
send_header
inhttp.server
.
New Features¶
Java/Kotlin¶
Kotlin versions up to 2.2.0x are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0).
Swift¶
Added AST nodes
UnsafeCastExpr
,TypeValueExpr
,IntegerType
, andBuiltinFixedArrayType
that correspond to new nodes added by Swift 6.1.