Skip to content

Commit 401a516

Browse files
authored
Merge pull request #22533 from github/codeql-spark-run-34351440659
Update changelog documentation site for codeql-cli-2.27.0
2 parents 61bdd3c + 11f7d08 commit 401a516

3 files changed

Lines changed: 154 additions & 1 deletion

File tree

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
.. _codeql-cli-2.27.0:
2+
3+
==========================
4+
CodeQL 2.27.0 (2026-09-09)
5+
==========================
6+
7+
.. contents:: Contents
8+
:depth: 2
9+
:local:
10+
:backlinks: none
11+
12+
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 <https://github.blog/tag/code-scanning/>`__, `relevant GitHub Changelog updates <https://github.blog/changelog/label/application-security/>`__, `changes in the CodeQL extension for Visual Studio Code <https://marketplace.visualstudio.com/items/GitHub.vscode-codeql/changelog>`__, and the `CodeQL Action changelog <https://github.com/github/codeql-action/blob/main/CHANGELOG.md>`__.
13+
14+
Security Coverage
15+
-----------------
16+
17+
CodeQL 2.27.0 runs a total of 498 security queries when configured with the Default suite (covering 170 CWE). The Extended suite enables an additional 131 queries (covering 32 more CWE). 1 security query has been added with this release.
18+
19+
CodeQL CLI
20+
----------
21+
22+
Deprecations
23+
~~~~~~~~~~~~
24+
25+
* Language support for Java 9 and 10 has been deprecated and will be removed in January 2027. Java 7 and 8 will continue to be supported.
26+
* The generic multi-platform :code:`codeql.zip` CLI distribution is deprecated and will be removed in a future release. Download the per-platform
27+
:code:`codeql-PLATFORM.zip` for your platform instead. The CLI now emits a warning when it is run from an all-platforms distribution; set
28+
:code:`CODEQL_ALLOW_ALL_PLATFORMS_DIST=true` to suppress it.
29+
30+
New Features
31+
~~~~~~~~~~~~
32+
33+
* CodeQL now supports native Linux arm64 (:code:`linux-arm64`) as a first-class platform. The per-platform CLI (:code:`codeql-linux-arm64.zip`) and CodeQL bundle
34+
(:code:`codeql-bundle-linux-arm64.tar.gz` and :code:`codeql-bundle-linux-arm64.tar.zst`)
35+
are available as release assets. Arm64 binaries are provided as a per-platform download only, and are not included in the combined :code:`codeql.zip`,
36+
:code:`codeql-bundle.tar.gz`, or :code:`codeql-bundle.tar.zst`.
37+
* CodeQL can now take advantage of an organization's private registry configurations in Code Scanning Default Setup to authenticate to container registries or the GitHub API when trying to fetch custom queries or packs.
38+
This allows custom queries or packs to be accessed from private locations in Code Scanning Default Setup as long as suitable "Git Source" or "Docker Registry" private registry configurations are set up for the organization.
39+
40+
Query Packs
41+
-----------
42+
43+
Minor Analysis Improvements
44+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
45+
46+
C/C++
47+
"""""
48+
49+
* The :code:`cpp/leap-year/unsafe-array-for-days-of-the-year` query ("Unsafe array for days of the year") no longer reports an alert on the :code:`__PRETTY_FUNCTION__` variable (and related variables) when the enclosing function has a signature that is exactly 364 characters.
50+
51+
C#
52+
""
53+
54+
* The :code:`cs/linq/missed-where` query no longer flags :code:`foreach` loops where the matching branch terminates the method, iterator, or loop instead of continuing with filtered loop work.
55+
56+
JavaScript/TypeScript
57+
"""""""""""""""""""""
58+
59+
* HTML files are now included in file-coverage stats, and will start showing up on the status page for CodeQL under "Scanned Files".
60+
61+
Rust
62+
""""
63+
64+
* The :code:`rust/hard-coded-cryptographic-value` query has been adjusted to produce fewer results in certain situations where many results were being produced with very similar source locations.
65+
* The :code:`rust/unused-variable` query no longer reports variables in functions containing the standard :code:`todo!()` or :code:`unimplemented!()` macros.
66+
67+
New Queries
68+
~~~~~~~~~~~
69+
70+
Rust
71+
""""
72+
73+
* Added a new query, :code:`rust/command-line-injection`, to detect uncontrolled command lines.
74+
75+
Language Libraries
76+
------------------
77+
78+
Bug Fixes
79+
~~~~~~~~~
80+
81+
Python
82+
""""""
83+
84+
* Fixed a bug where a Python file could be silently dropped from the analysis (with a spurious "A parse error occurred" diagnostic) when it contained a string literal, comment, or identifier with a character such as the U+FE0F emoji variation selector, a U+200D zero width joiner, or a combining accent.
85+
* Fixed the extraction of PEP 758 :code:`except A, B:` clauses by the default (non-tree-sitter) Python parser. Previously the second exception type was extracted as a Python 2 style alias binding, so it was recorded as a :code:`Store` rather than a use. This caused false positives from queries that reason about whether a name is used, such as :code:`py/unused-import`. When extracting Python 2 (:code:`--lang=2`), :code:`except A, e:` continues to bind :code:`e` as an alias, since that is what the syntax means in that version.
86+
87+
Breaking Changes
88+
~~~~~~~~~~~~~~~~
89+
90+
Ruby
91+
""""
92+
93+
* The Ruby control flow graph implementation has been completely replaced. This affects a number of queries slightly. The CFG now includes additional nodes to more accurately represent certain constructs. This also means that any existing code that implicitly relies on very specific details about the CFG may need to be updated. The CFG no longer uses splitting, which means that AST nodes now have a unique CFG node representation. In particular,
94+
:code:`ControlFlowNode.getAstNode` has changed its meaning. The AST-to-CFG mapping remains one-to-many, but now for a different reason. It used to be because of splitting, but now it's because of additional "helper" CFG nodes. To get the
95+
(now canonical) CFG node for a given AST node, use
96+
:code:`Stmt.getControlFlowNode()` instead.
97+
98+
Minor Analysis Improvements
99+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
100+
101+
C/C++
102+
"""""
103+
104+
* Added the PostgreSQL libpq (asynchronous) query-execution functions :code:`PQexec`, :code:`PQexecParams`, :code:`PQprepare`, :code:`PQsendQuery`, :code:`PQsendQueryParams`, :code:`PQsendPrepare` as :code:`sql-injection` sinks.
105+
* Initializers of compiler-generated variables are now recognized as compiler-generated. A new predicate :code:`isCompilerGenerated` on :code:`Initializer` has been added to reflect this.
106+
107+
C#
108+
""
109+
110+
* In :code:`build-mode: none`, project and solution restoration is now always attempted using the feeds available.
111+
* C# analysis with build mode :code:`none` now lists unreachable explicitly configured NuGet feeds in both the extraction warning and the tool status page note. This makes it easier to identify feeds that may cause dependencies to be missing from the analysis.
112+
* Improved ASP.NET Core MVC controller and action discovery to more closely match runtime behavior, including application parts, endpoint mappings, inherited actions, and controller and action exclusions. Service-injected action parameters are no longer modeled as remote input.
113+
114+
Java/Kotlin
115+
"""""""""""
116+
117+
* Added modeling for the Micronaut framework, including HTTP controllers, WebSocket endpoints, configuration injection, data access, security annotations, and HTTP client sinks.
118+
119+
GitHub Actions
120+
""""""""""""""
121+
122+
* Checks on author association fields read from the event payload (e.g. :code:`github.event.pull_request.author_association`) now only count as protection for events whose payload actually populates that field. Previously, a condition such as :code:`github.event.pull_request.author_association != 'NONE'` on a workflow triggered by :code:`issues` events was treated as a protective check even though :code:`github.event.pull_request` is not populated for :code:`issues` events, which makes the condition vacuous. This change may result in more alerts for queries using the :code:`ControlCheck` class.
123+
124+
Rust
125+
""""
126+
127+
* Canonical paths for Rust trait items now use the format :code:`<crate::Trait>::item` instead of
128+
:code:`crate::Trait::item`. Custom data extension models that reference trait items must be updated to use the new format.
129+
130+
New Features
131+
~~~~~~~~~~~~
132+
133+
C/C++
134+
"""""
135+
136+
* Sources and sinks defined using models-as-data now support access paths with fields. For example, the path :code:`ReturnValue.Field[S::f]` makes the field :code:`S::f` a flow source when it is returned by a call.
137+
138+
C#
139+
""
140+
141+
* Added taint modeling for OData action parameter binding (:code:`Microsoft.AspNet.OData`\ /\ :code:`Microsoft.AspNetCore.OData`). Values cast, :code:`as`\ -converted, or type-tested out of :code:`ODataActionParameters`, and entities tracked by :code:`Delta<T>` (via :code:`GetInstance`, :code:`Patch`, :code:`Put`, :code:`CopyChangedValues`, and :code:`CopyUnchangedValues`), now taint the members of the target type.
142+
143+
Java/Kotlin
144+
"""""""""""
145+
146+
* Factories returned by the Apache Commons Secure XML (:code:`org.apache.commons.xml.secure`) hardening library's :code:`SecureDocumentBuilderFactory`, :code:`SecureSAXParserFactory`, :code:`SecureXMLInputFactory`, :code:`SecureTransformerFactory` and :code:`SecureSchemaFactory` classes are now recognized as safely configured by the XXE query.
147+
* A new extensible class :code:`SafeXmlFactorySource` was added to :code:`semmle.code.java.security.XmlParsers` for modeling sources of pre-hardened JAXP factories.
148+
149+
GitHub Actions
150+
""""""""""""""
151+
152+
* GitHub Actions databases now extract :code:`actions.lock` files. The new :code:`ActionsLock` class provides access to their YAML abstract syntax trees.

docs/codeql/codeql-overview/codeql-changelog/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ A list of queries for each suite and language `is available here <https://docs.g
1111
.. toctree::
1212
:maxdepth: 1
1313

14+
codeql-cli-2.27.0
1415
codeql-cli-2.26.4
1516
codeql-cli-2.26.3
1617
codeql-cli-2.26.2

docs/codeql/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
</div>
6767
<article class="pb-6" style="min-height: calc(100vh - 68px);">
6868
<div class="blankslate">
69-
<img src="https://ghicons.github.com/assets/images/blue/svg/Code%20QL.svg" class="mb-3" />
69+
<img src="../assets/img/svgs/codeql.svg" alt="" class="mb-3" />
7070
<h1>CodeQL documentation</h1>
7171
<p class="f2">CodeQL enables you to query code as though it were data. Write a query to find all variants of a
7272
vulnerability, eradicating it forever. Then share your query to help others do the same.</p>

0 commit comments

Comments
 (0)