Improvement
CodeQL 2.26.3 improves GitHub Actions queries and JavaScript modeling
CodeQL 2.26.3 adds JavaScript, TypeScript, and Vue source modeling and improves the accuracy of several GitHub Actions queries. CodeQL is the static analysis engine behind GitHub code scanning, which helps you find and remediate security issues in your code.
Language and framework support
GitHub Actions
- Analysis now recognizes untrusted data in
github.event.merge_groupfor workflows triggered by themerge_groupevent. - Breaking change: We’ve removed the
codeql.actions.security.SelfHostedQuerymodule because runner labels don’t reliably distinguish self-hosted runners from managed runners. You’ll need to update any custom queries that rely on this module.
JavaScript/TypeScript
- Custom models can now reference specific files using a package name in the form
file:<path>. This lets you define sources and sinks based on a file’s public exports. - We’ve added flow models for Vue’s
ref,shallowRef,toRef,reactive, andcomputedComposition API helpers. - CodeQL now recognizes Vue Router’s
useRoute()Composition API as a client-side remote flow source, including itsquery,params,path,fullPath, andhashmembers. - CodeQL now treats declared
inputsproperties in Sails Action2 controller files as remote flow sources. This may improve results for queries such asjs/path-injection. - Queries using the
responsethreat model now track promise-wrapped client response data into promise fulfillment values. This may improve results for queries such asjs/xss.
C/C++
- We’ve added flow source models for
RegQueryValueand related functions from thewinreg.hWindows header.
Ruby
- We’ve removed library input to vendored gems from the set of taint sources, reducing false positives for several queries when you use vendoring.
Query changes
GitHub Actions
- We’ve improved the accuracy of the
actions/output-clobbering/highquery so it no longer reports simplejqpath filters when their output remains JSON-encoded. We also implemented a fix for a performance issue in this query caused by unescaped regular expression input. - The
actions/cache-poisoning/poisonable-stepandactions/untrusted-checkout/criticalqueries now start paths at the expressions that control untrusted checkouts, making alerts easier to follow. - GitHub Actions queries now correctly classify the
scheduleevent when determining whether a workflow can be externally triggered. - The
actions/envvar-injection/criticalquery now requires the untrusted source and privileged context to originate from the same trigger event. It also no longer treats pull request head labels as injection-capable because they can’t contain newlines. - The
actions/cache-poisoning/code-injection,actions/cache-poisoning/direct-cache, andactions/cache-poisoning/poisonable-stepqueries now account for read-only cache access on low-trust triggers running in the default branch scope. They retain results only for triggers that GitHub allows to write to that cache scope. - We’ve clarified the name and alert message of the
actions/cache-poisoning/code-injectionquery.
JavaScript/TypeScript
- The
js/missing-rate-limitingquery now recognizes the@fastify/rate-limitpackage as a rate limiter.
For all changes, see the complete CodeQL 2.26.3 changelog.
GitHub automatically deploys each new CodeQL version to users of GitHub code scanning on GitHub.com. A future GitHub Enterprise Server (GHES) release will include this functionality. If you use an older GHES version, you can manually upgrade CodeQL.