CodeQL 2.24.2 (2026-02-20)¶
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.24.2 runs a total of 491 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE).
CodeQL CLI¶
Bug Fixes¶
Fixed SARIF output to generate RFC 1738 compatible file URIs. File URIs now always use the
file:///format instead offile:/for better interoperability with SARIF consumers.
Query Packs¶
Bug Fixes¶
C#¶
The
cs/web/missing-token-validation(“Missing cross-site request forgery token validation”) query now recognizes antiforgery attributes on base controller classes, fixing false positives when[ValidateAntiForgeryToken]or[AutoValidateAntiforgeryToken]is applied to a parent class.
Language Libraries¶
Bug Fixes¶
Python¶
Using
=as a fill character in a format specifier (e.g.f"{x:=^20}") now no longer results in a syntax error during parsing.
Breaking Changes¶
Golang¶
The
BasicBlockclass is now defined using the shared basic blocks library.BasicBlock.getRoothas been replaced byBasicBlock.getScope.BasicBlock.getAPredecessorandBasicBlock.getASuccessornow take aSuccessorTypeargument.ReachableJoinBlock.inDominanceFrontierOfhas been removed, so useBasicBlock.inDominanceFrontierinstead, swapping the receiver and the argument.
Major Analysis Improvements¶
Golang¶
Go 1.26 is now supported.
Minor Analysis Improvements¶
C/C++¶
Added remote flow source models for the
winhttp.hwindows header and the Azure SDK core library for C/C++.
C#¶
The model for
System.Web.HttpUtilityhas been modified to better model the flow of tainted URIs.C# 14: Added support for
extensionmembers in the extractor, QL library, data flow, and Models as Data, covering extension methods, properties, and operators.
Java/Kotlin¶
Using a regular expression to check that a string doesn’t contain any line breaks is already a sanitizer for
java/log-injection. Additional ways of doing the regular expression check are now recognised, including annotation with@javax.validation.constraints.Pattern.More ways of checking that a string matches a regular expression are now considered as sanitizers for various queries, including
java/ssrfandjava/path-injection. In particular, being annotated with@javax.validation.constraints.Patternis now recognised as a sanitizer for those queries.Kotlin versions up to 2.3.10 are now supported.
Python¶
Added request forgery sink models for the Azure SDK.
Made it so that models-as-data sinks with the kind
request-forgerycontribute to the classHttp::Client::Requestwhich represents HTTP client requests.
Deprecated APIs¶
Java/Kotlin¶
The
UnreachableBlocks.qlllibrary has been deprecated.Renamed the following predicates to increase uniformity across languages. The
getBodypredicate already existed onLoopStmt, but is now properly inherited.UnaryExpr.getExprtogetOperand.ConditionalExpr.getTrueExprtogetThen.ConditionalExpr.getFalseExprtogetElse.ReturnStmt.getResulttogetExpr.WhileStmt.getStmttogetBody.DoStmt.getStmttogetBody.ForStmt.getStmttogetBody.EnhancedForStmt.getStmttogetBody.