Compare commits

...

1450 Commits

Author SHA1 Message Date
Nick Rolfe
005a27bff9 Merge pull request #19436 from adityasharad/actions/ga-change-note
Actions: Retroactively add GA changenote
2025-05-01 09:21:15 +01:00
Aditya Sharad
6285c2e502 Actions: Retroactively add GA changenote
This was manually added in the docs site at the time of 2.21.1 release and GA.
Include the change note in the relevant places so it remains
in future docs updates:
- codeql/actions-queries@0.5.4
- codeql/actions-all@0.4.7
- 2.21.1 changelog
2025-04-30 16:24:22 -07:00
Nick Rolfe
a46f8fb0d9 Merge pull request #19398 from github/nickrolfe/rm-erroneous-query
Java: Remove erroneously-committed query
2025-04-28 14:06:52 +01:00
Nick Rolfe
e3f33f192f Remove erroneously-committed query 2025-04-28 13:55:34 +01:00
Nick Rolfe
ded3865722 Merge pull request #19395 from github/release-prep/2.21.2
Release preparation for version 2.21.2
2025-04-28 12:57:36 +01:00
Nick Rolfe
ca7f8f21cd Tweak change-note for MaD model generation 2025-04-28 12:50:58 +01:00
github-actions[bot]
625354c46e Release preparation for version 2.21.2 2025-04-28 10:55:22 +00:00
Nick Rolfe
35939ec3b1 Merge pull request #19394 from github/nickrolfe/actions-change-note
Follow-up fixes to #19376
2025-04-28 11:46:14 +01:00
Nick Rolfe
b61a87a2a3 Update integration test to match update to security-and-quality suite 2025-04-28 11:26:07 +01:00
Nick Rolfe
70a3fe3e33 Add YAML front matter to change note 2025-04-28 10:09:33 +01:00
Michael Nebel
8857f0d0f2 Merge pull request #19311 from michaelnebel/csharp/generatorcleanup
Shared: Model generator cleanup.
2025-04-28 10:36:05 +02:00
Paolo Tranquilli
bcc65e13b0 Merge pull request #19381 from jketema/swift-doc
Swift: Clarify how the LFS artifacts should be updated
2025-04-28 09:42:52 +02:00
Tom Hvitved
14445a3d46 Merge pull request #19380 from hvitved/csharp/cfg/switch-fall-through
C#: Fix CFG for fall-through switch statements
2025-04-28 08:42:36 +02:00
Michael B. Gale
987af4ce1d Merge pull request #19248 from github/mbg/go/private-registries
Go: Support private registries via `GOPROXY`
2025-04-25 16:40:00 +01:00
Paolo Tranquilli
46fb041c50 Merge pull request #19384 from github/redsun82/swift-add-logs
Swift: add more debug logs
2025-04-25 17:24:11 +02:00
Michael B. Gale
7592ce47e3 Go: Restore parseRegistryConfigsFail test for the empty string 2025-04-25 15:45:12 +01:00
Michael B. Gale
91a794433a Go: Change "Unable" to "Failed" for consistency 2025-04-25 15:42:29 +01:00
Michael B. Gale
5172a4d6ec Go: Remove check from getEnvVars 2025-04-25 15:41:57 +01:00
Michael B. Gale
9cfa451477 Go: Fix/improve comment about environment variable preservation 2025-04-25 15:41:35 +01:00
Aditya Sharad
d4b083b5c0 Merge pull request #19376 from adityasharad/actions/exclude-model-generator-queries
Actions: Exclude model-generator queries from query suites
2025-04-25 20:03:32 +05:30
Michael Nebel
de122225e8 C#/Rust: Update integration test expected output. 2025-04-25 15:52:36 +02:00
Michael Nebel
a589014243 C++: Update model generator tests. 2025-04-25 15:50:10 +02:00
Michael Nebel
d05f604390 C++: Adjust the model generator queries to the new shared implementation. 2025-04-25 15:50:08 +02:00
Michael Nebel
f6135d507b Shared: Address review comments. 2025-04-25 15:50:06 +02:00
Michael Nebel
d187a7d144 Java: Update integration test that tracks queries not included in a query suite. 2025-04-25 15:50:04 +02:00
Michael Nebel
32125d2291 C#/Java/Rust: Add change notes. 2025-04-25 15:50:03 +02:00
Michael Nebel
21553960b0 Rust: Adjust tests. 2025-04-25 15:50:01 +02:00
Michael Nebel
71d0409bb7 Java: Convert the model generator neutral test to use the combined neutral generator. 2025-04-25 15:50:00 +02:00
Michael Nebel
7e51dae743 Java: Change the heuristic summary test tag to heuristic-summary. 2025-04-25 15:49:58 +02:00
Michael Nebel
08f7caaf39 Java: Adjust model generator test cases to the new implementation. 2025-04-25 15:49:56 +02:00
Michael Nebel
1d6c367049 C#: Change the capture neutral model test to use the content/heuristic version instead. 2025-04-25 15:49:55 +02:00
Michael Nebel
539a06dcb4 C#: Re-factor the heuristic summary test to use heuristic-summary tag in tests. 2025-04-25 15:49:53 +02:00
Michael Nebel
da99c75a13 C#: Rename some of the model generator tests. 2025-04-25 15:49:51 +02:00
Michael Nebel
7801fc321d C#: Re-factor tests to use the new implementations. 2025-04-25 15:49:49 +02:00
Michael Nebel
2a0097ea56 C#/Java/Rust: Use Mixed flow from capture summary models queries and adjust other queries to the re-factored implementation. 2025-04-25 15:49:47 +02:00
Michael Nebel
f78be91af2 Shared: Re-factor the model generator and put the heuristic queries in its own module. 2025-04-25 15:49:45 +02:00
Michael Nebel
2357a69d55 Shared: Remove the --with-mixed-neutrals logic. 2025-04-25 15:49:44 +02:00
Michael Nebel
ae70c76a07 Shared: Use the CaptureSummaryModels instead of CaptureMixedSummaryModels. 2025-04-25 15:49:42 +02:00
Michael Nebel
fa5162fb13 Shared: Remove the backwards compatbility flag. 2025-04-25 15:49:41 +02:00
Michael Nebel
2a8fe53b04 Shared: Remove --with-mixed-summaries logic. 2025-04-25 15:49:38 +02:00
Tamás Vajk
3437210d32 Merge pull request #19355 from tamasvajk/test/add-query-suite-tests
Add query suite integration tests for swift, actions, csharp, go, javascript, ruby, rust
2025-04-25 15:37:51 +02:00
Paolo Tranquilli
d9a6a630e5 Swift: fix log compilation 2025-04-25 15:37:08 +02:00
Chuan-kai Lin
ed690972d4 Merge pull request #19379 from github/cklin/python-polynomial-redos
Python: disable diff-informed PolynomialReDoS.ql
2025-04-25 06:21:47 -07:00
Paolo Tranquilli
e71e7a08bb Swift: add more debug logs 2025-04-25 15:20:20 +02:00
Tamas Vajk
998e64baf3 Fix failing C# test 2025-04-25 14:06:18 +02:00
Tamás Vajk
c54b684132 Apply suggestions from code review - code quality improvements
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2025-04-25 14:06:17 +02:00
Tamas Vajk
a4a24470c8 Add query suite inclusion tests for actions, csharp, go, javascript, ruby, rust 2025-04-25 14:06:17 +02:00
Tamas Vajk
522dd51416 Improve query suite test based on feedback 2025-04-25 14:06:16 +02:00
Tamas Vajk
4c9aee2cc7 Add query suite tests for swift with shared logic 2025-04-25 14:06:15 +02:00
Tom Hvitved
432435f1a6 Merge pull request #19358 from hvitved/rust/path-resolution-perf-tweaks
Rust: Path resolution performance tweaks
2025-04-25 14:01:47 +02:00
Michael B. Gale
e805d1ee90 Merge remote-tracking branch 'origin/main' into mbg/go/private-registries 2025-04-25 12:55:36 +01:00
Michael B. Gale
cafe1efefa Go: Refactor ApplyProxyEnvVars 2025-04-25 12:30:48 +01:00
Jeroen Ketema
0b5a4a9133 Swift: Clarify how the LFS artifacts should be updated 2025-04-25 12:44:38 +02:00
Jeroen Ketema
8b95e0ee4a Merge pull request #19315 from github/redsun82/swift-6.1
Swift: make extractor compile again after 6.1 upgrade
2025-04-25 12:34:39 +02:00
Jeroen Ketema
e8eac810b4 Swift: Commit external sources to git LFS 2025-04-25 11:56:28 +02:00
Tom Hvitved
e79a906426 C#: Fix CFG for fall-through switch statements 2025-04-25 11:48:30 +02:00
Tom Hvitved
a991ef0f87 C#: Add a CFG test for switch fall-through 2025-04-25 10:32:48 +02:00
Chuan-kai Lin
6c1e80df3a Python: disable diff-informed PolynomialReDoS.ql
This commit disabled diff-informed for PolynomialReDoS.ql because it
could miss some alerts within diff ranges.
2025-04-24 14:57:06 -07:00
Aditya Sharad
b197de8db4 Actions: Add change note for removing model ggenerator queries 2025-04-24 14:21:04 -07:00
Aditya Sharad
05243bd855 Actions: Fix query ID for reusable workflow sinks query 2025-04-24 14:20:47 -07:00
Aditya Sharad
aabbfce010 Actions: Exclude model-generator queries from query suites
This change removes the model generator queries for Actions
sources/sinks/summaries from being run as part of the
`actions-security-and-quality.qls` query suite,
where they were accidentally included.

All languages will now exclude both `modelgenerator`
and `model-generator` tagged queries from their suites.
2025-04-24 13:25:38 -07:00
Ian Lynagh
f9172ff493 Merge pull request #19368 from igfoo/igfoo/add-check-for-buildmode-none
C++: Add exception for build-mode-none in various queries
2025-04-24 20:30:09 +01:00
Jeroen Ketema
5920925041 Merge pull request #19363 from jketema/platform
Update list of supported platforms
2025-04-24 19:11:31 +02:00
Jeroen Ketema
a5a21b1ddd Swift: Guard 'getCaptures' in fillClosureExpr 2025-04-24 17:42:59 +02:00
Paolo Tranquilli
21170a1f6d Merge pull request #19370 from github/redsun82/go-remove-invalid-toolchain-diagnostic
Go: remove invalid toolchain version diagnostics
2025-04-24 17:32:34 +02:00
Jeroen Ketema
21c97085a1 Merge pull request #19361 from jketema/fieldflow
Dataflow: Make default field flow branch limit configurable per language
2025-04-24 16:45:49 +02:00
Jeroen Ketema
55a8a4444d Merge pull request #19365 from jketema/c23
C++: Claim beta support for C23 and C++23
2025-04-24 16:13:39 +02:00
Paolo Tranquilli
69b87a63b8 Go: remove invalid toolchain version diagnostics
This diagnostic was introduced by https://github.com/github/codeql/pull/15979.
However in the meantime the Go team [has backtracked](https://github.com/golang/go/issues/62278#issuecomment-2062002018)
on their decision, which leads to confusing alerts for user (e.g. https://github.com/github/codeql-action/issues/2868).
Even using Go toolchains from 1.21 to 1.22 we weren't immediately able
to reproduce the problem that this diagnostics was meant to guard
against. Therefore it was deemed simpler to just remove it.

_En passant_ the `Makefile` now accepts `rtjo` not being set.
2025-04-24 14:41:05 +02:00
Ian Lynagh
0cd859c559 C++: qlformat 2025-04-24 12:48:21 +01:00
Alexander Eyers-Taylor
ea83ecf802 Merge pull request #19327 from d10c/d10c/rtjo-csharp-jo-fix
C#: Join order fix
2025-04-24 12:34:22 +01:00
Ian Lynagh
063bff073b C++: Add checks for build mode in various queries
Adds a check for the absence of build-mode-none in
    cpp/wrong-type-format-argument
    cpp/comparison-with-wider-type
    cpp/integer-multiplication-cast-to-long
    cpp/implicit-function-declaration
    cpp/suspicious-add-sizeof
2025-04-24 12:15:31 +01:00
Jeroen Ketema
42c4252a3d C++: Claim beta support for C23 and C++23
All features we can support, we currently do support.
2025-04-24 11:44:16 +02:00
Jeroen Ketema
0357f3959b Update list of supported platforms
I've effectively sync'ed this with the list of runners that are publicly
available. I did not yet add Windows 2025, as it is my understanding is that
we haven't really done any testing on that yet.
2025-04-24 11:28:09 +02:00
Jeroen Ketema
46b21af3ef Dataflow: Make default field flow branch limit configurable per language 2025-04-24 11:02:49 +02:00
Jeroen Ketema
4093afbaab Merge pull request #19290 from jketema/typeof
C++: Support C23 `typeof` and `typeof_unqual`
2025-04-24 10:12:46 +02:00
Michael Nebel
17f58c90bd Merge pull request #19148 from michaelnebel/csharp/invalid-string-format
C#: Improve `cs/invalid-string-formatting` and add to the Code Quality suite.
2025-04-24 10:03:06 +02:00
Michael Nebel
65ac951964 C#: Remove all Sink tags after rebase. 2025-04-24 08:54:53 +02:00
Michael Nebel
dcf11c2d4b C#: Match up sources, alerts and sinks in the tests. 2025-04-24 08:54:51 +02:00
Michael Nebel
b6d2f14b9b C#: Add change note. 2025-04-24 08:54:49 +02:00
Michael Nebel
22ae3e7992 C#: Update string format item parameter expected test case. 2025-04-24 08:54:48 +02:00
Michael Nebel
f2dddd6d5c C#: Hide the abstract FormatMethod class. 2025-04-24 08:54:47 +02:00
Michael Nebel
6de5920172 C#: Update test expected output. 2025-04-24 08:54:45 +02:00
Michael Nebel
042c7e5186 C#: Generalize array logic to params collection like types. 2025-04-24 08:54:43 +02:00
Michael Nebel
930bb6b515 C#: Add FP for string.Format using params collection. 2025-04-24 08:54:42 +02:00
Michael Nebel
39abd5c004 C#: Update test expected output. 2025-04-24 08:54:40 +02:00
Michael Nebel
f31235db43 C#: Improve format logic to take CompositeFormat and generics into account. 2025-04-24 08:54:39 +02:00
Michael Nebel
11dffc6647 C#: Add more invalid-string-formatting testcases. 2025-04-24 08:54:37 +02:00
Michael Nebel
8fb5fe97aa C#: Update test expected output. 2025-04-24 08:54:36 +02:00
Michael Nebel
1d9d8780b3 C#: Remove some false positives and add more true positives for cs/invalid-string-format. 2025-04-24 08:54:34 +02:00
Michael Nebel
f73b7429c6 C#: Remove false positive example. 2025-04-24 08:54:33 +02:00
Michael Nebel
175e4ecb74 C#: Add more format testcases. 2025-04-24 08:54:31 +02:00
Michael Nebel
327ddb07a1 C#: Re-factor FormatMethod. 2025-04-24 08:54:30 +02:00
Michael Nebel
9cfd6e30b9 C#: Convert testing of cs/invalid-string-formatting to inline expectations and adjust some of the testcases. 2025-04-24 08:54:28 +02:00
Michael Nebel
68f93492b1 C#: Add cs/invalid-string-formatting to the codeql quality suite. 2025-04-24 08:54:27 +02:00
Michael Nebel
91f1183dfd Merge pull request #19354 from michaelnebel/csharp/matchlinenumbersonsinks
Shared: Match line information on Alert and Sink locations.
2025-04-24 08:53:01 +02:00
Tom Hvitved
e72aba76f6 Rust: Path resolution performance tweaks 2025-04-23 19:49:20 +02:00
Jeroen Ketema
cad695868d C++: Add change note 2025-04-23 17:51:06 +02:00
Jeroen Ketema
8086ef48c7 Swift: Add change note 2025-04-23 17:10:57 +02:00
Jeroen Ketema
eea963e3f4 Swift: Add upgrade and downgrade scripts 2025-04-23 17:10:57 +02:00
Jeroen Ketema
a74b38c0ec Swift: Replace deprecated @_moveOnly in test by ~Copyable 2025-04-23 17:10:57 +02:00
Jeroen Ketema
59faf9fbdf Swift: Update errors test
The representation of the errors seems to have changed somewhat in Swift 6.1.
2025-04-23 17:10:57 +02:00
Jeroen Ketema
10d86c9708 Swift: Disable parts of tests that crash with Swift 6.1 2025-04-23 17:10:56 +02:00
Jeroen Ketema
9a21b0dc5c Swift: Update SuccessfullyExtractedLines for external code being extracted 2025-04-23 17:10:56 +02:00
Jeroen Ketema
e135f5ddf6 Swift: Update ObjectLiteralExpr test
The entities now have proper error types instead of missing types.
2025-04-23 17:10:56 +02:00
Jeroen Ketema
b6076c0481 Swift: Update test results for ParenType no longer being extracted 2025-04-23 17:10:55 +02:00
Jeroen Ketema
1b21e4c667 Swift: Update test results for IfConfigDecl no longer being extracted 2025-04-23 17:10:55 +02:00
Jeroen Ketema
36672f44b9 Swift: Take inverses into account when mangling ProtocolCompositionTypes 2025-04-23 17:10:55 +02:00
Paolo Tranquilli
7834a3d9e4 Swift: expand mangling of ExistentialMetatypeType 2025-04-23 17:10:55 +02:00
Jeroen Ketema
30242ed6fb Swift: Remove "to do" comment 2025-04-23 17:10:54 +02:00
Jeroen Ketema
4fc5a73bac Swift: Update mangling of OpenedArchetypeType 2025-04-23 17:10:54 +02:00
Paolo Tranquilli
1ac47a892b Swift: make extractor compile again after 6.1 upgrade 2025-04-23 17:10:54 +02:00
Jeroen Ketema
0c313463b4 C++: Update stats file 2025-04-23 16:56:59 +02:00
Jeroen Ketema
a3e0c15c10 C++: Add upgrade and downgrade scripts 2025-04-23 16:56:57 +02:00
Jeroen Ketema
e97f9495d0 C++: Update expected test results 2025-04-23 16:56:56 +02:00
Jeroen Ketema
df3282c204 C++: Support C23 typeof and typeof_unqual 2025-04-23 16:56:47 +02:00
Michael Nebel
2e0ce44fde Javascript: Update test files. 2025-04-23 15:41:41 +02:00
Geoffrey White
37bcedcf11 Merge pull request #19353 from geoffw0/modelnoise2
Rust: Remove unnecessary predicate.
2025-04-23 12:34:40 +01:00
Tom Hvitved
4abdc13f79 Merge pull request #19193 from hvitved/rust/path-resolution-where-clause
Rust: Take `where` clauses into account in path resolution
2025-04-23 13:00:58 +02:00
Michael Nebel
617f4729d8 Shared: Match line information on Alert and Sink locations. 2025-04-23 12:35:17 +02:00
Mathias Vorreiter Pedersen
808141f7e8 Merge pull request #19295 from MathiasVP/cpp-add-mad-generation-library
C++: Instantiate model generation library
2025-04-23 11:32:16 +01:00
Geoffrey White
d6f1bd9792 Rust: Remove unnecessary predicate. 2025-04-23 11:24:29 +01:00
Mathias Vorreiter Pedersen
9e9a580d02 C++: Add MaD generation test with union content. 2025-04-23 11:11:17 +01:00
Mathias Vorreiter Pedersen
07d8f8dd0d C++: Add an empty model to prevent a warning. 2025-04-23 10:24:17 +01:00
Tom Hvitved
008dd3f4e3 Merge pull request #19272 from hvitved/ql4ql/qlref-inline-exp-kind-restrict
QL4QL: Restrict `ql/qlref-inline-expectations` to `(path-)problem` queries
2025-04-23 09:11:24 +02:00
Michael Nebel
62cb4bfd02 Merge pull request #19302 from michaelnebel/csharp/missing-access-control
C#: Relax condition for authorize attributes on `cs/web/missing-function-level-access-control`.
2025-04-23 09:09:32 +02:00
Tom Hvitved
959a79f995 Merge pull request #19345 from hvitved/shared/file-system-append-join-fix
Shared: Fix join in `FileSystem.qll`
2025-04-23 09:01:40 +02:00
Pierre
97ca2afa7a Merge pull request #19348 from github/changedocs-2.21.1
changedocs from 2.21.1 release
2025-04-22 22:14:43 +02:00
Pierre
2439b1e89a Merge branch 'main' into changedocs-2.21.1 2025-04-22 22:04:28 +02:00
Jon Janego
1cf10d8f9f changedocs from 2.21.1 release 2025-04-22 14:51:11 -05:00
Jami
4483a24133 Merge pull request #19075 from jcogs33/jcogs33/java/do-not-use-finalizers
Java: Add new quality query to detect `finalize` calls
2025-04-22 14:11:14 -04:00
Jami
ed99088c2b Merge pull request #19094 from jcogs33/jcogs33/java/junit5-missing-nested-annotation
Java: Add new quality query to detect missing `@Nested` annotation in JUnit5 tests
2025-04-22 13:10:00 -04:00
Jeroen Ketema
7ee862a3af Merge pull request #19347 from jketema/swift-files-2
Swift: Make file checking in tests more strict
2025-04-22 17:15:11 +02:00
Jeroen Ketema
adb58e304d Swift: Make file checking in tests more strict
With Swift 6.1 the extractor will start to extract files outside of the test
directory. These files and their elements we do not want to see in our tests.

Test forgotten in https://github.com/github/codeql/pull/19344
2025-04-22 16:51:36 +02:00
Jeroen Ketema
03ce2b0867 Merge pull request #19346 from jketema/swift-files-2
Swift: Make file checking in integration tests more strict
2025-04-22 15:33:33 +02:00
Jeroen Ketema
375ec8f948 Merge pull request #19344 from jketema/swift-files
Swift: Make file checking in tests more strict
2025-04-22 15:33:15 +02:00
Tom Hvitved
40390d1ada Address review comment 2025-04-22 15:08:39 +02:00
Jeroen Ketema
a211998bc9 Swift: Make file checking in integration tests more strict
With Swift 6.1 the extractor will start to extract files outside of the test
directory. These files and their elements we do not want to see in our tests.
2025-04-22 13:52:15 +02:00
Alexander Eyers-Taylor
c11ed6d119 Merge pull request #19116 from github/alexet/ruby-deterministic
Ruby: Make module graph queries avoid relying on evalaution order.
2025-04-22 11:27:03 +01:00
Tom Hvitved
ae5ac11387 Shared: Fix join in FileSystem.qll
Before
```
Evaluated relational algebra for predicate FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d@d2a7eeoa on iteration 2 running pipeline standard with tuple counts:
         120   ~2%    {4} r1 = SCAN `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev_delta` OUTPUT In.1, In.0, In.2, In.3

           0   ~0%    {6} r2 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#1` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
                      {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
           0   ~0%    {4}    | SCAN OUTPUT In.2, In.0, In.1, In.4

          91   ~3%    {6} r3 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
                      {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
          81   ~0%    {4}    | SCAN OUTPUT In.4, In.0, In.1, In.2
          81   ~3%    {4}    | JOIN WITH containerparent_10#join_rhs ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2, Rhs.1

         269   ~0%    {7} r4 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#2` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Rhs.2, Lhs.1, Lhs.2, Lhs.3, _
                      {7}    | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.1 - Tmp.6), TEST Out.6 = InOut.4
          39   ~1%    {5}    | SCAN OUTPUT In.5, In.0, In.1, In.2, In.3
        1295   ~0%    {6}    | JOIN WITH containerparent ON FIRST 1 OUTPUT Rhs.1, Lhs.3, _, Lhs.1, Lhs.2, Lhs.4
        1295   ~0%    {6}    | REWRITE WITH Out.2 := 1
          34   ~1%    {4}    | JOIN WITH `cached_FileSystem::Container.splitAbsolutePath/2#dispred#dc97b0cc` ON FIRST 3 OUTPUT Lhs.5, Lhs.3, Lhs.4, Lhs.0

         115   ~0%    {4} r5 = r2 UNION r3 UNION r4
         115   ~0%    {4}    | AND NOT `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev`(FIRST 4)
                      return r5
```

After
```
Evaluated relational algebra for predicate FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d@4fb6e6v7 on iteration 2 running pipeline standard with tuple counts:
        120   ~0%    {4} r1 = SCAN `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev_delta` OUTPUT In.1, In.0, In.2, In.3

          0   ~0%    {6} r2 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#1` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
                     {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
          0   ~0%    {4}    | SCAN OUTPUT In.2, In.0, In.1, In.4

         91   ~0%    {6} r3 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
                     {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
         81   ~0%    {4}    | SCAN OUTPUT In.4, In.0, In.1, In.2
         81   ~5%    {4}    | JOIN WITH containerparent_10#join_rhs ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2, Rhs.1

        269   ~0%    {7} r4 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#2` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Rhs.2, Lhs.1, Lhs.2, Lhs.3, _
                     {7}    | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.1 - Tmp.6), TEST Out.6 = InOut.4
         39   ~3%    {5}    | SCAN OUTPUT In.5, In.2, In.0, In.1, In.3
         34   ~0%    {4}    | JOIN WITH `FileSystem::Folder::Append<PathResolution::shouldAppend>::getAChildContainer/2#2e91feca` ON FIRST 2 OUTPUT Lhs.4, Lhs.2, Lhs.3, Rhs.2

        115   ~2%    {4} r5 = r2 UNION r3 UNION r4
        115   ~2%    {4}    | AND NOT `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev`(FIRST 4)
                     return r5
```
2025-04-22 12:16:59 +02:00
Anders Schack-Mulligen
d05e90518c Merge pull request #19296 from Marcono1234/patch-1
Docs: Fix typo in code sample
2025-04-22 11:08:17 +02:00
Jeroen Ketema
ce5c48192e Swift: Make file checking in tests more strict
With Swift 6.1 the extractor will start to extract files outside of the test
directory. These files and their elements we do not want to see in our tests.
2025-04-22 10:41:12 +02:00
Asger F
c2cab184ac Merge pull request #19283 from asgerf/js/rest-pattern-fix
JS: Fix missing flow into rest pattern lvalue
2025-04-22 10:37:36 +02:00
Jami Cogswell
3aa6b49204 Java: Add new query to java-code-quality.qls.expected 2025-04-21 10:02:08 -04:00
Jami
72d49f21ee Merge branch 'main' into jcogs33/java/do-not-use-finalizers 2025-04-21 09:57:53 -04:00
Jami Cogswell
07a694e804 Java: add new query to java-code-quality.qls.expected 2025-04-21 09:52:52 -04:00
Jami
02ded89d84 Merge branch 'main' into jcogs33/java/junit5-missing-nested-annotation 2025-04-21 09:46:49 -04:00
Jami
2b9160526a Apply docs review suggestion
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-04-20 21:47:25 -04:00
Mathias Vorreiter Pedersen
3fd760c632 C++: Move 'InlineMadTest.qll' out of 'lib/utils/test' and into 'test' since C++ has no external packs depending on MaD testing. 2025-04-20 16:49:02 +01:00
Mathias Vorreiter Pedersen
6fcf56e6e1 C++: Add more tests. 2025-04-20 16:49:00 +01:00
Mathias Vorreiter Pedersen
f6f5f97109 C++: Also make protected members irrelevant. 2025-04-20 16:48:58 +01:00
Mathias Vorreiter Pedersen
e55f94c364 C++: Move contents of 'isUninterestingForDataFlowModels' to 'relevant' 2025-04-20 16:48:56 +01:00
Mathias Vorreiter Pedersen
9cba91c682 C++: Add another entry to 'qlpack' for external models. 2025-04-20 16:48:54 +01:00
Mathias Vorreiter Pedersen
0ce6ab5444 Remove an unnecessary if. 2025-04-20 16:48:53 +01:00
Mathias Vorreiter Pedersen
5462dcdf75 C++: Make final member functions not extensible. 2025-04-20 16:48:51 +01:00
Mathias Vorreiter Pedersen
1f43e51be4 C++: Fix ql-for-ql findings. 2025-04-20 16:48:49 +01:00
Mathias Vorreiter Pedersen
1465058da0 C++: Add copy-pasted files from C#. 2025-04-20 16:48:47 +01:00
Mathias Vorreiter Pedersen
09ebd6e87d C++: Instantiate inline expectation test framework to test model generation. 2025-04-20 16:48:45 +01:00
Mathias Vorreiter Pedersen
f241e4b537 C++: Add tests that will soon succeed. 2025-04-20 16:48:43 +01:00
Mathias Vorreiter Pedersen
3d48b23428 C++: Instantiate model generation library. 2025-04-20 16:48:41 +01:00
Nora Dimitrijević
7f5b48d485 C#: Fix join order in ExternalFlow::interpretElement/6 (only affects RTJO mode) 2025-04-17 15:52:13 +02:00
Geoffrey White
254789c89a Merge pull request #19305 from geoffw0/modelnoise
Rust: Remove the noisy models output from the dataflow/local test.
2025-04-17 13:16:45 +01:00
Geoffrey White
22b3ef7f20 Merge pull request #19333 from geoffw0/consistency
Rust: Make source kinds consistent with other languages
2025-04-17 13:15:00 +01:00
Jeroen Ketema
53bd2361af Merge pull request #19329 from github/idrissrio/designated-initializer
C++: add predicate to distinguish designator-based initializations
2025-04-17 13:15:42 +02:00
Arthur Baars
48f9e5a96d Merge pull request #19237 from github/aibaars/crate-graph-type-variables
Rust: extract generic parameters, arguments and resolve bound type variables
2025-04-17 13:02:41 +02:00
Jeroen Ketema
0bcee84117 C++: Minor textual fixes 2025-04-17 12:33:27 +02:00
Geoffrey White
8d60e82ec0 Merge branch 'main' into modelnoise 2025-04-17 10:43:15 +01:00
Geoffrey White
43069f139d Rust: command-line-source -> commandargs. 2025-04-17 10:15:04 +01:00
Geoffrey White
ed2d06bcd7 Rust: environment-source -> environment. 2025-04-17 09:57:59 +01:00
Geoffrey White
7e108a8a29 Merge pull request #19310 from geoffw0/trim
Rust: Add model for str.trim
2025-04-17 09:48:45 +01:00
Geoffrey White
e1bddb6152 Merge pull request #19304 from geoffw0/rustio
Rust: Model sources for std::io
2025-04-17 09:47:21 +01:00
Geoffrey White
372ba5c9a5 Merge branch 'main' into modelnoise 2025-04-17 09:42:43 +01:00
idrissrio
15fe2fbba6 C++: update stats file 2025-04-16 20:45:33 +02:00
Geoffrey White
9da6d9435e Rust: More tests affected. 2025-04-16 17:41:27 +01:00
idrissrio
36a425715c C++: add upgrade and downgrade scripts 2025-04-16 17:07:25 +02:00
Geoffrey White
77d3c95d6e Merge branch 'main' into trim 2025-04-16 15:33:30 +01:00
idrissrio
d8afd2a786 C++: add change note for designator-based initializations 2025-04-16 16:23:32 +02:00
idrissrio
49183bb82a C++: add predicate to distinguish between array/field designators 2025-04-16 16:19:26 +02:00
Ian Lynagh
e05c030bb7 Merge pull request #19317 from github/post-release-prep/codeql-cli-2.21.1
Post-release preparation for codeql-cli-2.21.1
2025-04-16 14:45:49 +01:00
Ian Lynagh
bdd3207752 Merge branch 'main' into post-release-prep/codeql-cli-2.21.1 2025-04-16 11:54:23 +01:00
Idriss Riouak
67bfe108c2 Merge pull request #19298 from github/idrissrio/vla
C++: add `isVla` predicated to `ArrayType`
2025-04-16 11:25:31 +02:00
Michael Nebel
29be2171af Merge pull request #19309 from michaelnebel/csharp/fix-comments
C#: Adjust comments and remove compilation warnings.
2025-04-16 09:26:09 +02:00
Aditya Sharad
c4e8b1a79e Merge pull request #19307 from adityasharad/actions/public-preview-cleanup
Actions: Remove preview notice, minor help and metadata fixes
2025-04-16 05:40:20 +05:30
Aditya Sharad
4952768569 Actions: Fix change note newline 2025-04-15 10:21:54 -07:00
github-actions[bot]
d78736b1bf Post-release preparation for codeql-cli-2.21.1 2025-04-15 16:33:15 +00:00
Ian Lynagh
2409bcc0d6 Merge pull request #19301 from github/release-prep/2.21.1
Release preparation for version 2.21.1
2025-04-15 16:52:54 +01:00
Arthur Baars
7bfd5f161e Rust: crate graph: extract associated types 2025-04-15 17:21:04 +02:00
Arthur Baars
2f87630ded Rust: update expected output 2025-04-15 17:18:51 +02:00
Arthur Baars
a4b1c2bbdc Rust: crate graph: resolve bound type variablesp 2025-04-15 17:18:49 +02:00
Arthur Baars
db4306d0c1 Rust: avoid duplication for functions and methods 2025-04-15 17:18:48 +02:00
Arthur Baars
0545f782e0 Rust: get rid of const_or_function 2025-04-15 17:18:46 +02:00
Arthur Baars
5cfbedc114 Rust: replace singleton vectors with Option 2025-04-15 17:18:45 +02:00
Arthur Baars
b24fbe8db9 Rust: remove unreachable case
Enum variants cannot be declared as a module item, they can only be imported
2025-04-15 17:18:44 +02:00
Arthur Baars
cec95ae875 Rust: crate graph: generic parameters 2025-04-15 17:18:42 +02:00
Arthur Baars
a7ccba9aeb Rust: crate graph: type variables 2025-04-15 17:18:28 +02:00
Arthur Baars
2c31363680 Partially revert "Rust: fix compilation errors"
This reverts commit 260322b669.
2025-04-15 17:16:23 +02:00
Geoffrey White
432d4b0eca Merge branch 'main' into trim 2025-04-15 16:05:02 +01:00
Ian Lynagh
8ee353c12c Merge pull request #19312 from igfoo/igfoo/fix-typo-unmasked-secret-exposure
actions: Fix spelling error in UnmaskedSecretExposure.md
2025-04-15 15:41:07 +01:00
Paolo Tranquilli
ff8cd98527 Merge pull request #19233 from github/redsun82/cargo-upgrade
Rust: upgrade rust-analyzer to `0.0.273`
2025-04-15 16:30:12 +02:00
Geoffrey White
39a875e751 Rust: Make some summaries value type. 2025-04-15 14:46:57 +01:00
Ian Lynagh
b75e0ed02e actions: Fix spelling error in UnmaskedSecretExposure.md
Corrects "know" to "known" in the description of the UnmaskedSecretExposure document.
2025-04-15 14:25:39 +01:00
Paolo Tranquilli
3d3de78076 Merge pull request #19299 from github/redsun82/swift-6-extraction
Swift: extract still unextracted entities from the 6.0.2 upgrade
2025-04-15 14:08:38 +02:00
idrissrio
202040fad4 C++: update stats file 2025-04-15 13:36:24 +02:00
Geoffrey White
c561da4536 Merge branch 'main' into rustio 2025-04-15 12:29:55 +01:00
Geoffrey White
fea82d4d6a Merge branch 'main' into trim 2025-04-15 12:21:48 +01:00
Geoffrey White
40a5db6736 Rust: Other tests affected. 2025-04-15 11:52:23 +01:00
Geoffrey White
c06f340bd8 Rust: Make str / String models consistent. 2025-04-15 11:47:29 +01:00
Michael Nebel
9170993cf0 C#: Adjust comments and remove compilation warnings. 2025-04-15 12:46:31 +02:00
Geoffrey White
bfe9cdfed5 Rust: Add model for str.trim and as_bytes. 2025-04-15 11:26:52 +01:00
idrissrio
ae07272c44 C++: add upgrade and downgrade scripts 2025-04-15 11:09:31 +02:00
idrissrio
15ba9e0c66 C++: add change note for VLAs 2025-04-15 11:06:19 +02:00
idrissrio
033bade0ab C++: add isVLA() to ArrayType to identify variable-length arrays 2025-04-15 11:03:26 +02:00
Michael Nebel
0b10d34cae C#: Add change note. 2025-04-15 10:53:40 +02:00
Tamás Vajk
de9c1fbc9c Merge pull request #19251 from tamasvajk/fix/macos15
C#: Fix autobuild on macos without mono
2025-04-15 10:07:26 +02:00
Arthur Baars
1c79c5e9ab Merge pull request #19292 from github/aibaars/rust-shadow-prelude
Rust: allow shadowing of prelude items
2025-04-15 09:54:31 +02:00
Paolo Tranquilli
eda1bc9f6b Merge pull request #19282 from github/redsun82/rust-codeowners
Rust: add to `CODEOWNERS`
2025-04-15 08:58:27 +02:00
Aditya Sharad
f9103f8ddc Actions: Add change note for missing severity 2025-04-14 14:48:43 -07:00
Aditya Sharad
6eb060f16a Actions: Add security-severity to excessive secrets exposure query
Same value as missing actions permissions,
both providing warnings to follow the
principle of least privilege within a
workflow.
2025-04-14 14:41:08 -07:00
Aditya Sharad
93fbb9fe61 Actions: Update description of missing permissions query 2025-04-14 14:39:31 -07:00
Aditya Sharad
eeb938a76d Docs: Minor fixes for Actions query help 2025-04-14 13:25:54 -07:00
Aditya Sharad
32f191cd9d Docs: Remove public preview notice for Actions support
Ready for GA.
2025-04-14 13:21:59 -07:00
Geoffrey White
bdd5717c09 Rust: Remove the models output from the dataflow/local test. 2025-04-14 16:42:20 +01:00
Paolo Tranquilli
2dd3dea33a Merge branch 'main' into redsun82/cargo-upgrade 2025-04-14 16:35:57 +02:00
Paolo Tranquilli
6176202d50 Merge pull request #19291 from github/redsun82/rust-pick-edition
Rust: pick correct edition for the files
2025-04-14 16:26:00 +02:00
Geoffrey White
a8b552200a Rust: Impact on dataflow/local test. 2025-04-14 15:03:04 +01:00
Geoffrey White
24bcd041b8 Rust: Add flow models for io. 2025-04-14 14:20:45 +01:00
Paolo Tranquilli
c9cff09f5d Merge branch 'main' into redsun82/rust-pick-edition 2025-04-14 15:19:33 +02:00
Tamas Vajk
a70536f002 Improve code quality 2025-04-14 14:54:56 +02:00
Paolo Tranquilli
1c11c5562a Swift: add change note 2025-04-14 14:50:46 +02:00
Michael Nebel
f11aec3592 C#: Update test expected output. 2025-04-14 14:26:51 +02:00
Michael Nebel
c15d1ab3bd C#: Consider an attribute to be authorization like, if it extends an attribute that has an authorization like name. 2025-04-14 14:25:31 +02:00
Michael Nebel
2e7e276806 C#: Add test case for authorization attribute that extends Authorize. 2025-04-14 14:18:30 +02:00
Michael Nebel
8d571672e9 C#: Convert cs/missing-access-control to inline expectations test. 2025-04-14 13:54:43 +02:00
Tamas Vajk
91daca1a6b Improve code quality based on PR review 2025-04-14 13:51:30 +02:00
Michael Nebel
53c4b29b50 Merge pull request #19289 from michaelnebel/csharp/improveautobuilder
C#: Improve auto-builder to better detect SDK references.
2025-04-14 12:43:23 +02:00
Paolo Tranquilli
c245459e97 Merge pull request #19293 from github/redsun82/rust-fix-member-aggregation
Rust: fix workspace member aggregation when absolute path is a glob pattern
2025-04-14 12:08:43 +02:00
github-actions[bot]
b961c5961d Release preparation for version 2.21.1 2025-04-14 09:53:06 +00:00
Geoffrey White
7a9ea52bc7 Rust: Add source models for io. 2025-04-14 10:47:30 +01:00
Geoffrey White
4f9f550ba6 Rust: Add source models for fs. 2025-04-14 10:47:26 +01:00
Geoffrey White
258c1afe27 Rust: Add tests for std::fs sources. 2025-04-14 10:47:21 +01:00
Geoffrey White
cef3cd9b54 Rust: Add tests for std::io sources. 2025-04-14 10:47:17 +01:00
Geoffrey White
884c4a6e7b Merge pull request #19171 from geoffw0/badalloc
Rust: Query for uncontrolled allocation size
2025-04-14 10:10:53 +01:00
Paolo Tranquilli
1316e08365 Swift: add upgrade/downgrade scripts 2025-04-14 11:06:47 +02:00
Geoffrey White
c821f27309 Merge branch 'main' into badalloc 2025-04-14 09:36:59 +01:00
Paolo Tranquilli
fa6deaf87a Swift: extract UnreachableExpr 2025-04-14 10:35:24 +02:00
Paolo Tranquilli
9473543933 Swift: extract ActorIsolationErasureExpr 2025-04-14 10:35:24 +02:00
Paolo Tranquilli
ad0f9f1e73 Swift: mark ErrorUnionType as type-check only 2025-04-14 10:35:23 +02:00
Paolo Tranquilli
b575c89463 Swift: add CurrentContextIsolationTree to control flow 2025-04-14 10:35:23 +02:00
Paolo Tranquilli
712142cde9 Swift: extract CurrentContextIsolationExpr 2025-04-14 10:35:22 +02:00
Paolo Tranquilli
42ec6b018d Swift: add ExtractFunctionIsolationTree to control flow 2025-04-14 10:35:22 +02:00
Paolo Tranquilli
2910cb68ce Swift: extract ExtracFunctionIsolationExpr 2025-04-14 10:35:21 +02:00
Napalys Klicius
86313715a4 Merge pull request #19184 from Napalys/js/request_handlers
JS: Support for `Request` and `NextRequest`
2025-04-14 08:07:24 +02:00
Marcono1234
64f37ea24c Docs: Fix typo in code sample 2025-04-12 16:01:55 +02:00
yoff
85527101bd Merge pull request #19205 from yoff/ruby/refine-uninitialised-local
ruby: refine `rb/uninitialized-local-variable`
2025-04-11 23:08:01 +02:00
yoff
7517272d34 ruby: remove repetitive change note 2025-04-11 23:01:15 +02:00
yoff
b988be8ff6 ruby: improve help file
This has improved autofixes
I hope it also helps humans
2025-04-11 21:29:01 +02:00
yoff
85e27cae60 Merge branch 'main' into ruby/refine-uninitialised-local 2025-04-11 18:09:59 +02:00
Paolo Tranquilli
9dd1062a9c Rust: remove fixed inconsistency 2025-04-11 17:25:56 +02:00
Aditya Sharad
2dc88d87ae Merge pull request #19278 from adityasharad/actions/integration-test-filters
Actions: Fix handling of paths-ignore in autobuild scripts, add integration tests for configured path filters
2025-04-11 20:53:33 +05:30
Paolo Tranquilli
c844db09d2 Merge branch 'redsun82/rust-pick-edition' into redsun82/cargo-upgrade 2025-04-11 17:03:29 +02:00
Paolo Tranquilli
63e5f5a555 Rust: parametrize some integration tests on three editions 2025-04-11 16:50:23 +02:00
Paolo Tranquilli
868680f078 Merge branch 'redsun82/rust-fix-member-aggregation' into redsun82/rust-pick-edition 2025-04-11 16:46:16 +02:00
Paolo Tranquilli
60aa3a8d9d Rust: fix workspace member aggregation when absolute path is a glob pattern
We were interpreting the absolute path of a workspace as a glob pattern,
which doesn't work if the path has some special characters (e.g. `[` or
`]`).
2025-04-11 16:41:51 +02:00
yoff
eb0f8e9572 ruby: add rb/uninitialized-local-variable to quality suite 2025-04-11 16:27:21 +02:00
Mathias Vorreiter Pedersen
11aef7019e Merge pull request #19273 from MathiasVP/prepare-shared-mad-generation-for-cpp
Shared: Prepare model generation for C++ adoption
2025-04-11 07:22:56 -07:00
yoff
6a76a40cf4 ruby: adjust change notes 2025-04-11 16:18:03 +02:00
Arthur Baars
b27ae98b54 Rust: normalize paths in the rustup folder 2025-04-11 15:46:57 +02:00
Arthur Baars
662e963a7b Rust: allow shadowing of prelude items 2025-04-11 15:46:55 +02:00
Paolo Tranquilli
dbbd80f4dc Rust: pick correct edition for the files
Previously we would unconditionally set the edition to the latest stable
according to rust-analyzer (2021 at the moment). Now we ask
rust-analyzer itself to pick the correct edition for the file.
2025-04-11 15:36:45 +02:00
Asger F
6c01709048 JS: Update more test output 2025-04-11 15:15:22 +02:00
yoff
2477233508 ruby: only report on method calls
Interviewing a Ruby developer, I learned that
dealing with nil is common practice.
So alerts are mostly useful, if we can point to a place where this has gone wrong.
2025-04-11 15:01:57 +02:00
Tamas Vajk
51388f2401 Do not try running mono when it's not available on the runner 2025-04-11 14:58:08 +02:00
Mathias Vorreiter Pedersen
877118fb3b Merge pull request #19274 from MathiasVP/prepare-cpp-for-mad-generation
C++: Prepare for model generation adoption
2025-04-11 05:11:36 -07:00
Michael Nebel
f349048e42 C#: Add change note. 2025-04-11 13:53:54 +02:00
Michael Nebel
31143b405e C#: Improve auto builder logic to detect Sdk reference. 2025-04-11 13:53:52 +02:00
Mathias Vorreiter Pedersen
deef95d384 Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
Co-authored-by: Taus <tausbn@github.com>
2025-04-11 12:43:59 +01:00
Mathias Vorreiter Pedersen
bfc494c0e1 Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
Co-authored-by: Taus <tausbn@github.com>
2025-04-11 12:43:51 +01:00
yoff
b641d5f177 ruby: fix FP 2025-04-11 13:22:42 +02:00
yoff
6e2cfab7b2 ruby: add test for for
found during triage
2025-04-11 12:46:25 +02:00
Michael Nebel
a5aef8c6f9 C#: Add some more DotNet autobuilder unit tests. 2025-04-11 12:03:06 +02:00
Paolo Tranquilli
4ae49cfe35 Merge pull request #19281 from github/redsun82/rust-setup
Rust: refine `ql/test/setup.sh`
2025-04-11 11:55:12 +02:00
Owen Mansel-Chan
472bfa2668 Merge pull request #19115 from owen-mc/java/port/java/string-replace-all-with-non-regex
Java: Add new quality query to detect `String#replaceAll` with non-regex first argument
2025-04-11 10:31:38 +01:00
Napalys Klicius
3d7c0201d9 Merge pull request #19231 from Napalys/js/typed_array
JS: Taint propagation from low-level `ArrayBuffer` to `Strings`
2025-04-11 11:29:01 +02:00
Napalys
11abbf8c4a Now nextUrl is of type parameter and loosen the restriction for NextAppRouteHandler 2025-04-11 11:19:12 +02:00
Napalys Klicius
92e4f112c0 Update javascript/ql/lib/semmle/javascript/frameworks/Next.qll
Co-authored-by: Asger F <asgerf@github.com>
2025-04-11 11:08:40 +02:00
Napalys Klicius
d0dcf897cb Update javascript/ql/lib/semmle/javascript/internal/flow_summaries/Strings.qll
Co-authored-by: Asger F <asgerf@github.com>
2025-04-11 11:04:08 +02:00
yoff
4167e96058 ruby: more complete impleemntation of isInBooleanContext
Co-authored-by: Tom Hvitved <hvitved@github.com>
2025-04-11 11:00:22 +02:00
yoff
f675a143d6 ruby: remove redundant cases
The CFG handles the negation
2025-04-11 10:48:41 +02:00
Napalys Klicius
d17d29a387 Merge pull request #19218 from Napalys/js/upgrade_websocket
JS: Refactor `WebSocket` to use `API` graphs
2025-04-11 10:05:54 +02:00
Napalys
e3f1720f9c RenamedDecodeLike to Decode and updated propagatesFlow 2025-04-11 10:04:09 +02:00
Arthur Baars
85940484ab Update rust/ql/test/setup.sh 2025-04-11 09:57:50 +02:00
Napalys
2c4b3527b4 Added change note 2025-04-11 09:42:12 +02:00
Napalys
678eccb417 Added searchParams.get as potential source for SSRF 2025-04-11 09:42:07 +02:00
Tom Hvitved
e26695fc51 Rust: Take where clauses into account in path resolution 2025-04-11 09:28:08 +02:00
Napalys
8674b61e5a Added SSRF test case with searchParams for NextRequest 2025-04-11 09:26:16 +02:00
Tom Hvitved
cc85a09b39 Rust: Add AI-generated test for path resolution of where clauses 2025-04-11 09:24:09 +02:00
Paolo Tranquilli
db1203acb3 Rust: reinstate adding rust-src for test toolchains 2025-04-11 08:57:14 +02:00
Napalys
6e09a65da0 Added support for NextRequest middleware SSRF. 2025-04-11 08:43:36 +02:00
Napalys
734ad2d767 Removed legacy Consistency check as it is redundant now with inline test expectations. 2025-04-11 08:43:08 +02:00
Napalys
208487f236 Added middleware test 2025-04-11 08:39:47 +02:00
Asger F
719456e27d JS: Fix missing flow into rest pattern lvalue 2025-04-11 08:37:09 +02:00
Asger F
7703b1fab5 JS: Add test for missing getALocalSource flow for rest pattern 2025-04-11 08:37:07 +02:00
Paolo Tranquilli
547833afb5 Rust: add to CODEOWNERS 2025-04-11 08:32:33 +02:00
Paolo Tranquilli
becea89a47 Rust: refine ql/test/setup.sh 2025-04-11 08:26:48 +02:00
Tamas Vajk
159d31d494 Reenable problematic test 2025-04-11 08:24:08 +02:00
yoff
8555e8c8c8 ruby: add change notes 2025-04-11 03:07:19 +02:00
yoff
53c88da91b ruby: refine query for uninitialised local variables
- there are places where uninitialised reads are intentional
- there are also some places where they are impossible
2025-04-11 03:07:19 +02:00
yoff
1ca25b2ccb ruby: add test of rb/uninitialized-local-variable 2025-04-11 03:00:05 +02:00
Aditya Sharad
283503b06d Actions: Fix handling of paths-ignore in autobuild scripts
Always concatenate the default filters with the user-provided filters.
This ensures that when `paths-ignore` is provided,
we begin with the default path inclusions,
not all YAML files.
This makes the `paths-ignore-only` integration test variant
under `filters` pass.

The handling of `paths` is unchanged:
if provided, this overrides the default filters.
2025-04-10 11:18:45 -07:00
Aditya Sharad
30ce0c5cbf Actions: Add integration tests for configured path filters
Use the common structure from the existing test
for default filters.

Check both query output finding workflows and actions,
and source archive output showing all extracted YAML files.

The test for only `paths-ignore` fails in this commit,
demonstrating a bug: we start with all YAML files
rather than starting with the default includes.

The tests for `paths` reflect current behaviour
which is consistent with other languages:
`paths` overrides the default inclusions,
and only files under `paths` are included.

This may not be the best user experience for Actions,
since we want to scan all workflow and action files
even in the presence of `paths`, but that is not
currently addressed.
2025-04-10 11:17:51 -07:00
Tom Hvitved
7ed8a85e08 Merge pull request #19246 from hvitved/rust/cache-tweaks 2025-04-10 19:02:25 +02:00
Felicity Chapman
c2baf9a052 Merge pull request #19270 from github/felicitymay-patch-1
CodeQL docs: Fix ordering in side navigation bar for Query help
2025-04-10 15:10:14 +01:00
Owen Mansel-Chan
4f5bdbb517 Add new query to java-code-quality.qls.expected 2025-04-10 14:37:11 +01:00
Mathias Vorreiter Pedersen
3bb249f580 C++: Ensure we always have 'Position's even if there are no calls in the DB. 2025-04-10 14:28:40 +01:00
Mathias Vorreiter Pedersen
b678112f4d C++: Add a few predicates to 'ReturnKind'. 2025-04-10 14:28:38 +01:00
Mathias Vorreiter Pedersen
960e9900af C++: Move the 'getArgumentIndex' into the abstract 'Position' class. It is implemented in all subclasses anyway. 2025-04-10 14:28:36 +01:00
Mathias Vorreiter Pedersen
94e08e318d C++: Expose a few predicates from 'ExternalFlow'. 2025-04-10 14:18:47 +01:00
Napalys Klicius
43bf0beae9 Merge pull request #19263 from Napalys/js/make-dir-lib
JS: Add support for `make-dir` package
2025-04-10 15:09:43 +02:00
Napalys
86b64afa13 Added NextResponse to the ResponseCall class it models similar near idential behaviour. 2025-04-10 15:06:44 +02:00
Tom Hvitved
a578f44af4 QL4QL: Restrict ql/qlref-inline-expectations to (path-)problem queries 2025-04-10 15:03:57 +02:00
Mathias Vorreiter Pedersen
ea3bb8cf0c Shared: Provide a hook to MaD generation to modify the 'ReturnValue' string. 2025-04-10 14:02:31 +01:00
Mathias Vorreiter Pedersen
6c348b5855 Rust: Fixup MaD input. 2025-04-10 14:01:20 +01:00
Mathias Vorreiter Pedersen
b6c658767e Java: Fixup MaD input. 2025-04-10 14:01:11 +01:00
Mathias Vorreiter Pedersen
04bf908a4b C#: Fixup MaD input. 2025-04-10 14:01:00 +01:00
Mathias Vorreiter Pedersen
c484945f39 Shared: Move 'getEnclosingCallable' and 'getAsExprEnclosingCallable' out of the class signature. 2025-04-10 14:00:11 +01:00
Mathias Vorreiter Pedersen
732fcbf1c9 Shared: Move 'asParameter' out of the class signature. 2025-04-10 13:58:59 +01:00
Napalys
8acb0243ad Added test cases for NextResponse and Response 2025-04-10 14:57:40 +02:00
Mathias Vorreiter Pedersen
a1dc87496a Shared: Replace a 'count' with a 'strictcount' to prevent a CP when testing on C++. 2025-04-10 13:56:38 +01:00
Napalys
63a3953b0c Enhance Next.js API endpoint handling for compatibility with both Pages and App Router structures. 2025-04-10 14:48:17 +02:00
Napalys
81cba7fa2f Added test cases with missing alerts for Request and NextRequest. 2025-04-10 14:43:48 +02:00
Asger F
eac14b9837 Merge pull request #19200 from asgerf/js/web-response
JS: Add sinks for calls to 'new Response()'
2025-04-10 14:41:32 +02:00
Napalys
171a84609e Applied copilot suggestion. 2025-04-10 14:13:48 +02:00
Felicity Chapman
78a26cfdb2 Update index.rst 2025-04-10 13:09:51 +01:00
Joe Farebrother
7f7fca9e27 Merge pull request #19165 from joefarebrother/python-qual-loop-var-capture
Python: Modernize the Loop Variable Capture query
2025-04-10 13:07:05 +01:00
Owen Mansel-Chan
acfcc6d490 Sort ids in java-code-quality.qls 2025-04-10 12:35:42 +01:00
Owen Mansel-Chan
576f4cf19f Update tags 2025-04-10 12:21:09 +01:00
Owen Mansel-Chan
ad89e7980e Tweak documentation 2025-04-10 12:21:08 +01:00
Owen Mansel-Chan
3ea5cc1b66 Add query to code-quality query suite 2025-04-10 12:21:06 +01:00
Owen Mansel-Chan
e1c5517de7 Keep COMPLIANT and NON_COMPLIANT comments in test 2025-04-10 12:21:05 +01:00
Owen Mansel-Chan
04ec1d7830 Update test expectations 2025-04-10 12:21:03 +01:00
Owen Mansel-Chan
626a7d5007 Fix punctuation 2025-04-10 12:21:02 +01:00
Owen Mansel-Chan
c4e56b1ec8 Add quality and cwe tag to query
CWE-1176: Inefficient CPU Computation
2025-04-10 12:21:00 +01:00
Owen Mansel-Chan
042fe07494 Adjust alert message 2025-04-10 11:47:19 +01:00
Owen Mansel-Chan
fea3d10b97 Update qhelp 2025-04-10 11:47:18 +01:00
Owen Mansel-Chan
441c79ebdf Use existing class StringReplaceAllCall 2025-04-10 11:47:17 +01:00
Owen Mansel-Chan
b5b252b10f Convert test to inline expectations 2025-04-10 11:47:15 +01:00
Owen Mansel-Chan
ff2947a0e5 Adjust query name 2025-04-10 11:47:14 +01:00
Owen Mansel-Chan
041adcd63a Java: Add initial version of string replaceAll with no regex query 2025-04-10 11:46:59 +01:00
Asger F
d2a4f1e17a Merge pull request #19267 from asgerf/js/json-array-trailing-comma
JS: Tolerate trailing commas in JSON arrays
2025-04-10 12:38:16 +02:00
Joe Farebrother
6802037c89 Update qhelp formatting 2025-04-10 09:52:18 +01:00
Joe Farebrother
00999baf9a Apply docs review suggestion - Reword query description.
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-04-10 09:06:01 +01:00
Asger F
3da1f261f7 JS: Change note 2025-04-10 07:21:48 +02:00
Asger F
cfa1a9b603 JS: Update extractor version string 2025-04-10 07:20:53 +02:00
Asger F
1434f7acd2 JS: Tolerate trailing comma in JSON array
Previously we'd fail to extract some tsconfig.json files because of this.
2025-04-10 07:20:51 +02:00
Asger F
800dd168c2 JS: Add failing TRAP test for trailing comma 2025-04-10 07:20:49 +02:00
Aditya Sharad
bd3342af8a Actions: Update integration test for default filters
Create a common file structure to be shared among multiple tests
for path filters, and rename accordingly.
Update test expectations with additional files.
Use pytest markers to indicate the expected outputs.

Add source archive checking in addition to checking query output.
This allows us to test which YAML files were extracted
separately from whether they are semantically meaningful
to the Actions analysis.
2025-04-09 20:59:42 -07:00
Tom Hvitved
0e31bf1e7b Merge pull request #19265 from hvitved/rust/crate-graph-self-crate-ref 2025-04-09 22:54:53 +02:00
Tom Hvitved
a6b20d7731 Merge pull request #19259 from hvitved/ruby/fix-bad-join
Ruby: Fix bad join in `DeadStoreOfLocal.ql`
2025-04-09 19:03:33 +02:00
Tom Hvitved
1ba06ab3bf Merge pull request #19216 from hvitved/rust/path-resolution-path-attr
Rust: Handle path attributes in path resolution
2025-04-09 18:57:56 +02:00
Aditya Sharad
ef0065546a Merge pull request #19264 from github/coadaflorin-actions-docs-patch
Update codeql-library-for-actions.rst
2025-04-09 21:46:28 +05:30
Aditya Sharad
29af6f7f0d Merge pull request #19257 from adityasharad/actions/fix/autobuild-powershell-spaces
Actions: Fix invocation of autobuild PowerShell script
2025-04-09 21:26:32 +05:30
Tom Hvitved
52401aaa73 Address review comments 2025-04-09 17:19:25 +02:00
Chris Smowton
cc379b543c Merge pull request #19260 from smowton/smowton/feature/sanitize-enum-types
Java: Add EnumType to SimpleTypeSanitizer
2025-04-09 16:05:13 +01:00
Chris Smowton
7a8dfdb971 Grammar 2025-04-09 15:52:48 +01:00
Chris Smowton
f31b49b022 Change note 2025-04-09 15:41:48 +01:00
Tom Hvitved
fbab715cb6 Rust: Allow for crate self-references in crate graph paths 2025-04-09 15:21:34 +02:00
Joe Farebrother
84aa2e8627 Apply review suggestion - Tweak wording of example comment
Co-authored-by: Taus <tausbn@github.com>
2025-04-09 14:07:38 +01:00
Chris Smowton
949812243b Merge pull request #19261 from smowton/smowton/admin/improve-gradle-wrapper-message
Java: Update test expectation
2025-04-09 14:03:52 +01:00
Napalys
5243f90c90 Brought back old methods and marked them as deprecated 2025-04-09 14:56:24 +02:00
Florin Coada
0acccf240a Update codeql-library-for-actions.rst 2025-04-09 13:45:21 +01:00
Napalys
5ec71ab9af Added change note 2025-04-09 14:42:34 +02:00
Napalys
ce2fc25cdb Added make-dir model as data 2025-04-09 14:42:29 +02:00
Napalys
674f40b35f Added test cases for make-dir package. 2025-04-09 14:41:12 +02:00
Napalys Klicius
2dca95af92 Update javascript/ql/lib/change-notes/2025-04-07-websocket.md
Co-authored-by: Asger F <asgerf@github.com>
2025-04-09 14:26:00 +02:00
Napalys
0c52b5ad95 Added summary flow for StringFromCharCode 2025-04-09 14:24:43 +02:00
Chris Smowton
5c7a4eb511 Reorder test expectations 2025-04-09 12:51:18 +01:00
Napalys Klicius
f02783a9c6 Merge pull request #19210 from Napalys/js/mkdirp
JS: Modeling of `mkdirp` functions
2025-04-09 13:43:37 +02:00
Tom Hvitved
9323f1aaf0 Merge pull request #19250 from hvitved/rust/fix-bad-joins
Rust: Fix bad joins
2025-04-09 13:36:01 +02:00
Chris Smowton
3373c2457c Update test expectation 2025-04-09 12:27:48 +01:00
Napalys
a3e4e62eac Removed taint from ArrayBuffer constructor as it accepts length 2025-04-09 13:27:13 +02:00
Chris Smowton
0a293cf357 Add EnumType to SimpleTypeSanitizer 2025-04-09 12:12:35 +01:00
Owen Mansel-Chan
b6053e3f91 Merge pull request #19076 from owen-mc/go/update-depstubber-files
Go: update files generated by depstubber
2025-04-09 11:44:20 +01:00
Napalys
4bc3e9e736 Addressed comments
Co-authored-by: Asgerf <asgerf@github.com>
2025-04-09 12:31:45 +02:00
Napalys Klicius
0751d73eab Merge pull request #19256 from Napalys/js/open_package
JS: Model as Data `open` package
2025-04-09 11:54:44 +02:00
Asger F
da7d6d3346 JS: Change note 2025-04-09 11:28:21 +02:00
Tom Hvitved
35f9157e42 Ruby: Fix bad join in DeadStoreOfLocal.ql 2025-04-09 09:28:55 +02:00
Paolo Tranquilli
8d467c7d02 Merge pull request #19255 from github/redsun82/rust-setup
Rust: add test setup script
2025-04-09 08:51:58 +02:00
Aditya Sharad
2e75dbd519 Actions: Fix invocation of autobuild PowerShell script
Pass the quoted script path to PowerShell using `-File`.
This ensures the path is treated as a string rather
than a command, and correctly handles file paths
that contain spaces, unblocking integration tests.

Add logging to autobuild.cmd for easier debugging.
2025-04-08 20:00:25 -07:00
Aditya Sharad
c4c351c9dd Merge pull request #19239 from adityasharad/actions/integration-test-default-filters
Actions: Create initial integration test for default filters
2025-04-08 23:07:58 +05:30
Aditya Sharad
21af1c6113 Merge pull request #19241 from adityasharad/actions/fix/docs-table-block-formatting
Docs: Fix formatting of GitHub Actions content
2025-04-08 22:07:30 +05:30
Tamás Vajk
c0f2ce77d4 Merge pull request #19254 from tamasvajk/tamasvajk/test-queries-not-in-qls
Java: Add test to check queries not included in well-known query suites
2025-04-08 18:20:19 +02:00
Óscar San José
6d95950081 Merge pull request #19252 from github/oscarsj/nice-servers-for-java-tests
Run test servers with `sudo` when running on `macos-15`
2025-04-08 18:04:25 +02:00
Paolo Tranquilli
25bd0c3b21 Rust: add test setup script 2025-04-08 17:28:57 +02:00
Tamás Vajk
d39045e3e1 Merge pull request #19245 from tamasvajk/tamasvajk/improvement-security-and-quality-suite-selector
Java: Add explicit filtering for quality queries that should be included in security-and-quality
2025-04-08 17:08:28 +02:00
Tamas Vajk
e163344907 Java: Add test to check queries not included in well-known query suites 2025-04-08 17:06:46 +02:00
Tamas Vajk
6abff483da Java: Add explicit filtering for quality queries that should be included in security-and-quality 2025-04-08 16:47:41 +02:00
Tamas Vajk
259a09386e Move query suite selector logic to security-and-quality-suite 2025-04-08 16:47:41 +02:00
Tamás Vajk
f325f53273 Merge pull request #19229 from tamasvajk/test/java-query-suite
Java: add integration test for query suite contents
2025-04-08 16:47:07 +02:00
Óscar San José
afe3e5332f Update java/ql/integration-tests/java/buildless-inherit-trust-store/test.py
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2025-04-08 16:29:23 +02:00
Óscar San José
1eb4a1aa81 Update java/ql/integration-tests/java/buildless-snapshot-repository/test.py
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2025-04-08 16:29:16 +02:00
Óscar San José
3b56f95480 use only sudo for running maven test server (remove nice) 2025-04-08 16:19:33 +02:00
Paolo Tranquilli
84c728f847 Merge pull request #19244 from github/redsun82/bazel-update
Bazel: update to 8.1.1
2025-04-08 15:58:29 +02:00
Óscar San José
e49fb839b8 Update java/ql/integration-tests/java/buildless-inherit-trust-store/test.py
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2025-04-08 15:28:18 +02:00
Michael B. Gale
87f2ccb5a2 Merge pull request #19249 from github/mbg/go/fix-getpkginfo-decerr
Go: Fix `err` instead of `decErr` in `GetPkgsInfo`
2025-04-08 14:21:14 +01:00
Óscar San José
b5e1b25553 use sudo nice for running maven test server 2025-04-08 13:51:09 +02:00
Simon Friis Vindum
9dc008b9f4 Merge pull request #19214 from paldepind/rust-ti-associated
Rust: Associated types
2025-04-08 13:46:36 +02:00
Michael B. Gale
e210be7bb2 Go: Preserve environment variables in ApplyProxyEnvVars 2025-04-08 12:38:38 +01:00
Tom Hvitved
95add2f60b Rust: Fix bad join in getAPrivateVisibleModule
Before
```
Pipeline standard for PathResolution::getAPrivateVisibleModule/1#3829a5ee@822d5hwq was evaluated in 24 iterations totaling 16ms (delta sizes total: 4843).
         105047   ~63652%    {2} r1 = SCAN `PathResolution::resolvePathPrivate/3#56db2cdf#reorder_1_2_0_3#prev_delta` OUTPUT In.0, In.0

             69       ~0%    {2} r2 = JOIN `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev_delta` WITH `PathResolution::resolvePathPrivate/3#56db2cdf#reorder_1_2_0_3#prev` ON FIRST 1 OUTPUT Lhs.0, Lhs.1

        5766690  ~148309%    {2} r3 = JOIN `PathResolution::resolvePathPrivate/3#56db2cdf#reorder_1_2_0_3#prev_delta` WITH `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev` ON FIRST 1 OUTPUT Lhs.0, Rhs.1

        5871806  ~143984%    {2} r4 = r1 UNION r2 UNION r3
           6859     ~148%    {2}    | AND NOT `PathResolution::getAPrivateVisibleModule/1#3829a5ee#prev`(FIRST 2)
                             return r4
```

After
```
Pipeline standard for PathResolution::getAPrivateVisibleModule/1#3829a5ee@5edefhwp was evaluated in 12 iterations totaling 0ms (delta sizes total: 3515).
         339   ~1%    {2} r1 = SCAN `PathResolution::isItemParent/1#d5e587d6#prev_delta` OUTPUT In.0, In.0

        3130   ~0%    {2} r2 = JOIN `PathResolution::isItemParent/1#d5e587d6#prev_delta` WITH `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev` ON FIRST 1 OUTPUT Lhs.0, Rhs.1

          46   ~0%    {2} r3 = JOIN `#PathResolution::ItemNode.getImmediateParentModule/0#dispred#57c4c6d5Plus#bf#reorder_1_0#prev_delta` WITH `PathResolution::isItemParent/1#d5e587d6#prev` ON FIRST 1 OUTPUT Lhs.0, Lhs.1

        3515   ~2%    {2} r4 = r1 UNION r2 UNION r3
        3515   ~2%    {2}    | AND NOT `PathResolution::getAPrivateVisibleModule/1#3829a5ee#prev`(FIRST 2)
                      return r4
```
2025-04-08 13:11:32 +02:00
Tom Hvitved
2e1b8b8b0e Rust: Fix bad join in unqualifiedPathLookup
Before
```
Pipeline standard for PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1@822d53wq was evaluated in 61 iterations totaling 118ms (delta sizes total: 131072).
          606491   ~0%    {4} r1 = SCAN `PathResolution::getASuccessor/3#febac7bd#prev_delta` OUTPUT In.1, In.2, In.0, In.3
          106457   ~1%    {3}    | JOIN WITH `PathResolution::unqualifiedPathLookup/4#e32cdfce_1230#join_rhs` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.1

          606491   ~2%    {4} r2 = SCAN `PathResolution::getASuccessor/3#febac7bd#prev_delta` OUTPUT In.0, In.2, In.3, In.1

           19261   ~0%    {4} r3 = JOIN r2 WITH `PathResolution::ModuleLikeNode.isRoot/0#dispred#21662e64` ON FIRST 1 OUTPUT Lhs.3, Lhs.0, Lhs.1, Lhs.2

        42776643   ~1%    {4} r4 = JOIN r2 WITH `doublyBoundedFastTC@PathResolution::hasChild/2#6b318d51#2@PathResolution::isRoot/1#a01ce5c3#1@PathResolution::hasCratePath/1#73ea688d#1` ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.1, Lhs.2

        42795904   ~1%    {4} r5 = r3 UNION r4
           24921   ~6%    {3}    | JOIN WITH `PathResolution::RelevantPath.isCratePath/2#e595e892_120#join_rhs` ON FIRST 2 OUTPUT Lhs.3, Rhs.2, Lhs.2

          131378   ~2%    {3} r6 = r1 UNION r5
          131072   ~2%    {3}    | AND NOT `PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1#prev`(FIRST 3)
                          return r6
```

After
```
Pipeline standard for PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1@0553a4wi was evaluated in 66 iterations totaling 10ms (delta sizes total: 131072).
        610251  ~0%    {4} r1 = SCAN `PathResolution::getASuccessor/3#febac7bd#prev_delta` OUTPUT In.1, In.2, In.0, In.3
        131378  ~0%    {3}    | JOIN WITH `PathResolution::unqualifiedPathLookup1/4#781de0cd_1230#join_rhs` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.1
        131072  ~0%    {3}    | AND NOT `PathResolution::unqualifiedPathLookup/2#6b171b76#reorder_2_0_1#prev`(FIRST 3)
                       return r1
```
2025-04-08 13:10:52 +02:00
Michael B. Gale
7798b716ff Go: Fix err instead of decErr in GetPkgsInfo 2025-04-08 12:04:48 +01:00
Michael B. Gale
0f78e11376 Go: Detect and apply proxy settings (WIP) 2025-04-08 12:02:15 +01:00
Óscar San José
a7943d88b1 Merge pull request #19234 from github/oscarsj/csharp-disable-nuget-tests
Disable csharp tests that use nuget on macos-15
2025-04-08 12:38:28 +02:00
Michael B. Gale
ded27bcee4 Go: Replace exec.Command("go" with toolchain.GoCommand( 2025-04-08 11:19:42 +01:00
Geoffrey White
866fc6b320 Merge pull request #19235 from geoffw0/ssaconsistency
Rust: SSA inconsistency counts
2025-04-08 10:49:19 +01:00
Tom Hvitved
7459548118 Rust: Cache tweaks 2025-04-08 11:49:16 +02:00
Owen Mansel-Chan
8c878cd8f5 Merge pull request #19243 from github/dependabot/go_modules/go/extractor/extractor-dependencies-891a2402ea
Bump golang.org/x/tools from 0.31.0 to 0.32.0 in /go/extractor in the extractor-dependencies group
2025-04-08 10:30:29 +01:00
Owen Mansel-Chan
5f6c59580c Merge pull request #19240 from github/workflow/coverage/update
Update CSV framework coverage reports
2025-04-08 10:28:22 +01:00
Geoffrey White
10ad5780b5 Rust: Try a different toolchain version to fix the test in CI? 2025-04-08 10:21:40 +01:00
Geoffrey White
e2f63db96d Merge branch 'main' into badalloc 2025-04-08 10:15:38 +01:00
Geoffrey White
fd3dcb2d00 Rust: More precise imports. 2025-04-08 09:30:14 +01:00
Paolo Tranquilli
15606dd894 Bazel: update to 8.1.1 2025-04-08 08:20:54 +02:00
Napalys
4a4d78bbde Added change note 2025-04-08 08:12:42 +02:00
Napalys
b8802a29f4 Added open package model as data. 2025-04-08 08:12:30 +02:00
Napalys
df89739085 Added test cases for open package. 2025-04-08 08:10:10 +02:00
dependabot[bot]
2f9be926fb Bump golang.org/x/tools
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools).


Updates `golang.org/x/tools` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.31.0...v0.32.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-version: 0.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: extractor-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 03:42:17 +00:00
Aditya Sharad
cf4989e1f8 Docs: Place GitHub Actions link lower in sidebar
Order by the human-readable language name
that is rendered,
i.e. 'GitHub Actions', not 'actions'.
2025-04-07 17:37:24 -07:00
Aditya Sharad
98b6e5ce2f Docs: Fix formatting of GitHub Actions content
Discovered in internal review of docs preview.
Use double backticks to render inline code blocks.
Use __ after inline hyperlinks.
Use an extra blank line to format the Actions library predicates table correctly.
Fix some rogue references to Ruby and case inconsistency.
2025-04-07 17:33:43 -07:00
github-actions[bot]
5adf135134 Add changed framework coverage reports 2025-04-08 00:22:09 +00:00
Aditya Sharad
0bb4ab950f Actions: Add integration test for default filter behaviour
Include a reachable workflow, and several unreachable workflow files.
Include action metadata files at various depths, all reachable.
This test exercises the default filters when the user doesn't
specify paths/paths-ignore.
2025-04-07 17:14:53 -07:00
Aditya Sharad
37db35431b Actions: Ensure autobuild invocations work when the CLI path contains spaces
Quote the paths to the CodeQL CLI dist or autobuild scripts when invoked.

This unblocks integration testing, since our integration tests always use
a CLI with a space in its directory name.
2025-04-07 17:06:28 -07:00
Geoffrey White
88439b42e6 Merge pull request #19095 from geoffw0/blockon
Rust: Model futures::executor::block_on.
2025-04-07 17:41:49 +01:00
Óscar San José
5e74bdc8dd Disable csharp test failing on macos-15 2025-04-07 18:16:33 +02:00
Napalys
873db7c121 Added change note 2025-04-07 18:15:24 +02:00
Napalys
b97c61864e Add flow summaries and entry points for TextDecoder 2025-04-07 18:15:19 +02:00
Napalys
f28478e876 Add test cases from TypedArrays to strings. 2025-04-07 18:13:52 +02:00
Napalys
f4277204b7 Add flow summaries and entry points for ArrayBuffer and SharedArrayBuffer 2025-04-07 18:12:35 +02:00
Napalys
0e099474c5 Added test cases for ArrayBuffer and SharedArrayBuffer 2025-04-07 18:07:54 +02:00
Napalys
ff07ec8d8c Add flow summaries for TypedArray methods set and subarray 2025-04-07 18:06:40 +02:00
Geoffrey White
ee54ba4c48 Rust: Autoformat. 2025-04-07 17:06:15 +01:00
Chuan-kai Lin
7c63264951 Merge pull request #19208 from github/cklin/exclude-from-incremental
Java: add exclude-from-incremental tag to telemetry queries
2025-04-07 08:29:30 -07:00
Paolo Tranquilli
de0d374cce Rust: add upgrades property in qlpack.yml 2025-04-07 17:22:17 +02:00
Geoffrey White
9c1567375d Shared: Implement getInconsistencyCounts for SSA. 2025-04-07 16:20:42 +01:00
Simon Friis Vindum
48e5b0a731 Merge branch 'main' into rust-ti-associated 2025-04-07 17:07:05 +02:00
Simon Friis Vindum
602e617bc6 Rust: Add type inference test for trait with multiple associated types 2025-04-07 17:02:51 +02:00
Simon Friis Vindum
8e76bb1a43 Rust: Minor changes based on PR review 2025-04-07 16:46:54 +02:00
Óscar San José
3744ef7379 Disable csharp tests that use nuget on macos-15 2025-04-07 16:24:48 +02:00
Paolo Tranquilli
1f9455c434 Rust: add upgrade/downgrade scripts for struct_field_is_unsafe 2025-04-07 15:39:14 +02:00
Geoffrey White
41f54d836e Rust: Tweak query description. 2025-04-07 14:33:31 +01:00
Geoffrey White
dad85854cd Apply suggestions from code review
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-04-07 14:27:12 +01:00
Paolo Tranquilli
260322b669 Rust: fix compilation errors 2025-04-07 15:25:19 +02:00
Tom Hvitved
13f4a6afa6 Rust: Handle path attributes in path resolution 2025-04-07 15:24:17 +02:00
Tom Hvitved
edb7aaabab Rust: Add path attribute test 2025-04-07 15:23:27 +02:00
Napalys
d689a55229 Added test cases for TypedArray methods 2025-04-07 15:15:29 +02:00
Napalys
e23ff9cf3e Add TypedArrays flow summaries for Uint8Array and buffer property 2025-04-07 15:15:24 +02:00
Owen Mansel-Chan
d8ca8dd954 Merge pull request #19203 from owen-mc/review/egregius313/17905
Go: Add database source models for `uptrace/bun` and `gogf/gf/database/gdb`
2025-04-07 13:56:00 +01:00
Tamás Vajk
ffcf6d6e58 Apply suggestions from code review
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-07 14:52:57 +02:00
Paolo Tranquilli
132632b2a1 Cargo: update rustc_apfloat patched revision 2025-04-07 14:45:55 +02:00
Paolo Tranquilli
afb97d2797 Rust: regenerate schema 2025-04-07 14:34:33 +02:00
Paolo Tranquilli
db9c908d1d Cargo: upgrade dependencies 2025-04-07 14:30:00 +02:00
yoff
bf7d3d12a9 Merge pull request #19230 from yoff/ruby/add-DeadStoreOfLocal-to-code-quality-suite
ruby: add `rb/useless-assignment-to-local` to the code-quality suite
2025-04-07 14:25:20 +02:00
Simon Friis Vindum
74583e4fbf Merge pull request #19227 from paldepind/rust-pr-self
Rust: Resolve `Self` path in trait type of implementation
2025-04-07 14:21:02 +02:00
yoff
ba225013e7 ruby: add rb/useless-assignment-to-local to the code-quality suite 2025-04-07 14:08:53 +02:00
yoff
76c0b1698f Merge pull request #19164 from yoff/ruby/refine-deadstore
ruby: remove some FPs from `rb/useless-assignment-to-local`
2025-04-07 14:08:12 +02:00
yoff
6a8484f843 ruby: adjust precision of rb/useless-assignment-to-local to medium 2025-04-07 13:28:05 +02:00
yoff
eb8cbfa287 ruby: add change note 2025-04-07 13:28:05 +02:00
yoff
385598d46d ruby: remove some FPs from rb/useless-assignment-to-local 2025-04-07 13:28:05 +02:00
yoff
b205fedef4 ruby: add tests 2025-04-07 13:27:27 +02:00
yoff
e5fc1b0b00 ruby: add qhelp to rb/useless-assignment-to-local 2025-04-07 13:27:27 +02:00
Tom Hvitved
ca5cc8e405 Merge pull request #19220 from hvitved/rust/path-resolution-crate-fix
Rust: Minor path resolution fix for `($)crate` paths
2025-04-07 13:24:12 +02:00
Geoffrey White
2c2506c4f8 Rust: Add Rust SSA inconsistency infrastructure. 2025-04-07 12:16:45 +01:00
Simon Friis Vindum
3441af136c Merge pull request #19146 from paldepind/rust-ti-alias
Rust: Implement support for inference of type aliases
2025-04-07 13:03:30 +02:00
Simon Friis Vindum
5dba2412b5 Rust: Fix annotation in comment 2025-04-07 12:53:13 +02:00
Florin Coada
5cde4ddccf Merge pull request #19219 from github/changedocs/2.21.0
Add changelog entries for CodeQL CLI versions 2.20.7 and 2.21.0
2025-04-07 11:53:05 +01:00
Simon Friis Vindum
acc565f84e Rust: Refactor PathMention as suggested in review 2025-04-07 12:50:31 +02:00
Tamas Vajk
d17d44125c Java: add integration test for query suite contents 2025-04-07 12:49:16 +02:00
Napalys
93882263f9 Added test case for Uint8Array and TypedArray.prototype.buffer 2025-04-07 12:46:19 +02:00
Napalys
c4fa417680 Added change note 2025-04-07 12:11:33 +02:00
yoff
a885e61875 Merge pull request #19206 from hvitved/ruby/super-implicit-args-synth
Ruby: Synthesize implicit super arguments
2025-04-07 11:57:12 +02:00
Simon Friis Vindum
6cecf7e618 Rust: Resolve Self path in trait type of implementation 2025-04-07 11:55:03 +02:00
Simon Friis Vindum
5c2d6e3d0f Rust: Add path resolution test for Self in trait implementation 2025-04-07 11:45:43 +02:00
Napalys
6fb5376c5f Refactor ReceivedItemAsRemoteFlow to handle data from both client and server WebSocket sources 2025-04-07 11:44:40 +02:00
Geoffrey White
893e42315e Merge branch 'main' into badalloc 2025-04-07 09:33:23 +01:00
Geoffrey White
f292d04d7a Merge branch 'main' into blockon 2025-04-07 09:03:55 +01:00
Geoffrey White
810228273b Merge pull request #19222 from geoffw0/sinkstats
Rust: Define queries more consistently and include all sinks in stats
2025-04-07 08:57:40 +01:00
Tom Hvitved
f992c714fd Ruby: Add change note 2025-04-07 09:24:26 +02:00
Geoffrey White
471f02cf3b Merge branch 'main' into sinkstats 2025-04-04 22:28:30 +01:00
Geoffrey White
6ad7a950da Merge branch 'main' into badalloc 2025-04-04 21:57:04 +01:00
Geoffrey White
c9939387f8 Rust: Turn on PrettyPrintModels for RegexInjection so we hopefully don't have to deal with test result changes there as often. 2025-04-04 21:47:22 +01:00
Geoffrey White
a5883b1627 Rust: Accept test changes (due to added models?). 2025-04-04 21:45:37 +01:00
Geoffrey White
bc92a99fae Merge pull request #19080 from geoffw0/deallocation
Rust: Query for dereferencing an invalid pointer
2025-04-04 21:25:40 +01:00
Geoffrey White
d7c14ec065 Rust: Revert change to Cargo.lock. 2025-04-04 20:47:16 +01:00
Jami Cogswell
798907dc50 Java: remove change note 2025-04-04 14:01:35 -04:00
Jami Cogswell
77eeab33a6 Java: remove change note 2025-04-04 13:57:34 -04:00
Geoffrey White
ff78c45e50 Rust: Abstractions then implementations. 2025-04-04 18:33:27 +01:00
Geoffrey White
47ee6c6b81 Rust: Give regex injection extendable sources as well. 2025-04-04 18:27:16 +01:00
Geoffrey White
0db551032c Rust: Make imports consistent and correct. 2025-04-04 18:23:53 +01:00
Geoffrey White
784ccb740b Rust: Define Rust queries and extensions more consistently. 2025-04-04 18:17:16 +01:00
Geoffrey White
1acbdbaaa2 Rust: Make all query sinks extend QuerySink::Range and import them into Stats.qll (this ensures that sink statistics are complete). 2025-04-04 18:02:59 +01:00
Geoffrey White
c783549b5c Merge branch 'main' into blockon 2025-04-04 17:35:00 +01:00
Geoffrey White
8e7e162ebc Merge branch 'main' into badalloc 2025-04-04 17:09:50 +01:00
Geoffrey White
49c2f97cc8 Merge pull request #19180 from geoffw0/lessnoise
Rust: Reduce CI noise from the SummaryStats query
2025-04-04 16:51:30 +01:00
Tom Hvitved
006cb024de Merge pull request #19217 from hvitved/rust/macro-expansion-inherit-location
Rust: Use macro call location as fall back in macro expansions
2025-04-04 16:25:45 +02:00
Geoffrey White
d47e925e85 Rust: Delete empty .expected files. 2025-04-04 14:43:24 +01:00
Geoffrey White
65974544a3 Merge remote-tracking branch 'upstream/main' into lessnoise 2025-04-04 13:58:29 +01:00
Geoffrey White
64ee6c5c02 Merge branch 'main' into lessnoise 2025-04-04 13:51:31 +01:00
Geoffrey White
e9971ffb94 Rust: Change the ID of the new query. 2025-04-04 13:50:28 +01:00
Tom Hvitved
8b6c8d7174 Rust: Minor path resolution fix for ($)crate paths 2025-04-04 14:44:39 +02:00
Geoffrey White
dc31da82d0 Rust: Fix file name typo. 2025-04-04 13:42:29 +01:00
Joe Farebrother
e08072d77b Fix qhelp formatting 2025-04-04 12:51:46 +01:00
Florin Coada
5c1581d080 Add changelog entries for CodeQL CLI versions 2.20.7 and 2.21.0 2025-04-04 12:37:37 +01:00
Joe Farebrother
de7e611962 Rewrite documentation 2025-04-04 12:36:13 +01:00
Geoffrey White
24a4aad120 Rust: Accept consistency check fixes following merge with main. 2025-04-04 12:11:25 +01:00
Geoffrey White
8b23945417 Merge branch 'main' into deallocation 2025-04-04 12:06:50 +01:00
Tom Hvitved
6f704f088e Merge pull request #19157 from hvitved/rust/path-resolution-prelude
Rust: Take prelude into account when resolving paths
2025-04-04 13:06:31 +02:00
Michael Nebel
8f0b9853f8 Merge pull request #19061 from michaelnebel/csharp/useless-assignment-to-local
C#: Add `cs/useless-assignment-to-local` to the code quality suite.
2025-04-04 13:00:36 +02:00
Joe Farebrother
b5805503fe Cleanups 2025-04-04 11:56:07 +01:00
Tom Hvitved
ffca52e5c0 Merge pull request #19195 from hvitved/rust/post-with-flow-in-exclude
Rust: Add another disjunct to `postWithInFlowExclude`
2025-04-04 12:41:30 +02:00
Tom Hvitved
8e9e772ac8 Merge pull request #19121 from hvitved/ruby/pre-update-unique
Ruby: Make `getPreUpdateNode` Unique Again
2025-04-04 12:40:44 +02:00
Napalys
6bcfd8c91d Updated getAServer with API graphs. 2025-04-04 12:31:29 +02:00
Napalys
c5860e92ec Updated WebSocketReceiveNode to match bind functions. 2025-04-04 12:28:53 +02:00
Napalys
4b7a9cd399 Added test case with bind. 2025-04-04 12:26:58 +02:00
Napalys
49194b0340 Updated WebSocketReceiveNode with API graphs. 2025-04-04 12:26:52 +02:00
Michael Nebel
70a174ad5a C#: Address review comments. 2025-04-04 11:47:46 +02:00
Tom Hvitved
b115f3f5e9 Update rust/ql/lib/codeql/rust/internal/PathResolution.qll
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-04-04 11:39:06 +02:00
Tom Hvitved
5731fa91f3 Rust: Use macro call location as fall back in macro expansions 2025-04-04 11:38:10 +02:00
Joe Farebrother
9fb1c31206 Update tests to inline expectations 2025-04-04 10:13:39 +01:00
Geoffrey White
44b26e5ae6 Rust: Change the test copy of the example as well. 2025-04-04 09:54:41 +01:00
Geoffrey White
f96b00a62a Update rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSizeGood.rs
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-04-04 09:53:13 +01:00
Joe Farebrother
adfe89fadc Update test output 2025-04-04 09:47:21 +01:00
Simon Friis Vindum
77e1b231a6 Rust: Handle associated types in trait methods 2025-04-04 10:24:55 +02:00
Simon Friis Vindum
f9ff92a705 Rust: Expand on type inference tests for associated types 2025-04-04 10:16:09 +02:00
Michael Nebel
dd1fbd28be C#: Add string interpolation examples to cs/useless-assignment-to-local. 2025-04-04 10:08:41 +02:00
Michael Nebel
2b88600f0f C#: Re-factor cs/useless-assignment-to-local tests to use inline test framework. 2025-04-04 10:08:39 +02:00
Michael Nebel
49ecff3292 C#: Add cs/useless-assignment-to-local to the CCR suite. 2025-04-04 10:08:38 +02:00
Michael Nebel
5a4e0cea55 Merge pull request #19199 from michaelnebel/csharp/synctestfiles
C#: Accept file sync mismatch for C# testfiles.
2025-04-04 10:07:05 +02:00
Tom Hvitved
15bfeab652 Ruby: Make getPreUpdateNode Unique Again 2025-04-04 09:43:55 +02:00
Anders Schack-Mulligen
ea8cd6f758 Merge pull request #19160 from aschackmull/ssa/deprecate-definitionext
Ssa: Deprecate the public DefinitionExt and PhiReadNode
2025-04-04 09:23:08 +02:00
Napalys
0dbf951291 Updated ClientSocket and SendNode with API graphs. 2025-04-04 09:14:54 +02:00
Napalys
455ce59583 Added test cases with export of an instance. 2025-04-04 08:59:19 +02:00
Napalys
e16a20e69f Updated SocketClass to use API Graphs. 2025-04-04 08:47:27 +02:00
Napalys
c7fad09664 Added test cases with custom exports/imports. 2025-04-04 08:33:26 +02:00
Napalys
a572ac60d2 Added inline test expectations for WebSocket 2025-04-04 08:22:48 +02:00
Jami Cogswell
fc21abc7e4 Java: update qhelp implementation notes to say 'method declarations' 2025-04-03 16:05:23 -04:00
Anders Schack-Mulligen
ce19972aef SSA: Reinstate consistency check. 2025-04-03 16:16:20 +02:00
Tom Hvitved
f4e9382622 Rust: Take prelude into account when resolving paths 2025-04-03 16:07:26 +02:00
Tom Hvitved
4b3816e14e Rust: Variants inherit visibility from their parent enum 2025-04-03 16:05:12 +02:00
Tom Hvitved
f09c3c5813 Rust: Handle self enum/struct uses 2025-04-03 16:05:11 +02:00
Tom Hvitved
3bfb4fbd8d Rust: More path resolution tests 2025-04-03 16:05:09 +02:00
Asger F
68f6f9f2e8 Merge pull request #19211 from asgerf/js/pp-unit-tests
Support post-procesed inline expectations for query predicates in unit tests
2025-04-03 16:00:18 +02:00
Simon Friis Vindum
a1d36c0501 Rust: Implement support for inference of type aliases 2025-04-03 15:18:15 +02:00
Simon Friis Vindum
e7027f0979 Rust: Add type inference tests for type aliases 2025-04-03 15:13:19 +02:00
Simon Friis Vindum
04d37c3f46 Merge pull request #19198 from paldepind/rust-ti-inline-expectations
Rust: Add inline expectations test for type inference
2025-04-03 14:55:12 +02:00
Simon Friis Vindum
e6c7ad8ee0 Rust: Add comment as suggested in review 2025-04-03 14:34:23 +02:00
Simon Friis Vindum
a53f664e85 Rust: Fix bad join 2025-04-03 14:33:02 +02:00
Anders Schack-Mulligen
5f290ebfca Merge pull request #19156 from aschackmull/misc/stageoverlap
Misc: Add stage overlap script
2025-04-03 13:40:24 +02:00
Asger F
14c5495b4c JS: Use in SensitiveActions test as an example 2025-04-03 13:24:18 +02:00
Asger F
c49ffa01ee JS: Enable post-processed inline expectations for query predicates 2025-04-03 13:24:17 +02:00
Simon Friis Vindum
d5d61dd8b3 Rust: Add inline expectations test for type inference 2025-04-03 12:49:34 +02:00
Simon Friis Vindum
b0c40111e7 Rust: Tweaks to stringification 2025-04-03 12:45:08 +02:00
Owen Mansel-Chan
1ed8fbd811 Delete commented out code 2025-04-03 11:19:14 +01:00
Asger F
6c33013788 JS: Enable association with headers without needing a route handler
Previously it was not possible to associate a ResponseSendArgument with its header definitions if they did not have the same route handler.

But for calls like `new Response(body, { headers })` the headers are fairly obvious whereas the route handler is unnecessarily hard to find. So we use the direct and obvious association between 'body' and 'headers' in the call.
2025-04-03 11:08:10 +02:00
Asger F
db2720ea5b JS: Initial model of Response 2025-04-03 11:08:05 +02:00
Napalys
0e7bff0f81 Added change note. 2025-04-03 10:45:17 +02:00
Napalys
04a39eb735 Removed old mkdirp modeling and replaced it with MaD. 2025-04-03 10:45:16 +02:00
Napalys
3fa24d6026 Add sink model for mkdirp and update tests for path injection alerts. 2025-04-03 10:45:14 +02:00
Napalys
533f1a93e2 JS: Added test cases for mkdirp. 2025-04-03 10:45:12 +02:00
Michael Nebel
79688efacb Merge pull request #19194 from michaelnebel/csharp/enumsimpletype
C#: Extend simple type sanitizers with enums and `System.DateTimeOffset`.
2025-04-03 10:24:26 +02:00
Tamás Vajk
befc2fd7c1 Merge pull request #19145 from tamasvajk/tamasvajk/blazor/parameter-passing-jumpnode-2
C#: Blazor: Support string literals as property names in jump nodes
2025-04-03 10:07:59 +02:00
Anders Schack-Mulligen
6ac4cb71cb SSA: Add change note. 2025-04-03 09:57:48 +02:00
Napalys Klicius
5c42c0ba4c Merge pull request #19196 from Napalys/js/rimraf
JS: Modeling of `rimraf` functions
2025-04-03 09:51:52 +02:00
Anders Schack-Mulligen
34554fd000 SSA: Deprecate the public DefinitionExt. 2025-04-03 09:47:50 +02:00
Anders Schack-Mulligen
e04075b0ec Merge pull request #19177 from aschackmull/swift/ssa-useuse
Swift: Update SSA to reference the new use-use predicates.
2025-04-03 09:46:47 +02:00
Asger F
bb15f30ef6 Merge pull request #19192 from asgerf/js/name-resolution-independent-fixes
JS: Some preliminary fixes from name resolution branch
2025-04-03 09:36:02 +02:00
Tom Hvitved
65a11984bd Ruby: Synthesize implicit super arguments 2025-04-03 09:13:06 +02:00
Tom Hvitved
c10b5801b1 Ruby: Add argument-less super call tests 2025-04-03 09:12:23 +02:00
Simon Friis Vindum
52660fa57d Merge pull request #19149 from paldepind/rust-ti-self-param
Rust: Make trait a base type mention of the self type parameter
2025-04-03 08:44:09 +02:00
Jami Cogswell
0380279c39 Java: update qhelp implementation notes for more clarity 2025-04-02 19:43:33 -04:00
Jami Cogswell
05d7b9a19a Java: add reliability tag 2025-04-02 19:11:26 -04:00
Aditya Sharad
927b26b869 Merge pull request #19190 from adityasharad/actions/initial-docs
Docs: Add GitHub Actions as a supported language
2025-04-03 04:39:23 +05:30
Jami Cogswell
6ade97892f Java: update maintainability tag to reliability instead 2025-04-02 19:06:02 -04:00
Aditya Sharad
4d6afe7d29 Docs: Address comments on Actions docs 2025-04-02 16:00:55 -07:00
Aditya Sharad
8f6dc1cdfc Docs: Fix more short underlines 2025-04-02 15:56:42 -07:00
Aditya Sharad
67dd301a37 Docs: Add language guide structure for Actions 2025-04-02 15:25:27 -07:00
Jonas Jensen
118abd40c9 Java: add exclude-from-incremental tag to telemetry queries
In the future, this tag should signal to the action that the queries
should be excluded from incremental scans because they are too slow
and/or produce too many results.

The three queries tagged here rely on global data-flow analysis to find
all XSS sinks. All other metric and diagnostic queries are fast enough
for incrementality.
2025-04-02 14:19:45 -07:00
Nicolas Will
62fa136506 Merge pull request #19201 from nicolaswill/patch-1
Add @ps-codeql to CODEOWNERS for experimental cryptography
2025-04-02 22:15:03 +02:00
Aditya Sharad
d31896bf52 Merge pull request #19166 from yoff/actions/add-actions-permissions-MaD-model
actions: add MaD model for permissions needed by actions
2025-04-03 01:24:04 +05:30
Aditya Sharad
4207322719 Docs: Make Actions underlines the right length
Fixes warnings in Sphinx build.
2025-04-02 11:39:01 -07:00
Jon Janego
d5130127b1 Merge pull request #19189 from github/jonjanego/useless-expression-tags
Update tags for js/useless-expression
2025-04-02 13:24:56 -05:00
Tom Hvitved
a01b211f79 Merge pull request #19185 from hvitved/rust/ssa-capture-psudeo-read-dominate
Rust: Fix `capturedCallRead`
2025-04-02 19:16:55 +02:00
Jon Janego
e0d9dad9c2 Merge branch 'main' into jonjanego/useless-expression-tags 2025-04-02 10:51:52 -05:00
Jon Janego
d8ef4fc25d Update javascript/ql/src/Expressions/ExprHasNoEffect.ql
Co-authored-by: Napalys Klicius <napalys@github.com>
2025-04-02 10:22:27 -05:00
Idriss Riouak
145c141e63 Merge pull request #19202 from github/idrissrio/trailing-return
C++: update expected test results after extractor changes
2025-04-02 17:01:14 +02:00
Óscar San José
f4515515fe Merge pull request #19204 from github/oscarsj/migrate-builders-macos-15
Run pytest server with `sudo` and higher `nice` value
2025-04-02 16:59:11 +02:00
Chris Smowton
e865d07a70 Merge pull request #19187 from smowton/smowton/feature/jakarta-persistence
Java: generalise `javax.persistence` models to also recognise `jakarta.persistence`.
2025-04-02 15:56:29 +01:00
Óscar San José
18c901bee4 Merge branch 'main' into oscarsj/migrate-builders-macos-15 2025-04-02 16:11:58 +02:00
Michael Nebel
16142a287a C#: Add NoDisposeCallOnLocalIDisposableBad file and update test expected output. 2025-04-02 15:43:52 +02:00
Simon Friis Vindum
001735bfb8 Rust: Take internal IDs of a smaller class 2025-04-02 15:39:58 +02:00
Michael Nebel
2193bece90 C#: Update test expected output. 2025-04-02 15:30:48 +02:00
idrissrio
14a84c3209 C++: update expected test results after extractor changes 2025-04-02 15:20:06 +02:00
Owen Mansel-Chan
ecd09edf64 Add stubs for gogf/gf and uptrace/bun 2025-04-02 14:17:40 +01:00
Owen Mansel-Chan
1687042c3b Add Bun models and tests 2025-04-02 14:17:39 +01:00
Owen Mansel-Chan
ddb7da4c13 Add gogf models and tests 2025-04-02 14:17:37 +01:00
Ed Minnix
9cf4117120 Add tests for gogf/gf/database/gdb 2025-04-02 14:17:35 +01:00
Ed Minnix
db65a6ff85 [gogf] Model github.com/gogf/gf/database/gdb
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com>
2025-04-02 14:17:34 +01:00
Ed Minnix
c54f0d82e2 [bun] Model github.com/uptrace/bun 2025-04-02 14:17:32 +01:00
Owen Mansel-Chan
89e853b4be Don't use non-existent dependency
This makes some go tooling, like `go mod tidy`, not work.
2025-04-02 14:17:31 +01:00
Owen Mansel-Chan
88b061e27e Add change note 2025-04-02 14:17:30 +01:00
Michael Nebel
93d0f364d6 C#: Add ConstantConditionBad file. 2025-04-02 15:00:05 +02:00
Nicolas Will
10564fac4d Add @ps-codeql to CODEOWNERS for experimental cryptography
This pull request adds @github/ps-codeql as a code owner of `**/experimental/quantum/` to support the development of post-quantum cryptography-related libraries and queries.

We’ll be committing stable but experimental work to these directories as it becomes ready for public use, with a near-term goal of moving it out of experimental.

To get started, we’d also need write access to `github/codeql`.

cc @adityasharad @lcartey
2025-04-02 14:20:24 +02:00
Asger F
6c3bc941c5 Merge branch 'main' into js/name-resolution-independent-fixes 2025-04-02 14:15:44 +02:00
Asger F
2c40359143 JS: Change note 2025-04-02 14:12:07 +02:00
Asger F
30a9cd7c8a JS: Include document as a DOM value 2025-04-02 14:09:52 +02:00
Michael Nebel
6820cbabc8 C#: Accept file sync mismatch for C# testfiles if they are identical modulo comments. 2025-04-02 14:01:00 +02:00
Asger F
9ebaac82cf JS: Add tests for Response object sink 2025-04-02 13:47:18 +02:00
Geoffrey White
fbde235253 Rust: Rename the test as well. 2025-04-02 12:16:10 +01:00
Geoffrey White
02245af3ca Rust: Rename the query file. 2025-04-02 12:11:55 +01:00
Geoffrey White
9fc0ee185b Rust: Change the query ID to rust/summary/summary-statistics-reduced. 2025-04-02 12:03:20 +01:00
Taus
f461763938 Merge pull request #19186 from github/tausbn/actions-fix-gettargetpath-performance
Actions: Fix bad performance in `getTargetPath`
2025-04-02 12:53:56 +02:00
Napalys
390d9ffe66 Added change note 2025-04-02 12:50:53 +02:00
Napalys
b16b407f89 Add rimraf model and update tests for path injection vulnerabilities 2025-04-02 12:49:48 +02:00
Napalys
14999c19da Added test cases for rimraf library. 2025-04-02 12:46:48 +02:00
Tom Hvitved
8663f3b8b2 Rust: Add another disjunct to postWithInFlowExclude 2025-04-02 12:32:28 +02:00
Geoffrey White
c737ee9b52 Rust: Accept another consistency check failure. 2025-04-02 10:58:56 +01:00
Michael Nebel
22c943657a C#: Update change note. 2025-04-02 11:21:11 +02:00
Michael Nebel
d7f5ce2492 C#: Update log forging expected test output. 2025-04-02 11:21:07 +02:00
Michael Nebel
cf75493fe9 C#: Consider Enums and System.DateTimeOffset as having a sanitizing effect. 2025-04-02 11:21:05 +02:00
Michael Nebel
08159896f3 C#: Convert cs/log-forging tests to inline expectations. 2025-04-02 11:21:03 +02:00
Michael Nebel
60e3b4351a C#: Fix simple types testcases. 2025-04-02 11:21:01 +02:00
Michael Nebel
024712c073 C#: Temporarily comment out considering Enums as having a sanitizing effect. 2025-04-02 11:20:59 +02:00
Chris Smowton
77e4d9e692 Fix stray references to the javax package name
Co-authored-by: Jami <57204504+jcogs33@users.noreply.github.com>
2025-04-02 10:03:49 +01:00
Joe Farebrother
c37809a187 Reduce scope of allowImplicitRead to avoid cartesian product. 2025-04-02 09:35:50 +01:00
Joe Farebrother
2d6476ad21 Update names and alert message 2025-04-02 09:35:43 +01:00
Joe Farebrother
11830bf661 Move to separate folder 2025-04-02 09:35:39 +01:00
Joe Farebrother
5b7200a041 Use flow path in alerts 2025-04-02 09:35:32 +01:00
Joe Farebrother
08b4281187 Update query message and remove field case 2025-04-02 09:35:25 +01:00
Joe Farebrother
efdb4a6d82 Use global dataflow for loop variable capture 2025-04-02 09:35:17 +01:00
Anders Schack-Mulligen
e6cf737f99 Merge pull request #19178 from aschackmull/csharp/pressa-useuse
C#: Update PreSSA to reference the new use-use predicates.
2025-04-02 10:30:36 +02:00
Anders Schack-Mulligen
47b1c3d3ce Merge pull request #19154 from aschackmull/ssa/variablecapture
Ssa: Replace phi-read references in VariableCapture with default use-use flow
2025-04-02 10:16:17 +02:00
Asger F
78b25388ca JS: Protect against bad join in BadRandomness
This code resulted in bad join orders in response to certain library
changes. The actual library changes have to be split into smaller pieces
but I'd like to ensure I don't run into the bad join again.
2025-04-02 10:14:07 +02:00
Asger F
46f88e7ce7 JS: Updates to DOM model 2025-04-02 10:14:03 +02:00
Asger F
48db2b9315 JS: Add test 2025-04-02 10:12:36 +02:00
Ian Roof
1d81c77fcd C#: Enhanced LogForgingQuery to treat C# Enums as simple types. 2025-04-02 09:40:10 +02:00
yoff
c18529086a actions: add change note 2025-04-02 08:50:05 +02:00
yoff
7bf4a47549 Apply suggestions from code review
Co-authored-by: Aditya Sharad <6874315+adityasharad@users.noreply.github.com>
2025-04-02 08:43:29 +02:00
Michael Nebel
45b55c05ae Merge pull request #19191 from github/workflow/coverage/update
Update CSV framework coverage reports
2025-04-02 08:02:39 +02:00
Aditya Sharad
3b8c4d970f Docs: Remove spurious predicate reference 2025-04-01 19:07:34 -07:00
Aditya Sharad
9db5cdf957 Docs: Add query help page placeholders for Actions 2025-04-01 19:03:59 -07:00
Aditya Sharad
a1ceaa0aa3 Docs: Add initial library docs for Actions
Create the basic structure, state the key importable libraries.
Describe a workflow.
State the extensible predicates available.
Other elements are to be filled in later.
2025-04-01 19:02:49 -07:00
github-actions[bot]
f379f23216 Add changed framework coverage reports 2025-04-02 00:22:37 +00:00
Aditya Sharad
f6442d20db Docs: Add Actions pages for CWE coverage 2025-04-01 17:09:03 -07:00
Aditya Sharad
09de7cfe4d Docs: Add GitHub Actions as a supported language
Include GitHub Actions (identifier `actions`) everywhere we list
supported languages, query packs, and library packs.

Query and library documentation link targets do not exist yet.
2025-04-01 17:01:47 -07:00
Jon Janego
74587f0d64 Update ExprHasNoEffect.ql
adding quality tags per metadata styleguide
2025-04-01 18:47:52 -05:00
Jon Janego
fa02f82ef6 Updating the metadata style guide
Update query-metadata-style-guide.md
2025-04-01 15:50:23 -05:00
Jon Janego
dcdc3b8939 Merge branch 'main' into jonjanego-patch-1 2025-04-01 15:42:51 -05:00
Jon Janego
00bb9056c2 Update query-metadata-style-guide.md 2025-04-01 15:42:36 -05:00
Jami Cogswell
1a2c34dd28 Java: update qhelp implementation notes for clarity 2025-04-01 16:24:13 -04:00
Jami
c4b8396333 fix typo in query description
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com>
2025-04-01 15:52:57 -04:00
Jami Cogswell
e621f9fd49 Java: update comments in tests 2025-04-01 15:48:52 -04:00
Jami Cogswell
faeb7ab890 Java: add blank lines to qldocs 2025-04-01 14:54:46 -04:00
Geoffrey White
1d7dac485e Rust: switch the query to taint flow so that we get taint through conversions (without needing a special case). 2025-04-01 17:57:04 +01:00
Chris Smowton
3c555fce11 Add basic test for SQL injection vs Jakarta Persistence 2025-04-01 17:13:23 +01:00
Chris Smowton
5d37ccfa90 Change note 2025-04-01 16:51:29 +01:00
Chris Smowton
20839745bd Remove redundant import 2025-04-01 16:49:56 +01:00
Asger F
887942e3e9 Merge pull request #19108 from asgerf/js/api-graph-spread-rest
JS: Handle spread/rest in API graphs
2025-04-01 17:48:36 +02:00
Taus
aacdc70a73 Merge pull request #19136 from github/tausbn/python-modernise-mixed-tuple-returns-query
Python: Modernize `py/mixed-tuple-returns`
2025-04-01 17:31:56 +02:00
Chris Smowton
50119ae481 Update docs 2025-04-01 16:20:06 +01:00
Chris Smowton
a5a6fd37df Enable recognising jakarta.persistence in dead-code queries 2025-04-01 16:19:42 +01:00
Alex Eyers-Taylor
0ccbe3ef7f Ruby: Make module graph queries avoid relying on evalaution order. 2025-04-01 16:18:45 +01:00
yoff
80ae8794f5 actions: update test expectations 2025-04-01 17:07:57 +02:00
yoff
d83f35ff64 actions: remove unneded API 2025-04-01 17:07:43 +02:00
Chris Smowton
fb6296a564 Persistence models: recognise jakarta.persistence 2025-04-01 16:07:40 +01:00
yoff
6fd8aba560 actions: simplify using existing UsesStep 2025-04-01 17:07:21 +02:00
yoff
ee1eb199b5 actions: add description of actionsPermissionsDataModel 2025-04-01 17:07:02 +02:00
yoff
bd7c684c6c actions: add test with empty permissions 2025-04-01 17:06:32 +02:00
Taus
8afdf25e9a Actions: Mark helper predicate as noinline. 2025-04-01 14:50:00 +00:00
Asger F
4746cfddf2 JS: Add clarifying comment 2025-04-01 16:26:07 +02:00
Asger F
e1784bb10c JS: Fix handling of spread args on a bound function 2025-04-01 16:20:57 +02:00
Taus
c9fc7882e6 Actions: Fix bad performance in getTargetPath
Seen on `github/codeql`, some queries had very poor performance:
```
 [2/24 eval 36m4s] Evaluation done; writing results to
codeql/actions-queries/Security/CWE-312/ExcessiveSecretsExposure.bqrs
```

Investigating further lead to the following worrying sequence of joins
(after I ran out of patience and cancelled the query):
```
[2025-04-01 12:31:03] Tuple counts for
Yaml::YamlInclude.getTargetPath/0#dispred#32565107#fb#reorder_1_0/2@i6#9f4b2jw1
after 8m40s:
...
    559418    ~33%        {1} r5 = SCAN
`Yaml::YamlNode.getLocation/0#dispred#24555c57#prev_delta` OUTPUT In.1
...
    909345525 ~821%       {3} r7 = JOIN r5 WITH
`Yaml::YamlNode.getLocation/0#dispred#24555c57#prev` CARTESIAN PRODUCT
OUTPUT Rhs.1, Lhs.0 'result', Rhs.0
    909342139 ~779%       {3}    | JOIN WITH
`Locations::Location.getFile/0#dispred#dcf38c8d#prev` ON FIRST 1 OUTPUT
Rhs.1, Lhs.1 'result', Lhs.2
    909338753 ~794%       {3}    | JOIN WITH containerparent_10#join_rhs
ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'result', Lhs.2
    909335367 ~824%       {3}    | JOIN WITH
`FileSystem::Container.getAbsolutePath/0#dispred#d234e6fa` ON FIRST 1
OUTPUT Lhs.2, Lhs.1 'result', Rhs.1
    883246724 ~812%       {3}    | JOIN WITH
`Yaml::YamlNode.getDocument/0#dispred#ee1eb3bf#bf_10#join_rhs` ON FIRST
1 OUTPUT Rhs.1 'this', Lhs.1 'result', Lhs.2
    760047185 ~838%       {5}    | JOIN WITH yaml_scalars ON FIRST 1
OUTPUT Lhs.1 'result', Lhs.0 'this', Rhs.2, _, Lhs.2
    0         ~0%         {4}    | REWRITE WITH Tmp.3 := "/", Out.3 :=
(In.4 ++ Tmp.3 ++ InOut.2), TEST Out.3 = InOut.0 KEEPING 4
                        {4}    | REWRITE WITH NOT [TEST InOut.2
startsWith "/"]
...
```

The culprit turned out to be the following method on class `YamlInclude`
```ql
private string getTargetPath() {
    exists(string path | path = this.getValue() |
    if path.matches("/%")
    then result = path
    else
        result =

this.getDocument().getLocation().getFile().getParentContainer().getAbsolutePath()
+ "/" +
            path
    )
}
```

Basically, in the `else` branch, the evaluator was producing all
possible values of `result` before filtering out the ones where the
`path` component started with a forward slash.

To fix this, I opted to factor out the logic into two helper predicates,
each accounting for whether `this.getValue()` does or does not start
with a `/`. With this, evaluating the original query from a clean cache
takes roughly 3.3s.
2025-04-01 13:59:19 +00:00
Tom Hvitved
ffb25b7aac Merge pull request #19162 from hvitved/rust/to-string-non-rec
Rust: Make `Element.toString` non-recursive
2025-04-01 15:31:18 +02:00
Anders Schack-Mulligen
e1ef56b8bb Swift: Fix accidental cartesian product. 2025-04-01 15:23:16 +02:00
Óscar San José
9b2eff88a6 restore original port 2025-04-01 15:17:52 +02:00
Arthur Baars
0e23b86bf5 Merge pull request #19182 from github/post-release-prep/codeql-cli-2.21.0
Post-release preparation for codeql-cli-2.21.0
2025-04-01 15:12:29 +02:00
Tom Hvitved
dcaeeabad8 Rust: Fix capturedCallRead 2025-04-01 15:11:20 +02:00
Tom Hvitved
9dea9f5046 SSA: Make phiWithoutTwoPriorRefs consistency check more informative 2025-04-01 15:07:46 +02:00
Tom Hvitved
01810cbac9 Rust: Update PhiDefinition.toString 2025-04-01 14:59:05 +02:00
Marco Gario
2419ccf511 Merge pull request #19183 from github/marcogario-patch-1
Update UntrustedCheckoutCritical.ql
2025-04-01 14:43:37 +02:00
Simon Friis Vindum
8acf9ceef4 Rust: Make trait a base type mention of the self type parameter 2025-04-01 14:04:46 +02:00
Marco Gario
d33ce423d8 Update UntrustedCheckoutCritical.ql 2025-04-01 13:58:37 +02:00
Arthur Baars
68690b4615 Merge pull request #19181 from github/aibaars/rust-delete-cargo-lock
Rust: QLTest: delete Cargo.lock files
2025-04-01 13:57:19 +02:00
yoff
3cdd641b81 actions: fix typo 2025-04-01 13:43:00 +02:00
Michael Nebel
f4105ee4af Merge pull request #19089 from michaelnebel/csharp/improvestringinterpolation
C#: Extract string interpolation alignment and format.
2025-04-01 13:40:15 +02:00
github-actions[bot]
10205cb990 Post-release preparation for codeql-cli-2.21.0 2025-04-01 11:30:43 +00:00
Joe Farebrother
0339601ada Merge pull request #19179 from joefarebrother/python-ccr
Python: Add file-not-closed and special-method-wrong-signature to python code-quality suite
2025-04-01 12:26:35 +01:00
yoff
1ec3e8712b Apply suggestions from code review
Co-authored-by: Aditya Sharad <6874315+adityasharad@users.noreply.github.com>
2025-04-01 13:18:30 +02:00
Arthur Baars
626c752a0b Merge pull request #19172 from github/release-prep/2.21.0
Release preparation for version 2.21.0
2025-04-01 12:49:25 +02:00
Óscar San José
81a39f380a Change niceness of test server 2025-04-01 12:48:00 +02:00
Arthur Baars
1d49252c03 Rust: QLTest: delete Cargo.lock files 2025-04-01 12:38:57 +02:00
Paolo Tranquilli
01d4c0ff56 Merge pull request #19167 from github/redsun82/rust-upgrades-downgrades
Rust: introduce upgrades/downgrades infrastructure
2025-04-01 12:01:30 +02:00
Paolo Tranquilli
7821fbf576 Merge branch 'main' into redsun82/rust-upgrades-downgrades 2025-04-01 11:38:34 +02:00
Marco Gario
c8299253f1 Merge pull request #19126 from github/marcogario-patch-1
Update UseOfKnownVulnerableAction.ql
2025-04-01 11:36:25 +02:00
Tom Hvitved
f54d8325ae Merge pull request #19133 from hvitved/rust/more-path-resolution
Rust: More path resolution improvements
2025-04-01 11:25:16 +02:00
Anders Schack-Mulligen
7afcd1bbec Swift: Update test output. 2025-04-01 11:07:17 +02:00
Joe Farebrother
73eebcbca6 Python: Add file-not-closed and special-method-wrong-signature to python code-quality suite 2025-04-01 10:05:17 +01:00
Marco Gario
c0d7288696 Merge branch 'main' into marcogario-patch-1 2025-04-01 10:59:03 +02:00
Geoffrey White
86840a78c2 Rust: Update .expected files. 2025-04-01 09:56:56 +01:00
Geoffrey White
cc90ba5836 Rust: Create a less noisy version of the summary stats query, for use in tests. 2025-04-01 09:56:47 +01:00
Geoffrey White
32e2c1912c Rust: Move all summary stats logic into Stats.qll. 2025-04-01 09:56:39 +01:00
Marco Gario
3652d6f258 Merge pull request #19127 from github/marcogario/untrusted_checkout_name
UntrustedCheckout: Try and differentiate between two versions of the query
2025-04-01 10:56:36 +02:00
Idriss Riouak
1ebce01c95 Merge pull request #19159 from github/idrissrio/calling-conventions
C++: Add class representing calling conventions
2025-04-01 10:31:16 +02:00
Tamas Vajk
a570a728bd Fix code quality 2025-04-01 10:29:55 +02:00
Tamás Vajk
398f041464 Update csharp/ql/lib/semmle/code/csharp/frameworks/microsoft/aspnetcore/Components.qll
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2025-04-01 10:18:09 +02:00
Michael Nebel
8bf2ceb942 Merge pull request #19125 from michaelnebel/csharp/updatedotnet9models
C#: Update generated .NET 9 Runtime models.
2025-04-01 10:09:58 +02:00
Anders Schack-Mulligen
887452d202 Swift: Update SSA to reference the new use-use predicates. 2025-04-01 10:05:02 +02:00
Anders Schack-Mulligen
dbd99df85b C#: Update PreSSA to reference the new use-use predicates. 2025-04-01 10:03:20 +02:00
idrissrio
d61d9730c8 C++: add change note for calling conventions 2025-04-01 09:53:36 +02:00
Tom Hvitved
56f4694b38 Swift: Avoid calling Element.toString recursively 2025-04-01 08:48:16 +02:00
Tom Hvitved
c14a2375c3 Swift: Run codegen 2025-04-01 08:48:15 +02:00
Tom Hvitved
4fb138a1a3 Rust: Make Element.toString non-recursive 2025-04-01 08:48:13 +02:00
Anders Schack-Mulligen
efb5ed1030 Merge pull request #19155 from aschackmull/cpp/iterator-ssa
C++: Refactor Iterator SSA flow to use the data flow integration module.
2025-04-01 08:44:10 +02:00
Michael Nebel
3017d42c95 Merge pull request #19173 from github/workflow/coverage/update
Update CSV framework coverage reports
2025-04-01 08:33:35 +02:00
Michael Nebel
de6e3eafb9 C#: Add change note. 2025-04-01 08:32:52 +02:00
Michael Nebel
2f16e3a0c0 C#: Update flowsummaries test expected output. 2025-04-01 08:32:43 +02:00
Michael Nebel
2487f7734b C#: Update the generated .NET 9 models. 2025-04-01 08:24:09 +02:00
Michael Nebel
ba26953f0b C#: Update generated .NET 9 models. 2025-04-01 08:24:07 +02:00
Jami Cogswell
416643ce39 Java: update qhelp recommendation and example 2025-03-31 21:09:21 -04:00
github-actions[bot]
1186699269 Add changed framework coverage reports 2025-04-01 00:25:24 +00:00
Andrew Eisenberg
70150eea9a Merge branch 'main' into marcogario/untrusted_checkout_name 2025-03-31 13:54:17 -07:00
Marco Gario
820dacd151 Merge branch 'main' into marcogario-patch-1 2025-03-31 20:42:12 +02:00
Marco Gario
8737acb6a9 Update actions/ql/src/Security/CWE-829/UntrustedCheckoutCritical.ql
Co-authored-by: Andrew Eisenberg <aeisenberg@github.com>
2025-03-31 20:42:03 +02:00
Geoffrey White
ff2a1ca961 Rust: Group the data in rust/summary/summary-statistics. 2025-03-31 19:28:00 +01:00
github-actions[bot]
84f6564cc0 Release preparation for version 2.21.0 2025-03-31 17:35:15 +00:00
Arthur Baars
c89c403e0e Merge pull request #19169 from github/aibaars/fix-changenote-file
Javascript, add missing `*` to changenote
2025-03-31 19:27:18 +02:00
Geoffrey White
fb22d55878 Rust: Remove duplicate models. 2025-03-31 18:26:26 +01:00
Geoffrey White
6a5a1001bb Rust: Refine the barrier guard. 2025-03-31 18:26:21 +01:00
Geoffrey White
f7d3a51f27 Rust: Implement barrier guard. 2025-03-31 17:53:17 +01:00
Geoffrey White
cdd5cb0523 Rust: More test cases for bounds / guards. 2025-03-31 17:53:14 +01:00
Geoffrey White
addc1d34d8 Rust: Add qhelp, examples, and tests of examples. 2025-03-31 17:53:10 +01:00
Arthur Baars
cd9ccef8b2 Javascript, add missing * to changenote 2025-03-31 18:45:01 +02:00
Geoffrey White
64aa4e8bae Rust: Ensure that the sinks for this query appear in metrics. 2025-03-31 17:39:24 +01:00
Geoffrey White
e49c1afe72 Rust: Add a few missing models. 2025-03-31 17:39:19 +01:00
Geoffrey White
03f94de3cb Rust: Add models. 2025-03-31 17:39:15 +01:00
Geoffrey White
9409cd6ed7 Rust: Prototype query. 2025-03-31 17:39:11 +01:00
Geoffrey White
ae555f2f2e Rust: Add a test for uncontrolled allocation size. 2025-03-31 17:37:21 +01:00
Arthur Baars
ec53b189b6 Merge pull request #19168 from github/aibaars/fix-changenote-file
Actions: rename changenote file
2025-03-31 18:28:52 +02:00
Arthur Baars
bcd038c291 Actions: rename changenote file 2025-03-31 18:14:44 +02:00
idrissrio
9ec7f3c9a5 C++: add test for calling conventions 2025-03-31 17:45:44 +02:00
idrissrio
f83f14bab2 C++: add calling convention specifier class 2025-03-31 17:44:56 +02:00
Paolo Tranquilli
f5d6fd081d Rust: introduce upgrades/downgrades infrastructure 2025-03-31 16:49:45 +02:00
yoff
e7bb47f335 ruby: add MaD model for permissions needed by actions
Use this to suggest minimal set of nedded permissions
2025-03-31 16:48:37 +02:00
Arthur Baars
92cfb6ea15 Merge pull request #19161 from github/aibaars/merge-3.17
Merge rc/3.17 into main
2025-03-31 16:09:44 +02:00
Asger F
149ec20758 JS: Add comment about internal edge 2025-03-31 15:39:09 +02:00
Asger F
f64bdccd6d Update javascript/ql/lib/semmle/javascript/ApiGraphs.qll
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com>
2025-03-31 15:30:59 +02:00
Chris Smowton
aaaa7f4582 Merge pull request #19135 from smowton/smowton/admin/test-gradle-bom-downloads
Java: add test exercising Gradle download pruning
2025-03-31 14:13:30 +01:00
Chris Smowton
d8f7f182a9 Change note 2025-03-31 13:36:23 +01:00
Chris Smowton
bc7bed42bd Java: add test exercising Gradle download pruning 2025-03-31 13:36:22 +01:00
Arthur Baars
e80441051f Merge remote-tracking branch 'upstream/rc/3.17' into 'main' 2025-03-31 14:16:02 +02:00
Paolo Tranquilli
279e9e2d70 Merge pull request #19137 from github/redsun82/rust-renames
Rust: rename several entities to their more natural names
2025-03-31 14:03:34 +02:00
Michael Nebel
8e1282bfde C#: Improve downgrade script. 2025-03-31 13:53:51 +02:00
Anders Schack-Mulligen
01275aa073 Merge pull request #19158 from aschackmull/misc/accept-expected-swift
Misc: Add another path prefix to accept-expected-changes-from-ci.py
2025-03-31 13:28:00 +02:00
Paolo Tranquilli
87dc4cd101 Rust: accept test changes 2025-03-31 13:19:23 +02:00
Michael Nebel
e30fed6eec C#: Improve upgrade script. 2025-03-31 13:17:10 +02:00
Chris Smowton
31ccd658d2 Merge pull request #19152 from smowton/smowton/admin/test-mirrorof-rewriting
Java buildless: add buildless-maven variant with a wildcard mirrorOf spec
2025-03-31 12:14:08 +01:00
Paolo Tranquilli
80707678b6 Rust: accept test changes 2025-03-31 13:11:46 +02:00
Paolo Tranquilli
ece2f03f0f Rust: fix QL compilation errors after renames 2025-03-31 13:11:46 +02:00
Paolo Tranquilli
394f3eb1be Rust: fix ast generator handling renamed enum variants 2025-03-31 13:11:46 +02:00
Paolo Tranquilli
32f6acb985 Rust: fix compilation errors after rename 2025-03-31 13:11:45 +02:00
Paolo Tranquilli
1c89b5185a Rust: rename RecordFieldList to StructFieldList 2025-03-31 13:11:45 +02:00
Paolo Tranquilli
0b1f89a02e Rust: add ast-generator to pre-commit trigger of rust codegen 2025-03-31 13:11:45 +02:00
Paolo Tranquilli
0257b960dc Rust: make property_name work on post-processed class names 2025-03-31 13:11:44 +02:00
Paolo Tranquilli
24f547074f Rust: fix extractor compilation errors after renames 2025-03-31 13:11:44 +02:00
Paolo Tranquilli
b664504534 Rust: remove obsolete expected files 2025-03-31 13:11:41 +02:00
Paolo Tranquilli
8bfc1c424e Rust: rename several entities using more accepted names 2025-03-31 13:07:43 +02:00
Paolo Tranquilli
1eb51c7a2f Merge pull request #19063 from github/redsun82/codegen-rename-dbscheme
Codegen: add `ql.db_table_name` property pragma
2025-03-31 12:01:35 +02:00
Anders Schack-Mulligen
dad2be0286 Misc: Add another path prefix to accept-expected-changes-from-ci.py 2025-03-31 11:58:56 +02:00
Anders Schack-Mulligen
56c46d74f9 Java/Rust/Swift: Accept qltest changes. 2025-03-31 11:44:37 +02:00
Anders Schack-Mulligen
9a8ab2d45b Update misc/scripts/stageoverlap.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-03-31 11:28:29 +02:00
Anders Schack-Mulligen
8a67e4fddc Misc: Add stage overlap script 2025-03-31 11:20:40 +02:00
Anders Schack-Mulligen
a6a694dec6 C++: Use DataFlowIntegration in IteratorFlow. 2025-03-31 10:49:43 +02:00
Anders Schack-Mulligen
aaa7e4cf95 C++: Def is only used in defToNode, which doesn't include phi reads nodes. 2025-03-31 10:49:43 +02:00
Anders Schack-Mulligen
133f08784f C++: Eliminate dead code, uncertain is always false. 2025-03-31 10:49:42 +02:00
Anders Schack-Mulligen
b4daba30a5 SSA: Remove dead code. 2025-03-31 10:49:10 +02:00
Anders Schack-Mulligen
70e53c2f8b SSA: Push includeWriteDefsInFlowStep constraint into newtype. 2025-03-31 10:49:10 +02:00
Anders Schack-Mulligen
ca6444ce98 VariableCapture: Replace phi-read reference with SSA data flow integration module. 2025-03-31 10:49:09 +02:00
Anders Schack-Mulligen
e8e9403b4c Merge pull request #19093 from aschackmull/java/caching
Java: Adjust caching of BasicBlocks, BaseSSA, and CompileTimeConstants
2025-03-31 10:48:12 +02:00
Napalys Klicius
4572376e9a Merge pull request #19143 from Napalys/js/fs-extra-missing
JS: Modeling of `fs-extra` functions
2025-03-31 10:35:45 +02:00
Napalys Klicius
de8a3289e2 Merge pull request #19118 from Napalys/js/hana_db_client
JS: support `hana` db client
2025-03-31 10:35:11 +02:00
Asger F
ee867e99c7 Merge pull request #19117 from lcartey/lcartey/support-sap-json-formats
JavaScript: Add support for indexing additional SAP related JSON files
2025-03-31 10:30:11 +02:00
Anders Schack-Mulligen
a8b19d2b21 Merge pull request #19147 from aschackmull/ssa/writedef-source-refactor
Ssa: Refactor data flow integration to make the input signature simpler
2025-03-31 10:07:09 +02:00
Michael Nebel
1c93e53fb7 Merge pull request #19142 from microsoft/csharp-update-MaD-Uri-upstream
csharp update MaD for System.Uri
2025-03-31 08:32:52 +02:00
Tom Hvitved
4dfe759d23 Merge pull request #19113 from github/aibaars/crate-graph-reexport
Rust: crate_graph: generate 'use' statements for re-exported items
2025-03-30 20:16:22 +02:00
Napalys
32d6ac8da7 Add test case to ensure exec calls without middleware injection into Express are not flagged. 2025-03-30 14:09:15 +02:00
Chris Smowton
d374b24d6f Java buildless: add buildless-maven variant with a wildcard mirrorOf spec
This should get rewritten to exclude the buildless repository.
2025-03-28 21:26:28 +00:00
Arthur Baars
ec9fe8079e Rust: add tests for re-export statements 2025-03-28 17:12:43 +01:00
Arthur Baars
d84baaa0f8 Rust: implement Use::toString 2025-03-28 17:12:42 +01:00
Arthur Baars
c135af2300 Rust: crate_graph: generate 'use' statements for re-exported items 2025-03-28 17:12:32 +01:00
Taus
840abbf5b1 Merge pull request #18956 from github/tausbn/python-more-special-method-query-refactoring
Python: Modernize special method query
2025-03-28 17:11:24 +01:00
Geoffrey White
4a76b5b3db Rust: Accept consistency check failures. 2025-03-28 15:40:18 +00:00
Paolo Tranquilli
4ff06e49a8 Merge branch 'main' into redsun82/codegen-rename-dbscheme 2025-03-28 16:17:25 +01:00
Taus
6674288fd2 Python: Update test cases
Adds a comment explaining why we no longer flag the indirect tuple
example.
Also adds a test case which _would_ be flagged if not for the type
annotation.
2025-03-28 15:12:39 +00:00
Tamas Vajk
32448c14bd Adjust expected test file 2025-03-28 16:04:39 +01:00
Tamas Vajk
72fb6ed078 Restrict name based property lookup to opened component types 2025-03-28 16:04:39 +01:00
Edward Minnix III
d601c26355 [change-note] Blazor parameter passing string literal 2025-03-28 16:04:38 +01:00
Edward Minnix III
3d0a85b3cd Add test case using string literal in property name 2025-03-28 16:04:37 +01:00
Edward Minnix III
52b889f008 Support when a property is specified by a string literal instead of a nameof expression
In earlier versions of the Razor generator, a string literal was used
instead of a `nameof` expression in order to indicate the name of the
property being modified. This means we need to look up the property by
name instead of using a more explicit access.
2025-03-28 16:04:36 +01:00
Tamás Vajk
342d4a6982 Merge pull request #19122 from tamasvajk/tamasvajk/blazor/parameter-passing-jumpnode
C#: Blazor: Add non-local jump node for parameter passing
2025-03-28 16:03:54 +01:00
Joe Farebrother
43567664bf Merge pull request #18845 from joefarebrother/python-qual-file-not-closed
Python: Modernize File Not Always Closed query
2025-03-28 14:47:38 +00:00
Tom Hvitved
605cf35970 Rust: More path resolution improvements 2025-03-28 15:32:20 +01:00
Paolo Tranquilli
01a69bffbe Merge branch 'main' into redsun82/codegen-rename-dbscheme 2025-03-28 15:06:08 +01:00
Paolo Tranquilli
96f7dc7eb4 Merge pull request #19083 from github/redsun82/rust-analyzer-update
Rust: update rust-analyzer from `0.0.266` to `0.0.270`
2025-03-28 15:04:09 +01:00
Napalys
45c8ec96df Added test cases for hana db additional sources. 2025-03-28 15:02:03 +01:00
Napalys
d0e2aa8192 Added sources from hana db as MaD. 2025-03-28 14:55:17 +01:00
Michael Nebel
00753a1fe4 C#: Address review comments. 2025-03-28 14:41:59 +01:00
Napalys
f3af23e855 Refactored hana's DB client to use GuardedRouteHandler, improving precision. 2025-03-28 13:58:37 +01:00
Simon Friis Vindum
884c828452 Merge pull request #19102 from paldepind/rust-ti-refactor
Shared, type inference: Add inference for type parameters with constraints (base type mentions)
2025-03-28 13:58:16 +01:00
Geoffrey White
ed14b37964 Merge branch 'main' into deallocation 2025-03-28 12:44:46 +00:00
Simon Friis Vindum
989c14485d Rust: Minor doc tweaks based on PR comments 2025-03-28 13:39:42 +01:00
Paolo Tranquilli
76b1349068 Merge branch 'main' into redsun82/rust-analyzer-update 2025-03-28 13:36:48 +01:00
Anders Schack-Mulligen
0d1ac7789b SSA/Ruby: Address review comments. 2025-03-28 13:27:56 +01:00
Napalys Klicius
f7264d82d4 Merge branch 'main' into js/hana_db_client 2025-03-28 13:21:15 +01:00
Napalys
75b4d1b771 Applied copilot suggestions. 2025-03-28 13:19:11 +01:00
Napalys
769fe75d82 Added change note. 2025-03-28 13:07:24 +01:00
Napalys
495af56ab5 Added NodeJSFileSystemVectorWrite class for vectored write. 2025-03-28 13:07:23 +01:00
Napalys
e0c6cbb1b7 Added test cases for writev and writevSync. 2025-03-28 13:07:21 +01:00
Napalys
e63e170ac2 Added support for readv and readvSync functions in NodeJSFileSystemAccessRead class . 2025-03-28 13:07:20 +01:00
Napalys
6e7214747c Added test cases for readv and readvSync 2025-03-28 13:07:14 +01:00
Simon Friis Vindum
623bc232bf Rust: Address PR comments 2025-03-28 13:04:55 +01:00
Jeroen Ketema
86ecef6481 Merge pull request #19144 from jketema/dollar-escape
C++: Escape any `$` - specifically in `$@` - coming from error messages
2025-03-28 12:40:08 +01:00
Geoffrey White
ce7a0fd094 Rust: Test for sinks inside sources. 2025-03-28 11:12:10 +00:00
Anders Schack-Mulligen
5a986f5327 SSA: Remove empty predicates and dead code. 2025-03-28 12:00:38 +01:00
Anders Schack-Mulligen
308d15401f C++: Add ssaDefHasSource. 2025-03-28 11:57:30 +01:00
Anders Schack-Mulligen
6e9ebca977 C#: Switch from ssaDefAssigns/ssaDefInitializesParam to ssaDefHasSource. 2025-03-28 11:57:29 +01:00
Anders Schack-Mulligen
d8e14a6b55 JS: Add ssaDefHasSource. 2025-03-28 11:57:29 +01:00
Anders Schack-Mulligen
25297cb2b6 Ruby: Switch from ssaDefAssigns/ssaDefInitializesParam to WriteDefSourceNode. 2025-03-28 11:57:28 +01:00
Anders Schack-Mulligen
8aedd63b9e Rust: Add ssaDefHasSource. 2025-03-28 11:57:28 +01:00
Anders Schack-Mulligen
dafed9f465 Rust: Remove dead code. 2025-03-28 11:57:27 +01:00
Anders Schack-Mulligen
4c420c5bae Java: Switch from ssaDefAssigns/ssaDefInitializesParam to ssaDefHasSource. 2025-03-28 11:57:27 +01:00
Anders Schack-Mulligen
1ded4df3fd SSA: Add an alternative to ssaDefAssigns/ssaDefInitializesParam. 2025-03-28 11:57:26 +01:00
Anders Schack-Mulligen
0c74f21107 Merge pull request #19044 from aschackmull/ssa/useuse-trim
Ssa: Trim the use-use relation to skip irrelevant nodes
2025-03-28 11:55:34 +01:00
Tom Hvitved
f2f5739cc7 Merge pull request #19123 from hvitved/rust/path-resolution-crate-non-source
Rust: Also resolve `crate` paths in non-source files
2025-03-28 11:45:36 +01:00
Idriss Riouak
2a78211dde Merge pull request #19087 from github/idrissrio/preprocessor-multiline
C++: Add QL Tests for Multiline Directive Support
2025-03-28 11:02:19 +01:00
Jeroen Ketema
8dbd81b296 C++: Add test for $` escaping 2025-03-28 10:57:23 +01:00
Anders Schack-Mulligen
c6cee489e4 SSA: Address review comments. 2025-03-28 10:53:03 +01:00
Jeroen Ketema
5727c9137f C++: Escape any $ - specifically in $@ - coming from error messages 2025-03-28 10:51:11 +01:00
Asger F
7904db0f9a Merge pull request #19132 from asgerf/js/guarded-route-handler-token
JS: Add GuardedRouteHandler access path component
2025-03-28 10:47:10 +01:00
Arthur Baars
eceeab1c19 Merge pull request #19139 from github/aibaars/rust-clear-text-logging
Rust: fix CleartextLogging query
2025-03-28 10:23:25 +01:00
Asger F
951b48adfe Revert "JS: Add bogus model for testing"
This reverts commit 2460874f47.
2025-03-28 09:24:49 +01:00
Tom Hvitved
1a75c0506f Merge pull request #19128 from hvitved/csharp/pre-update-unique
C#: Make `getPreUpdateNode` Unique Again
2025-03-28 09:19:27 +01:00
Asger F
b834ffe246 JS: Fix a bad join order 2025-03-28 09:14:40 +01:00
Asger F
1ad471cb32 JS: Track through spread/rest params in API graphs 2025-03-28 09:14:36 +01:00
Asger F
ff99d5c688 JS: Add test for API graph through spread args 2025-03-28 09:13:06 +01:00
Napalys
e1bf054056 Added support for lutimes, opendir, and statfs functions from fs-extra. 2025-03-28 08:37:30 +01:00
Napalys
55c74b2bac Added support for emptydir functions from fs-extra. 2025-03-28 08:37:28 +01:00
Napalys
e386448f60 Added support for missing rm functions from fs-extra 2025-03-28 08:37:22 +01:00
Napalys
7a08f32e16 Added support for cp functions from fs-extra. 2025-03-28 08:36:26 +01:00
Owen Mansel-Chan
f209f53369 Merge pull request #19141 from github/workflow/coverage/update
Update CSV framework coverage reports
2025-03-28 07:26:57 +00:00
Napalys
96a550582b Added test cases for fs-extra missing features. 2025-03-28 08:26:31 +01:00
Lindsay Simpkins
cc76cdb795 rename change note file 2025-03-28 00:27:34 -04:00
Lindsay Simpkins
209f2f0713 csharp update MaD for System.Uri 2025-03-27 23:41:55 -04:00
Jami
e458aca806 Merge branch 'main' into jcogs33/java/junit5-missing-nested-annotation 2025-03-27 21:31:09 -04:00
Jami Cogswell
92cdddf604 Java: resolve filename conflict 2025-03-27 21:29:20 -04:00
github-actions[bot]
ed3dc56ea0 Add changed framework coverage reports 2025-03-28 00:22:03 +00:00
Jami Cogswell
caf21a8202 Java: update qhelp and add 'performace' tag 2025-03-27 20:20:48 -04:00
Jami Cogswell
3631df03c7 Java: add to code-quality suite 2025-03-27 19:38:10 -04:00
Jami Cogswell
ed22a16f32 Java: exclude overloads of finalize 2025-03-27 19:35:46 -04:00
Jami Cogswell
f73eda0c38 Java: add previous-id and change 'use' to 'call' 2025-03-27 19:35:44 -04:00
Jami Cogswell
2e25498143 Java: add change note 2025-03-27 19:35:42 -04:00
Jami Cogswell
44445dbeb8 Java: minor refactor 2025-03-27 19:35:41 -04:00
Jami Cogswell
dd57d1aec6 Java: add quality tag 2025-03-27 19:35:39 -04:00
Jami Cogswell
c689a0e9b7 Java: add more test cases 2025-03-27 19:35:37 -04:00
Jami Cogswell
d9482ae334 Java: update tests to use inline expectations 2025-03-27 19:35:35 -04:00
Jami Cogswell
9a6e241f54 Java: update to only find 'finalize' calls and add 'super.finalize' exclusion 2025-03-27 19:35:34 -04:00
Jami Cogswell
56ea9b6523 Java: move original files 2025-03-27 19:35:32 -04:00
Taus
68668b8e22 Python: Fix grammar in change note 2025-03-27 23:23:29 +01:00
Asger F
2460874f47 JS: Add bogus model for testing 2025-03-27 20:13:27 +01:00
Arthur Baars
7fc7b7cc04 Rust: fix CleartextLogging query 2025-03-27 18:38:57 +00:00
Arthur Baars
6dff6826f0 Revert "Rust: accept test changes for now"
This reverts commit bf32acc198.
2025-03-27 18:33:00 +00:00
Owen Mansel-Chan
dc242da4be Merge pull request #19090 from owen-mc/review/egregius313/18902
Go: Add `database` source models for the `squirrel` package (#2)
2025-03-27 15:54:25 +00:00
Joe Farebrother
2fd9b16736 Attempt performance improvement for fileLocalFlow 2025-03-27 15:45:38 +00:00
Napalys Klicius
32369dab7d Merge pull request #19124 from Napalys/js/hapi_upgrade
JS: Support for newer version of `Hapi` - `@hapi/hapi`
2025-03-27 16:42:51 +01:00
Taus
980c7d83da Python: Add change note 2025-03-27 15:33:00 +00:00
Taus
f601f4ad9b Python: Update test expectations
As we're no longer tracking tuples across function boundaries, we lose
the result that related to this setup (which, as the preceding commit
explains, lead to a lot of false positives).
2025-03-27 15:31:28 +00:00
Taus
2dcd7895ec Python: Modernise py/mixed-tuple-returns
Removes the dependence on points-to in favour of an approach based on
(local) data-flow.

I first tried a version that used type tracking, as this more accurately
mimics the behaviour of the old query. However, I soon discovered that
there were _many_ false positives in this setup. The main bad pattern I
saw was a helper function somewhere deep inside the code that both
receives and returns an argument that can be tuples with different sizes
and origins. In this case, global flow produces something akin to a
cartesian product of "n-tuples that flow into the function" and
"m-tuples that flow into the function" where m < n.

To combat this, I decided to instead focus on only flow _within_ a given
function (and so local data-flow was sufficient).

Additionally, another class of false positives I saw was cases where the
return type actually witnessed that the function in question could
return tuples of varying sizes. In this case it seems reasonable to not
flag these instances, since they are already (presumably) being checked
by a type checker.

More generally, if you've annotated the return type of the function with
anything (not just `Tuple[...]`), then there's probably little need to
flag it.
2025-03-27 15:27:42 +00:00
Tamas Vajk
42278eb6cf Add imports for specific jump nodes 2025-03-27 16:07:09 +01:00
Tom Hvitved
f6ac82aff0 Rust: Add more path resolution tests 2025-03-27 15:54:57 +01:00
Paolo Tranquilli
cf63dae608 Merge branch 'main' into redsun82/codegen-rename-dbscheme 2025-03-27 15:12:16 +01:00
Owen Mansel-Chan
8bc70be3c7 Address review comments 2025-03-27 13:53:09 +00:00
Asger F
e52bea630a JS: Add caveat about precision issue 2025-03-27 14:27:00 +01:00
Simon Friis Vindum
e2ed848dbb Merge pull request #19130 from paldepind/rust-type-alias-string
Rust: Implement toString on type aliases and add docs
2025-03-27 14:22:46 +01:00
Asger F
ed50343cc2 Merge pull request #19077 from asgerf/js/jsdoc-name-tokens
JS: Separate JSDoc qualified names into individual identifiers
2025-03-27 14:22:11 +01:00
Asger F
7de6a1e1c5 JS: Add documentation and example 2025-03-27 14:21:06 +01:00
Asger F
13d2453a45 JS: Add GuardedRouteHandler access path component 2025-03-27 13:59:41 +01:00
Geoffrey White
9ae271a7d1 Rust: Fix incidentally affected test merge conflict. 2025-03-27 12:55:36 +00:00
Geoffrey White
4e496fe7b2 Rust: Lets just not model 'drop' incorrectly, for now. 2025-03-27 12:25:08 +00:00
Napalys Klicius
e69929ebc6 Update javascript/ql/lib/change-notes/2025-03-26-hana-db-client.md
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com>
2025-03-27 13:01:09 +01:00
Simon Friis Vindum
533fdcf332 Rust: Remove unnecessary seperator 2025-03-27 12:56:54 +01:00
Napalys Klicius
fdea22fbc3 Merge pull request #19129 from Napalys/js/readfile_async
JS: Add support for `async` `readFile`
2025-03-27 12:34:39 +01:00
Napalys Klicius
261d28a591 Merge pull request #19099 from Napalys/js/axios_missing_methods
JS: Added support for missing `axios` methods
2025-03-27 12:03:11 +01:00
Asger F
441ca1c862 JS: Change compatibility of upgrade script to partial 2025-03-27 11:54:01 +01:00
Asger F
86ae8012be Expand downgrade script 2025-03-27 11:52:11 +01:00
Asger F
cccea919b4 JS: Update stats file 2025-03-27 11:52:10 +01:00
Asger F
ab1f929228 JS: Add downgrade script 2025-03-27 11:52:08 +01:00
Asger F
02ee8cfe2d JS: Add upgrade script 2025-03-27 11:51:27 +01:00
Asger F
da269c6fb1 JS: More test updates 2025-03-27 11:51:25 +01:00
Asger F
50202d574f JS: Update some deprecated calls to getName() 2025-03-27 11:51:24 +01:00
Asger F
c8817d9667 JS: Parse with proper locations 2025-03-27 11:51:23 +01:00
Asger F
cc2bec0808 JS: Ensure correct value is used in parseNameExpression()
The call to expect() below here updates 'token' and 'value' to that of the NEXT token (not the name).

The code happened to work because the 'value' field is only updated if a token with a relevant value is found. E.g. if a name token could be followed by another name, then we would have seen the wrong name here.
2025-03-27 11:51:21 +01:00
Asger F
6868f66108 JS: Restrict size of hasNameParts
Test updates look OK. Some intermediate results are omitted but the
qualified name of the final type names are still present.
2025-03-27 11:51:20 +01:00
Asger F
b1554443d8 JS: Update TRAP output 2025-03-27 11:51:19 +01:00
Asger F
328bf753b4 JS: Benign test updates 2025-03-27 11:51:17 +01:00
Asger F
fa53ff9f3e JS: Update extractor version string 2025-03-27 11:51:16 +01:00
Asger F
3a6089740e JS: Separate JSDoc qualified names into individual identifiers 2025-03-27 11:51:14 +01:00
Asger F
c61454b5ca JS: Remove unused 'spec' field 2025-03-27 11:51:13 +01:00
Simon Friis Vindum
0d75054955 Rust: Implement toString on type aliases and add docs 2025-03-27 11:34:39 +01:00
Michael B. Gale
2aee47b257 Merge pull request #18850 from github/mbg/csharp/inject-proxy-urls
C#: Automatically use configured private registry feeds
2025-03-27 10:11:05 +00:00
Geoffrey White
8598d619f2 Rust: Add a test case involving a Drop method. 2025-03-27 09:39:25 +00:00
Arthur Baars
9dd7b20db7 Merge pull request #18960 from github/aibaars/rust-tainted-path
Rust: TaintedPath query
2025-03-27 10:37:36 +01:00
Tamas Vajk
d824d24c49 Improve code quality 2025-03-27 10:31:48 +01:00
Napalys Klicius
d771a91c9c Update javascript/ql/lib/change-notes/2025-03-26-async-fileRead.md
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com>
2025-03-27 10:21:23 +01:00
Geoffrey White
d1a0237e87 Rust: Correct a few details in the test. 2025-03-27 09:20:25 +00:00
Michael Nebel
0a0ec180ec Merge pull request #19114 from michaelnebel/csharp/modelgenparammodifiers
C#: Correct printing of returns via out/ref parameters in model generation.
2025-03-27 10:03:27 +01:00
Tamás Vajk
3fbfc41814 Merge pull request #18974 from tamasvajk/tamasvajk/rename-ccr-suite-quality
Rename the CCR query suite to code-quality
2025-03-27 10:01:48 +01:00
Tamas Vajk
b5684fd5b2 Change ccr suite name to code-quality in python script 2025-03-27 08:36:53 +01:00
Tamas Vajk
34e8318797 Rename the CCR query suite to code-quality 2025-03-27 08:36:53 +01:00
Paolo Tranquilli
d4b2ec09b6 Merge branch 'main' into redsun82/rust-analyzer-update 2025-03-26 17:30:52 +01:00
Geoffrey White
c84e2cd7cb Rust: Reduce the workaround (fixes duplicate results). 2025-03-26 15:40:45 +00:00
Geoffrey White
0a04191a61 Rust: Effect of merging main (duplicate results). 2025-03-26 15:06:03 +00:00
Geoffrey White
56f330d545 Merge branch 'main' into deallocation 2025-03-26 14:58:32 +00:00
Marco Gario
288fcb6092 Update CWE-829 description for clarity 2025-03-26 15:53:20 +01:00
idrissrio
9d2e0c5f21 Merge branch 'main' into idrissrio/preprocessor-multiline 2025-03-26 15:08:34 +01:00
idrissrio
9af65001b3 C++: accept changes after C++ extractor preprocessor fix 2025-03-26 15:08:04 +01:00
Michael Nebel
8bda7ce6be C#: Update model generator expected test output. 2025-03-26 15:07:44 +01:00
Michael Nebel
8763d18c91 C#: Correct printing of out and ref notes in the model generator. 2025-03-26 15:06:26 +01:00
Michael Nebel
bcefdc8893 C#: Add model generator test cases with in/out parameters. 2025-03-26 15:06:13 +01:00
Tom Hvitved
023ffe22a0 C#: Make getPreUpdateNode Unique Again 2025-03-26 14:42:00 +01:00
Napalys
bf9a21fce2 Added change note 2025-03-26 14:27:13 +01:00
Napalys
200bf391ce Enhance NodeJSLib data flow handling through await. 2025-03-26 14:24:52 +01:00
Napalys
762ca2f8f5 Added test case with async readFile, currently not flagged. 2025-03-26 14:21:44 +01:00
Tamas Vajk
4e37e5add5 Add change note 2025-03-26 13:50:39 +01:00
Marco Gario
b1737858fa UntrustedCheckout: Try and differentiate between two versions of the rule 2025-03-26 12:49:48 +00:00
Arthur Baars
bf76505880 Rust: address comments 2025-03-26 13:28:44 +01:00
Marco Gario
29a23a3d20 Update UseOfKnownVulnerableAction.ql
Name should not end in a `.`
2025-03-26 13:28:34 +01:00
Erik Krogh Kristensen
a0c3176dd6 Merge branch 'main' into lcartey/support-sap-json-formats 2025-03-26 12:15:54 +01:00
Owen Mansel-Chan
c8a1ad6b28 Merge pull request #19120 from github/workflow/coverage/update
Update CSV framework coverage reports
2025-03-26 10:58:19 +00:00
Napalys
a78e0e914f Added change note. 2025-03-26 11:45:25 +01:00
Tamas Vajk
68f96d39d2 Make working directory name the same on all OS 2025-03-26 11:42:59 +01:00
Napalys
ae645e49ba Added support for @hapi/hapi server. 2025-03-26 11:41:11 +01:00
Napalys
649b4e07e2 Added test cases for @hapi/hapi 2025-03-26 11:35:58 +01:00
Tom Hvitved
284df7fcf3 Rust: Also resolve crate paths in non-source files 2025-03-26 11:29:34 +01:00
Tamas Vajk
f6968af3ae Add expected XSS test results 2025-03-26 11:03:32 +01:00
Owen Mansel-Chan
73348f2fd9 Merge branch 'main' into workflow/coverage/update 2025-03-26 09:59:26 +00:00
Joe Farebrother
d23c3b8a74 Revert manual magic
This appeared to cause timeouts on DCA.
2025-03-26 09:23:49 +00:00
Óscar San José
df721f8d1a Merge pull request #19119 from github/oscarsj/deprecate-ubuntu-20
Replace occurences of ubuntu-20 by ubuntu-22 in .github/workflows
2025-03-26 09:42:20 +01:00
idrissrio
6c8cfc666a Merge branch 'main' into idrissrio/preprocessor-multiline 2025-03-26 09:41:40 +01:00
idrissrio
148ffe8519 C++: accept changes after C++ extractor preprocessor fix 2025-03-26 09:41:20 +01:00
Napalys
62ab7f50d6 Added change note. 2025-03-26 09:33:59 +01:00
Tamás Vajk
b21968c495 Merge pull request #18947 from tamasvajk/tamasvajk/java_empty_method
Java: Add new quality query to detect empty methods
2025-03-26 09:33:47 +01:00
Paolo Tranquilli
2a81cc9567 Merge branch 'main' into redsun82/rust-analyzer-update 2025-03-26 09:33:38 +01:00
Tom Hvitved
212884cd9d Merge pull request #19106 from hvitved/rust/reverse-post-update-steps
Rust: Add reverse post-update flow steps
2025-03-26 09:30:26 +01:00
Erik Krogh Kristensen
14989f1cc6 Merge branch 'main' into lcartey/support-sap-json-formats 2025-03-26 09:07:21 +01:00
Tom Hvitved
f45eca77fa Address review comments 2025-03-26 09:03:22 +01:00
Tom Hvitved
72028c034e Rust: Add reverse post-update flow steps 2025-03-26 09:03:18 +01:00
Tom Hvitved
fcb1d9433a Rust: Add more data flow tests 2025-03-26 09:02:23 +01:00
Tom Hvitved
278d251dc1 Merge pull request #19107 from hvitved/rust/mad-argument-source
Rust: Support `Argument[x]` MaD source definitions
2025-03-26 09:02:06 +01:00
Tom Hvitved
b4926475d3 Address review comment 2025-03-26 08:44:03 +01:00
github-actions[bot]
abbd720704 Add changed framework coverage reports 2025-03-26 00:22:12 +00:00
Óscar San José
b6a0a5c6bf Replace occurences of ubuntu-20 by ubuntu-22 in .github/workflows 2025-03-25 18:59:16 +01:00
Geoffrey White
3ad4de400f Merge pull request #19067 from geoffw0/convtest
Rust: Add a couple of test cases for data flow through conversions
2025-03-25 17:44:29 +00:00
Napalys
4cdc40d115 Added SQL injection detection for exec method embeded Express client from hdbext. 2025-03-25 18:39:54 +01:00
Paolo Tranquilli
7cfed3c4a7 Merge branch 'main' into redsun82/rust-analyzer-update 2025-03-25 18:29:39 +01:00
Luke Cartey
8814077c76 Add support for additional SAP JSON formats. 2025-03-25 17:01:37 +00:00
Paolo Tranquilli
9dc9f79172 Merge pull request #19110 from github/redsun82/rust-fix-rc.17
Rust: accept test changes for now
2025-03-25 17:54:47 +01:00
Tamás Vajk
36ed96f8e6 Merge pull request #19070 from tamasvajk/update-complog
C#: Update CompLog dependency to 0.9.8
2025-03-25 16:11:01 +01:00
Aditya Sharad
fe7660f396 Merge pull request #19085 from JarLob/nonpriv
Fix potentially privileged pull request medium query
2025-03-25 20:25:31 +05:30
Nora Dimitrijević
222253f6f5 Merge pull request #19079 from d10c/d10c/rtjo-language-tests
CI: Add RTJO tests for Go and Ruby
2025-03-25 15:51:07 +01:00
Simon Friis Vindum
520e27ccfa Shared: Fix typos in qldoc 2025-03-25 15:49:03 +01:00
Simon Friis Vindum
efcffc55e3 Merge branch 'main' into rust-ti-refactor 2025-03-25 15:44:39 +01:00
Napalys
7cc0634f57 Added createProcStatement as potential sql sink. 2025-03-25 14:50:38 +01:00
Napalys
0285cb6c7a Added @sap/hdbext.loadProccedure as sql sink. 2025-03-25 14:48:40 +01:00
Nora Dimitrijević
659eaf88ff Go: add RTJO language tests CI job
Triggered by adding label "Run: RTJO Language Tests"
2025-03-25 14:46:06 +01:00
Nora Dimitrijević
ed801e7ab4 Ruby: add RTJO language test CI job
Triggered by adding "Run: RTJO Language Tests" label.
2025-03-25 14:46:06 +01:00
Napalys
e595def8b0 Modeled execute as potential hana's sink. 2025-03-25 14:44:37 +01:00
Napalys
d28af9508a Added sink models for hana's client prepare function. 2025-03-25 14:42:27 +01:00
Napalys
9229962096 Add sink model for SQL injection detection in exec clients. 2025-03-25 14:36:13 +01:00
Napalys
032cfc134f Added test cases for hana clients. 2025-03-25 14:29:06 +01:00
Simon Friis Vindum
54e7bb7f1a Rust: Fix a bad join by adding bindingset to resolveTypeMentionRoot 2025-03-25 14:26:24 +01:00
Anders Schack-Mulligen
8749bdb979 C++: Accept test changes. 2025-03-25 13:58:52 +01:00
Anders Schack-Mulligen
d5d0274ce7 Java/SSA: Keep proper distinction between cached stages. 2025-03-25 13:43:55 +01:00
Michael B. Gale
fe1c098624 C#: Accept changes to .expected files 2025-03-25 12:39:37 +00:00
Anders Schack-Mulligen
4d04391b70 C++: Keep all phi input back edges. 2025-03-25 13:21:13 +01:00
Paolo Tranquilli
3d405f6d61 Rust: accept test changes for now 2025-03-25 12:44:22 +01:00
Anders Schack-Mulligen
ae47339d1a Rust: Accept test changes. 2025-03-25 12:31:05 +01:00
Anders Schack-Mulligen
e7e5f75949 Ruby: Accept test changes. 2025-03-25 12:31:04 +01:00
Anders Schack-Mulligen
f27e8199a1 Java: Accept test changes. 2025-03-25 12:31:04 +01:00
Anders Schack-Mulligen
b3bea97320 C#: Accept test changes. 2025-03-25 12:31:03 +01:00
Anders Schack-Mulligen
0162b84d20 SSA: Fix a poor join-order and avoid SSA recomputation. 2025-03-25 12:31:03 +01:00
Anders Schack-Mulligen
36532bc58c SSA: Skip identity steps. 2025-03-25 12:31:02 +01:00
Anders Schack-Mulligen
4e2ad9712c SSA: Skip phi nodes with unique successor. 2025-03-25 12:31:02 +01:00
Anders Schack-Mulligen
669f9261f1 SSA: Skip irrelevant phi input nodes. 2025-03-25 12:31:01 +01:00
Anders Schack-Mulligen
c778bf6343 SSA: Rename SsaInputDefinitionExt 2025-03-25 12:31:01 +01:00
Anders Schack-Mulligen
7c82f51381 Java: Skip SSA definition nodes in data flow. 2025-03-25 12:31:01 +01:00
Anders Schack-Mulligen
5aa7029934 SSA: Add support for skipping WriteDefinitions in use-use. 2025-03-25 12:31:00 +01:00
Michael B. Gale
be95d335b7 C#: Obtain all feeds from source directory if there are no nuget.config files anywhere 2025-03-25 11:29:06 +00:00
Jami
e169c21f8b Apply suggestions from docs review
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-03-25 07:19:39 -04:00
Owen Mansel-Chan
c3bc6519fb Merge pull request #19053 from owen-mc/go/fp/log-type
Go: Fix false positives when logging using `%T`
2025-03-25 10:49:51 +00:00
Michael B. Gale
73ca2eb2c5 C#: Use allFeeds rather than explicitFeeds for RestoreProjects 2025-03-25 10:44:29 +00:00
Owen Mansel-Chan
0fbeef8f41 Remove model for method that doesn't exist 2025-03-25 10:33:23 +00:00
Owen Mansel-Chan
bf82a87a68 Rename model file to fix typo 2025-03-25 10:33:23 +00:00
Owen Mansel-Chan
bbed79cf58 Add squirrel to go.mod 2025-03-25 10:33:23 +00:00
Owen Mansel-Chan
09d69293b5 Fix package name in stub 2025-03-25 10:33:23 +00:00
Owen Mansel-Chan
1de15ec66d Fix signatures in comments 2025-03-25 10:33:23 +00:00
Ed Minnix
59ad30dea7 Change note 2025-03-25 10:33:23 +00:00
Ed Minnix
c5f5427d72 Add test for squirrel package 2025-03-25 10:33:23 +00:00
Ed Minnix
4ab5d3405c Add fake Source function and models 2025-03-25 10:33:23 +00:00
Ed Minnix
a8c3ef9500 Add squirrel models 2025-03-25 10:33:23 +00:00
Owen Mansel-Chan
6d61820c92 Merge pull request #19088 from owen-mc/review/egregius313/18913
Go: Add database source models for the github.com/couchbase/gocb package (#2)
2025-03-25 10:31:44 +00:00
Michael B. Gale
4d3b0246b5 C#: Do not manually add public feed when private registries are used 2025-03-25 10:14:03 +00:00
Michael B. Gale
d2b88ae5a8 C#: Rename overloaded CheckFeeds method and fix comment 2025-03-25 10:07:08 +00:00
Michael B. Gale
7cea2addda Apply suggestions from code review
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2025-03-25 10:02:29 +00:00
Napalys Klicius
0689cf7f5e Update javascript/ql/lib/ext/axios.model.yml
Co-authored-by: Asger F <asgerf@github.com>
2025-03-25 10:56:01 +01:00
Napalys
9dcfe0e709 Added change note. 2025-03-25 10:55:44 +01:00
Napalys
1ee3fde214 Added support for axios.interceptors.response. 2025-03-25 10:55:34 +01:00
Napalys
20bb831ce9 Added test case for axios.interceptors.response with missing alert. 2025-03-25 10:55:14 +01:00
Napalys
10498bbaa4 Added support for axios.interceptors.request. 2025-03-25 10:54:56 +01:00
Napalys
ea181e4173 Added test case for axios.interceptors.request 2025-03-25 10:54:17 +01:00
Napalys
a3c84d9feb Added support for axios.create. 2025-03-25 10:45:09 +01:00
Napalys
8f2adb6543 Added test case for create. 2025-03-25 10:44:15 +01:00
Napalys
c0d848cdf1 Added support for getUri. 2025-03-25 10:43:54 +01:00
Napalys
f48a362d71 Added support for patchForm. 2025-03-25 10:42:57 +01:00
Napalys
7fe943d8b2 Added support for putForm. 2025-03-25 10:42:04 +01:00
Napalys
69fe251eac Add support for axios.postForm in ClientRequest. 2025-03-25 10:41:08 +01:00
Napalys
e79f4602b5 Added test for axios methods.
In particular for `postForm` `putForm` `patchForm` `getUri`.
2025-03-25 10:40:00 +01:00
Joe Farebrother
0fa70db4c2 Review suggestions - update comment and introduce manual magic to filelocalflow 2025-03-25 08:55:55 +00:00
Erik Krogh Kristensen
9d3d3deffa Merge pull request #19104 from michaelnebel/ql4ql/excludeprintastinlineexpect
QL4QL: Exclude PrintAst like tests from being reported as having missing InlineExpectations.
2025-03-25 09:42:22 +01:00
Napalys Klicius
f7026c29cc Merge pull request #19091 from Napalys/js/package_got
JS: `got` package modeling
2025-03-25 09:25:39 +01:00
Tom Hvitved
d6d3028e5a Rust: Support Argument[x] MaD source definitions 2025-03-25 09:08:40 +01:00
Tom Hvitved
cf1b19f7c4 Rust: Add test for MaD argument source 2025-03-25 09:06:56 +01:00
Simon Friis Vindum
06c8963f70 Shared: Infer types for type parameters with contraints 2025-03-25 09:03:44 +01:00
Simon Friis Vindum
831413b5ec Rust: Expand on type parameter bounds type inference test 2025-03-25 08:41:05 +01:00
Simon Friis Vindum
ba9edf8d25 Shared: Refactor type inference 2025-03-25 06:32:36 +01:00
Jami Cogswell
b9bf192c09 Java: previous-id property instead of tag, see #19097 2025-03-24 14:37:05 -04:00
Michael B. Gale
4448369323 C#: Check that private package registry feeds are reachable 2025-03-24 17:27:22 +00:00
Jami
7208604880 Merge pull request #19097 from jcogs33/jcogs33/metatdata-previous-id
Docs: add guidance for `previous-id` metadata
2025-03-24 13:19:29 -04:00
Michael B. Gale
92eab47def C#: Refactor CheckFeeds to have an overloaded variant that accepts a given set of feeds. 2025-03-24 17:15:49 +00:00
Michael B. Gale
d564529f3c C#: Change RestoreSettings to have general extraArgs parameter
This allows the string of package feeds to be constructed once and used repeatedly in the parallel restore loop as well.
2025-03-24 17:08:05 +00:00
Michael Nebel
be4c9d8815 Ql4Ql: Update test expected file. 2025-03-24 16:23:55 +01:00
Michael Nebel
7dda951a51 Ql4Ql: Exclude files named PrintAst.qlref and qlref files that uses a query with a PrintAst name from QlRefInlineExpectations. 2025-03-24 16:23:04 +01:00
Michael Nebel
2a8a8224f1 Ql4Ql: Add PrintAst test case for QlRefInlineExpectations. 2025-03-24 16:22:46 +01:00
Paolo Tranquilli
29b7acfddd Merge pull request #19101 from github/redsun82/rust-fix-main
Rust: accept test changes for now
2025-03-24 16:22:04 +01:00
Jami Cogswell
bea8ce3934 Docs: add previous-id property to metadata-for-codeql-queries.rst 2025-03-24 10:23:43 -04:00
idrissrio
9773652c9e Merge branch 'main' into idrissrio/preprocessor-multiline 2025-03-24 15:17:00 +01:00
idrissrio
13f4f48d27 C++: Accept changes after C++ extractor preprocessor fix 2025-03-24 15:16:26 +01:00
Tom Hvitved
0f1aee025c Merge pull request #19051 from hvitved/rust/path-resolution-cross-crate
Rust: Path resolution improvements
2025-03-24 14:14:12 +01:00
Napalys
cb14b4381e Applied copilot suggestions. 2025-03-24 14:05:28 +01:00
Paolo Tranquilli
bf32acc198 Rust: accept test changes for now 2025-03-24 13:43:27 +01:00
Jami Cogswell
0931ca473d Docs: switch to previous-id property instead of tag 2025-03-24 08:37:48 -04:00
Anders Schack-Mulligen
dc0ca1ac18 Java: Fix TC magic in SystemProperty. 2025-03-24 13:31:23 +01:00
Napalys
240b42bb76 Added change note. 2025-03-24 13:24:40 +01:00
Geoffrey White
82068a262d Rust: Further rephrasing. 2025-03-24 12:23:48 +00:00
Geoffrey White
363128f4ec Apply suggestions from code review
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-03-24 12:21:51 +00:00
Napalys
2d6f5d1da4 Refactor ClientRequest to introduce GotInstance classes for improved handling of got instances and options retrieval. 2025-03-24 13:20:09 +01:00
Geoffrey White
e4cadf09ce Rust: Don't report excessive results for the same source. 2025-03-24 12:12:42 +00:00
Geoffrey White
b7044bdcde Rust: Add a test of repeat sinks. 2025-03-24 12:04:43 +00:00
Simon Friis Vindum
860ba2e120 Merge pull request #19081 from paldepind/rust-ti-tw
Rust: Adjustments to type inference
2025-03-24 13:00:27 +01:00
Geoffrey White
f582054ca4 Rust: Refactor the tests that have multiple control flow paths. 2025-03-24 11:56:32 +00:00
Michael Nebel
d9fb137909 C#: Add upgrade- and downgrade scripts. 2025-03-24 12:00:15 +01:00
Simon Friis Vindum
7dc49da6b0 Shared: Fix path in qldoc
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com>
2025-03-24 11:38:15 +01:00
Tamás Vajk
a5fd2e923a Improve query documentation
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-03-24 11:03:43 +01:00
Tom Hvitved
3f1f37fd5f Address review comments 2025-03-24 10:53:38 +01:00
Tamás Vajk
03f93ddef5 Merge pull request #19050 from tamasvajk/tamasvajk/fix-fallback-restore
C#: Fix buildless fallback restore logic
2025-03-24 09:31:52 +01:00
Jami Cogswell
0f002624d6 Java: remove mention of abstract classes from qhelp 2025-03-23 19:51:37 -04:00
Jami Cogswell
dca4c58b29 Java: add to ccr/quality suite 2025-03-23 19:51:35 -04:00
Jami Cogswell
37092f4411 Java: add 'testability' and 'frameworks/junit' tags 2025-03-23 19:51:26 -04:00
Jami Cogswell
35b647839c Java: include RepeatedTest, ParameterizedTest, TestFactory, and TestTemplate when identifying JUnit 5 test methods 2025-03-23 19:49:55 -04:00
Jami Cogswell
4d7bed6181 Java: exclude anonymous, local, and private classes 2025-03-23 19:49:53 -04:00
Jami Cogswell
3e13f0ed41 Java: remove redundant 'non-static' wording and update qhelp 2025-03-23 19:49:41 -04:00
Jami Cogswell
640096c822 Java: change note 2025-03-23 19:48:20 -04:00
Jami Cogswell
ed57bc7858 Java: exclude abstract classes 2025-03-23 19:48:18 -04:00
Jami Cogswell
b08c8d020d Java: tests to inline expectations 2025-03-23 19:48:17 -04:00
Jami Cogswell
f17e7266cf Java: refactor QL 2025-03-23 19:48:15 -04:00
Jami Cogswell
ccbe77eb09 Java: move original files 2025-03-23 19:48:13 -04:00
Jami Cogswell
cb4e21d0e6 Docs: add guidance for previous-id tag 2025-03-23 19:29:20 -04:00
Geoffrey White
d1ef2b50fb Rust: Model futures::executor::block_on. 2025-03-21 16:51:10 +00:00
idrissrio
7a50ec157d Merge branch 'main' into idrissrio/preprocessor-multiline 2025-03-21 17:33:43 +01:00
idrissrio
3c54722a74 C++: Accept changes after C++ extractor preprocessor fix 2025-03-21 17:33:23 +01:00
Nick Rolfe
631ccdf380 Merge pull request #19092 from github/nickrolfe/comma-splice
Java: fix comma splice in alert message
2025-03-21 16:04:28 +00:00
Anders Schack-Mulligen
3c6db09039 Java: Cache the other compiletimeconstant value predicates 2025-03-21 15:53:26 +01:00
Anders Schack-Mulligen
e75ed5a085 Java: Merge BaseSSA cached stages. 2025-03-21 15:45:50 +01:00
idrissrio
5eda853de4 C++: Accept changes after C++ extractor preprocessor fix 2025-03-21 15:25:41 +01:00
Nick Rolfe
361fbba39b Java: fix comma splice in alert message 2025-03-21 14:23:32 +00:00
Anders Schack-Mulligen
33135330fd Java: Merge cached stages for BasicBlocks. 2025-03-21 15:21:25 +01:00
Napalys
f43510c9aa Added support for paginate. 2025-03-21 15:03:23 +01:00
Napalys
63193fa91c Improve URL handling in ClientRequest for extend() and Options 2025-03-21 15:02:34 +01:00
Napalys
99efb610d4 Enhance URL handling in ClientRequest for got Options 2025-03-21 15:01:43 +01:00
Napalys
b33f760765 Manage chain calls of extend. 2025-03-21 15:00:39 +01:00
Napalys
a58c4eb652 Added additional test cases for got package. 2025-03-21 15:00:35 +01:00
Michael Nebel
acec97db94 C#: Add change-note. 2025-03-21 13:32:44 +01:00
Michael Nebel
5ae7e5ddb3 C#: Update other test expected output files. 2025-03-21 13:23:11 +01:00
Michael Nebel
a73a61b8fa C#: Add PrintAst test for string interpolation expressions. 2025-03-21 13:04:43 +01:00
Michael Nebel
2ca5ec0032 C#: Add some string interpolation tests with alignment and formatting. 2025-03-21 13:04:40 +01:00
Michael Nebel
af6e1bda4c C#: Extract alignment and format clauses of string interpolation expressions. 2025-03-21 13:04:39 +01:00
Owen Mansel-Chan
f677ddda26 Update wording of change note (accepting review suggestion)
Co-authored-by: Michael B. Gale <mbg@github.com>
2025-03-21 11:26:50 +00:00
Owen Mansel-Chan
2790415772 Remove imports that aren't used 2025-03-21 11:16:46 +00:00
Owen Mansel-Chan
84872c8c7f Use depstubber for stubs (with manual edits)
I had to remove quite a few incorrect method declarations for promoted
methods.
2025-03-21 10:15:08 +00:00
mc
1f76793863 Merge branch 'main' into tamasvajk/java_empty_method 2025-03-21 10:01:10 +00:00
Paolo Tranquilli
bd201afa8e Rust: apply formatting and linting 2025-03-21 11:00:30 +01:00
Paolo Tranquilli
8f8fe2f8b6 Rust: silence warning by removing unused generated function 2025-03-21 10:59:39 +01:00
Owen Mansel-Chan
e44f7f946f Sort package paths in vendor/modules.txt 2025-03-21 09:45:50 +00:00
idrissrio
99d9b87b33 Merge branch 'main' into idrissrio/preprocessor-multiline 2025-03-21 10:28:24 +01:00
Joe Farebrother
a46c157e46 Add quality tag + tweak description 2025-03-21 09:24:54 +00:00
Napalys Klicius
7bd1c4d2ae Merge pull request #19060 from Napalys/js/apollo-server
JS: model `ApolloServer`
2025-03-21 10:00:31 +01:00
Paolo Tranquilli
7d312feffe Rust: add local copy of rust.ungrammar
This copy is injected by the existing `//rust/ast-generator:inject-sources`
target, and is useful for development.
2025-03-21 09:48:29 +01:00
Paolo Tranquilli
04f9694f89 Rust: drop extraction of anonymous canonical paths 2025-03-21 09:47:02 +01:00
idrissrio
878e621a38 Improved source location extraction for directive. 2025-03-21 09:46:54 +01:00
Napalys Klicius
803aacf9f0 Merge pull request #19068 from Napalys/js/superagent
JS: `superagent` modeling
2025-03-21 09:15:31 +01:00
Napalys Klicius
57f6225140 Update javascript/ql/lib/change-notes/2025-03-20-apollo-server.md
Co-authored-by: Asger F <asgerf@github.com>
2025-03-21 09:11:25 +01:00
Simon Friis Vindum
e0ef24154a Rust: Small tweaks to doc comments based on PR feedback 2025-03-21 08:30:14 +01:00
Paolo Tranquilli
fd84b67568 Merge pull request #19084 from github/aibaars/rust-analyzer-update
Rust: fix crate_graph.rs
2025-03-21 08:26:49 +01:00
Tamas Vajk
e20c46a14a Add change note 2025-03-21 08:24:22 +01:00
Aditya Sharad
b4524798b8 Merge pull request #19082 from smowton/smowton/admin/fix-codeql-alert
Avoid CodeQL alert against integration test
2025-03-21 02:33:54 +05:30
Jaroslav Lobačevski
fe7d9eeb23 Update actions/ql/lib/change-notes/2025-03-20.md
Co-authored-by: Aditya Sharad <6874315+adityasharad@users.noreply.github.com>
2025-03-20 22:01:11 +01:00
Jaroslav Lobačevski
b85d4b590d move the change note to the correct directory 2025-03-20 20:29:35 +00:00
Jaroslav Lobačevski
5f63fc2048 Fix potentially privileged pull request medium query 2025-03-20 20:23:07 +00:00
Napalys Klicius
730580a59b Merge pull request #19049 from Napalys/js/underscore-string
JS: Modeling of `underscore.string` package
2025-03-20 19:11:24 +01:00
Napalys
7d40e449db Added change note. 2025-03-20 19:08:24 +01:00
Arthur Baars
cf8e270384 Rust: fix crate_graph.rs 2025-03-20 19:08:10 +01:00
Napalys
d61d038b9b Refactored SuperAgentUrlRequest to use API graph. 2025-03-20 18:17:28 +01:00
Napalys
401c6ea0f6 Added test case which is not detected by dataflow. 2025-03-20 18:17:27 +01:00
Paolo Tranquilli
fe7e1c0a6c Rust: solve all compilation errors but the ones related to the crate graph 2025-03-20 17:49:35 +01:00
Paolo Tranquilli
7cf3cac24a Rust: reinstate Variant as Addressable 2025-03-20 16:55:37 +01:00
Geoffrey White
91d273ad76 Rust: I think these generated models are correct. Accept them. 2025-03-20 15:52:08 +00:00
Paolo Tranquilli
ea11b08f28 Rust: rerun code generation 2025-03-20 16:51:35 +01:00
Chris Smowton
5892cdf456 Avoid CodeQL alert against integration test
This doesn't really matter since it's a dummy test server, but it's simpler to fix than to dismiss.
2025-03-20 15:49:21 +00:00
Owen Mansel-Chan
662af6e248 Update test expectations 2025-03-20 15:49:20 +00:00
Paolo Tranquilli
13370200cc Cargo: upgrade dependencies 2025-03-20 16:48:29 +01:00
Geoffrey White
98690f924a Rust: Incidental changes to other .expected files. 2025-03-20 15:39:03 +00:00
Simon Friis Vindum
b2fc4f80fb Rust: Adjustments to type inference 2025-03-20 16:38:06 +01:00
Paolo Tranquilli
12214b65a4 Rust: add forgotten expected file 2025-03-20 16:35:56 +01:00
Arthur Baars
b10a296a93 Rust: add more path-injection sinks 2025-03-20 16:30:47 +01:00
Paolo Tranquilli
b48d9a255e Rust: undo rename of Path::segment to Path::part 2025-03-20 16:30:35 +01:00
Asger F
d9c158923a Merge pull request #19069 from asgerf/js/jsdoc-parser
JS: Use StringBuilder when building up type name in JSDoc
2025-03-20 16:17:58 +01:00
Geoffrey White
c6c4e3cf16 Rust: Add another reference. 2025-03-20 15:16:17 +00:00
Owen Mansel-Chan
da8ae84422 Change change note to query change note 2025-03-20 15:08:09 +00:00
Owen Mansel-Chan
bc40a4289c Do not use full regex match for %T 2025-03-20 15:08:07 +00:00
Owen Mansel-Chan
f944ff4d78 Create getAValueFormattedMessageComponent 2025-03-20 15:08:06 +00:00
Owen Mansel-Chan
05a94807e1 Make comment clearer 2025-03-20 15:08:05 +00:00
Owen Mansel-Chan
bf78160830 Add change note 2025-03-20 15:08:03 +00:00
Owen Mansel-Chan
11ff0a08f3 Add log injection and cleartext logging tests for %T 2025-03-20 15:08:02 +00:00
Owen Mansel-Chan
646d28feeb Make cleartext logging tests more realistic 2025-03-20 15:08:00 +00:00
Owen Mansel-Chan
94c812cbe6 Convert cleartext logging tests to inline expectations 2025-03-20 15:07:59 +00:00
Owen Mansel-Chan
59d82b3b62 Make log injection tests more realistic 2025-03-20 15:07:57 +00:00
Owen Mansel-Chan
009e0e17b2 Don't consider arguments with %T as logger call components 2025-03-20 15:07:26 +00:00
Owen Mansel-Chan
f173305629 Add tests for %T (passing but marked SPURIOUS) 2025-03-20 15:05:55 +00:00
Geoffrey White
5e18e1be11 Rust: Autofix and US spelling. 2025-03-20 15:03:55 +00:00
Paolo Tranquilli
a762e518c6 Merge branch 'main' into redsun82/codegen-rename-dbscheme 2025-03-20 15:52:49 +01:00
Paolo Tranquilli
cd15fb3611 Merge pull request #19071 from github/redsun82/codegen-rust-ancestor-order
Rust: preserve ordering in rust generated code
2025-03-20 15:50:48 +01:00
Joe Farebrother
bdbdcf8bd8 Clean up charpred of WithStatement + fix a comment 2025-03-20 14:28:57 +00:00
Geoffrey White
5831c446d3 Rust: Add test cases for another situation I came across. 2025-03-20 14:26:15 +00:00
Geoffrey White
7ecba71166 Rust: Add .qhelp. 2025-03-20 14:26:14 +00:00
Geoffrey White
019fcbfbf9 Rust: Add qhelp examples, and add them as tests. 2025-03-20 14:26:13 +00:00
Geoffrey White
671f7dff94 Rust: Query metadata. 2025-03-20 14:26:11 +00:00
Geoffrey White
7ceb76441a Rust: Improve the source to account for conversions. 2025-03-20 14:26:10 +00:00
Geoffrey White
be6d0d1f86 Rust: Work around data flow source issue. 2025-03-20 14:26:09 +00:00
Geoffrey White
c2ee4211e5 Rust: Add more models. 2025-03-20 14:26:08 +00:00
Geoffrey White
dcd016f5be Rust: Initial version of the query. 2025-03-20 14:26:06 +00:00
Geoffrey White
a139b3734c Rust: Split lang-core.model.yml into lang-core and lang-alloc. 2025-03-20 14:26:05 +00:00
Geoffrey White
19f009ae08 Rust: Add tests for various kinds of dangling pointers. 2025-03-20 14:26:04 +00:00
Taus
074af6f548 Python: Add change note 2025-03-20 13:57:32 +00:00
Simon Friis Vindum
659077769b Merge pull request #19062 from paldepind/rust-ti-1
Rust: Improve handling of trait bounds
2025-03-20 14:38:03 +01:00
Tom Hvitved
3142dbb040 Rust: Rework visibility handling in path resolution 2025-03-20 14:14:53 +01:00
Tom Hvitved
b2fc7e771f Rust: Handle super in use statements 2025-03-20 14:14:33 +01:00
Tom Hvitved
57dfbf4faa Rust: Add path resolution test for super in use statement 2025-03-20 14:14:29 +01:00
Tom Hvitved
8044b0d03c Rust: Exclude macro call paths from resolvePath 2025-03-20 14:13:13 +01:00
Tom Hvitved
7c2bafeb17 Rust: Handle self in use statements 2025-03-20 14:13:12 +01:00
Tom Hvitved
8f8f6f74bc Rust: Add use+self path resolution test 2025-03-20 14:13:11 +01:00
Tom Hvitved
c91176116f Rust: Cross-crate path resolution 2025-03-20 14:13:06 +01:00
Tom Hvitved
bd4c85a5bc Rust: Add cross-crate path resolution test 2025-03-20 13:50:20 +01:00
Tom Hvitved
c5106f78ac Rust: Handle pub use reexports in path resolution 2025-03-20 13:50:18 +01:00
Tom Hvitved
6cf83d3a68 Rust: Add path resolution test for reexported items 2025-03-20 13:50:16 +01:00
Tom Hvitved
92528f2b49 Rust: Add debug predicate 2025-03-20 13:50:15 +01:00
Napalys Klicius
13e90c1606 Update javascript/ql/lib/change-notes/2025-03-20-superagent.md
Co-authored-by: Asger F <asgerf@github.com>
2025-03-20 13:48:40 +01:00
Paolo Tranquilli
e2d6643600 Merge pull request #19072 from github/redsun82/rust-fix-canonical-paths-after-rename
Rust: fix canonical paths broken on `StructExpr` and `StructPath`
2025-03-20 13:40:24 +01:00
Owen Mansel-Chan
7e04a9f6c0 Improve stubs (made by old version of depstubber?) 2025-03-20 12:33:39 +00:00
Owen Mansel-Chan
6147f0a873 Fix outdated depstubber command 2025-03-20 12:32:56 +00:00
Owen Mansel-Chan
40768332d8 Remove empty imports from stubs 2025-03-20 12:32:12 +00:00
Owen Mansel-Chan
81e85010f9 List subpackages in vendor/modules.txt
These were all generated by running depstubber.
2025-03-20 12:30:57 +00:00
Napalys
9e787555df Fixed typo in the test cases. 2025-03-20 13:25:36 +01:00
Paolo Tranquilli
022785aa40 Merge pull request #19048 from github/redsun82/swift-count-nodes
Swift: add summary about total extracted nodes
2025-03-20 13:15:02 +01:00
Paolo Tranquilli
8757d2f0e4 Merge pull request #19013 from github/redsun82/rules_rust
Bazel: upgrade `rules_rust` to `0.58.0`
2025-03-20 13:14:24 +01:00
Paolo Tranquilli
e9b931e2aa Merge branch 'main' into redsun82/codegen-rust-ancestor-order 2025-03-20 13:13:10 +01:00
Arthur Baars
efedfa1fe2 Rust: move optionalStep/Barrier predicates into Cached module 2025-03-20 13:10:38 +01:00
Napalys
3a243d221d Added aliases for @apollo/server. 2025-03-20 13:09:42 +01:00
Napalys
056bf4fde7 Added test case with inheretence. 2025-03-20 13:08:56 +01:00
Tom Hvitved
9b58da7e84 Merge pull request #19057 from hvitved/rust/dependency-renaming
Rust: Take dependency renaming into account when extracting the crate graph
2025-03-20 12:51:24 +01:00
Napalys
ca53e97de4 Adressed comments. 2025-03-20 12:37:06 +01:00
Joe Farebrother
3707f107bf Fix tests + add more tests 2025-03-20 11:35:38 +00:00
Joe Farebrother
2c74ddb853 Add django FileRsponse as a wrapper 2025-03-20 11:35:29 +00:00
Joe Farebrother
b2acfbcf87 Simplify handling of wrapper classes and exception flow + improve qldoc and annotate tests. 2025-03-20 11:35:18 +00:00
Joe Farebrother
f8a0b1c5f9 Update docs, precision, and deprecate old library 2025-03-20 11:35:12 +00:00
Joe Farebrother
f750e22d91 Add case for exception flow 2025-03-20 11:35:01 +00:00
Joe Farebrother
c8fc56560d Check for wrapper classes 2025-03-20 11:34:51 +00:00
Joe Farebrother
ecb3050780 Update tests 2025-03-20 11:34:42 +00:00
Joe Farebrother
09694c448d Rewrite file not closed simple case using dataflow 2025-03-20 11:34:33 +00:00
Paolo Tranquilli
f06aa38746 Merge branch 'main' into redsun82/swift-count-nodes 2025-03-20 12:32:49 +01:00
Chris Smowton
d362c030b7 Merge pull request #19065 from smowton/smowton/admin/merge-rc317-into-main
Merge rc/3.17 into main
2025-03-20 11:31:03 +00:00
Paolo Tranquilli
15bc6fc496 Merge branch 'main' into redsun82/rules_rust 2025-03-20 12:28:52 +01:00
Napalys Klicius
221cc1977d Merge branch 'main' into js/underscore-string 2025-03-20 12:26:00 +01:00
Napalys
f4ca2dc1f3 Restricted taint to array elements. 2025-03-20 12:24:49 +01:00
Napalys
752f02f04d Fixed map modeling and added test cases. 2025-03-20 12:18:28 +01:00
Paolo Tranquilli
b77c13802b Rust: fix canonical paths broken on StructExpr and StructPath
After the rename done in https://github.com/github/codeql/pull/19059,
canonical path extraction was lost on `StructExpr` and `StructPath` as
the identifiers used for the type in the `emit_detached!` macro were not
updated. This fixes that.
2025-03-20 12:16:47 +01:00
Arthur Baars
f5fe531ab6 Rust: remove Stage::ref() trick 2025-03-20 12:15:41 +01:00
Napalys
38624a0d78 Added change note 2025-03-20 12:13:32 +01:00
Paolo Tranquilli
4110636032 Rust: preserve ordering in rust generated code
This is a small devex improvement to the rust code generator.

Usage of `sorted` in `rustgen.py` was causing the generated code to be
completely reshuffled on renames, which made diffs hard to follow. As an
example see [this generated file diff](https://github.com/github/codeql/pull/19059/files#diff-c938ba77a3398dd4c633ada5702a03477705c24740a2f7d1e40d4b270d8c3f86).

This will make the order deterministically based on the order of
definitions in the schema file. This means that renames will find the
same place in the generated file, and the place in the generated file
will generally be more predictable with respect to the schema.

However, that does mean this change is heavily reshuffling the generated
code.
2025-03-20 12:12:52 +01:00
Napalys
af567b49fb Simplified SuperAgentUrlRequest. 2025-03-20 12:10:37 +01:00
Napalys
539e2ef558 Added support for superagent.agent(). 2025-03-20 12:09:31 +01:00
Napalys
cdf4f5395f Enhance SuperAgent URL request handling for both method calls and direct calls 2025-03-20 12:09:26 +01:00
Napalys
2e1734eeba Added support for del function in superagent 2025-03-20 12:01:18 +01:00
Simon Friis Vindum
b02a249fbd Merge branch 'main' into rust-ti-1 2025-03-20 11:49:58 +01:00
Tom Hvitved
cbb9987a20 Merge remote-tracking branch 'upstream/main' into rust/dependency-renaming 2025-03-20 11:45:03 +01:00
Tom Hvitved
d19188db8f Address review comment 2025-03-20 11:39:52 +01:00
Arthur Baars
2804c13027 Rust: use optionalBarrier 2025-03-20 11:37:05 +01:00
Arthur Baars
5a91b94395 Refactor using OptionalStep 2025-03-20 11:37:04 +01:00
Simon Friis Vindum
b09669646d Merge pull request #19059 from paldepind/rust-record-to-struct
Rust: Rename classes with `Record` to `Struct`
2025-03-20 11:34:06 +01:00
Arthur Baars
d3e28772ae Rust/Python improve qldoc of SafeAccessCheck 2025-03-20 11:16:45 +01:00
Tamas Vajk
aa1ecc5cd9 C#: Update CompLog dependency to 0.9.8 2025-03-20 10:14:51 +01:00
Asger F
bf9d7484e4 JS: Use StringBuilder when building up type name
This code was a bit of a performance cringe. It copied every character
into a temporary array, copied that into a String, and slow-appended
that onto another String.

Note that the call to Characters.toChars is redundant here as advance()
doesn't return a code point; it returns -1 or a UTF-16 char. The -1 case
is checked for before reaching the call, so we can just cast it to
a char and use it directly.

We use a StringBuilder to accumulate the string. Normally it's faster
to track the start/end indices and do a substring(), but that won't
work in the JSDoc extractor because of the star-skipping logic in
advance().
2025-03-20 09:43:10 +01:00
Tamas Vajk
9bdec217e4 Clean test files and add new test cases 2025-03-20 09:32:27 +01:00
Tamás Vajk
246c8276e0 Update java/ql/lib/semmle/code/java/UnitTests.qll
Co-authored-by: Jami <57204504+jcogs33@users.noreply.github.com>
2025-03-20 09:22:13 +01:00
Jon Janego
f698d0a060 Update query-metadata-style-guide.md 2025-03-19 16:58:30 -05:00
Jon Janego
14d178f817 Update query-metadata-style-guide.md
minor tag changes to align with existing tags
2025-03-19 16:56:37 -05:00
Geoffrey White
0f622b38ab Rust: Update test results. 2025-03-19 18:42:50 +00:00
Geoffrey White
b609bbb4d8 Merge branch 'main' into convtest 2025-03-19 18:41:56 +00:00
Geoffrey White
bbef3fe7fa Rust: Test dataflow through conversions. 2025-03-19 18:13:23 +00:00
Napalys
e5c179d5a4 Added test cases for superagent 2025-03-19 17:44:22 +01:00
Chris Smowton
9a2a13ed55 Merge remote-tracking branch 'origin/main' into smowton/admin/merge-rc317-into-main 2025-03-19 16:01:29 +00:00
Simon Friis Vindum
0d770c8c91 Rust: Improve handling of type parameters with trait bounds 2025-03-19 16:34:23 +01:00
idrissrio
11c71f03f3 C++: Accept changes after C++ extractor preprocessor fix 2025-03-19 16:34:00 +01:00
Paolo Tranquilli
7c8eb9ea0d Codegen: implement db_table_name in cppgen 2025-03-19 15:14:15 +01:00
Paolo Tranquilli
9639d6c8bb Codegen: implement db_table_name in rustgen 2025-03-19 15:14:15 +01:00
Paolo Tranquilli
f48aa79927 Codegen: implement db_table_name in qlgen 2025-03-19 15:14:15 +01:00
Paolo Tranquilli
fc9e066ecd Codegen: implement db_table_name in dbschemegen 2025-03-19 15:14:14 +01:00
Paolo Tranquilli
841214f0f4 Codegen: introduce property-only pragmas 2025-03-19 15:14:14 +01:00
Paolo Tranquilli
91b7329652 Codegen: update dependencies 2025-03-19 15:14:13 +01:00
Paolo Tranquilli
53c235dfd5 Bazel: bump python version to 3.12 2025-03-19 15:14:13 +01:00
Napalys
cb18408502 Added data as model for ApolloServer. 2025-03-19 13:36:06 +01:00
Napalys
23fdc3534f Added test case @apollo/server with SSRF. 2025-03-19 13:34:27 +01:00
Simon Friis Vindum
aa97bf932a Rust: Add type inference tests 2025-03-19 13:26:06 +01:00
Paolo Tranquilli
06b349e307 Codegen: introduce name conflict error in dbschemegen 2025-03-19 12:15:45 +01:00
Simon Friis Vindum
b2b650ddd3 Rust: Rename classes with Record to Struct 2025-03-19 12:05:39 +01:00
Owen Mansel-Chan
fee380f970 Update go.mod 2025-03-19 10:26:31 +00:00
Owen Mansel-Chan
820aa90a0f Add missing model to make tests pass 2025-03-19 10:26:11 +00:00
Tom Hvitved
179bae8791 Merge pull request #19025 from hvitved/rust/rust-analyzer-comparison
Rust: Add telemetry for comparing against `rust-analyzer`
2025-03-19 11:06:27 +01:00
Tom Hvitved
0bf2bfa2f1 Rust: Take depdency renaming into account when extracting the crate graph 2025-03-19 08:39:22 +01:00
Arthur Baars
81f954a42e Rust: add missing QLDocs 2025-03-18 19:16:19 +01:00
Arthur Baars
a3cc695da4 Rust: update integration test output 2025-03-18 19:16:17 +01:00
Arthur Baars
f08d1d10f1 Rust: tainted path implement basic sanitizers 2025-03-18 19:16:13 +01:00
Arthur Baars
ecca805c34 Rust: add Dataflow::BarrierGuard module 2025-03-18 19:13:37 +01:00
Arthur Baars
0fd69eaa43 Add QL test 2025-03-18 19:13:30 +01:00
Arthur Baars
4b5883ab79 Add a bit of modelling 2025-03-18 19:10:05 +01:00
Arthur Baars
8223dded99 Rust: TaintedPath query 2025-03-18 19:10:03 +01:00
Jami
2750d1d889 Merge pull request #18646 from jcogs33/jcogs33/java/directory-chars-path-sanitizer
Java: path sanitizer for `replace`, `replaceAll`, and `matches`
2025-03-18 13:26:01 -04:00
Asger F
1324c11044 Merge pull request #19012 from asgerf/js/api-graph-array-element
JS: Make API graphs use steps from summaries
2025-03-18 18:03:43 +01:00
Michael B. Gale
7a92a72a9a C#: Change RegistryConfig to a record class 2025-03-18 16:45:41 +00:00
Chris Smowton
80d8018d3c Merge pull request #19054 from smowton/smowton/admin/java-change-notes
Add change notes for recent Java changes
2025-03-18 16:17:22 +00:00
Chris Smowton
839e4b2c34 Merge pull request #19047 from smowton/smowton/admin/add-gradle-download-failure-test
Java: add integration test for failed Gradle download
2025-03-18 15:58:11 +00:00
Arthur Baars
f53de135e6 Merge pull request #19024 from github/aibaars/mut-borrow
Rust: SSA: restrict mutablyBorrowed to variables with a 'mut' modifier
2025-03-18 16:57:32 +01:00
Chris Smowton
b507a0d766 Add change notes for recent Java changes 2025-03-18 15:43:46 +00:00
Chris Smowton
834594fe98 Java: add integration test for failed Gradle download 2025-03-18 15:21:08 +00:00
Chris Smowton
f8d1e3f7fe Merge pull request #19019 from smowton/smowton/feature/test-maven-enforcer
Java: Add tests checking the expected Maven version is fetched
2025-03-18 15:08:05 +00:00
Chris Smowton
025c2b82c4 Update test ref autobuilder using '-B' 2025-03-18 14:04:01 +00:00
Chris Smowton
ee82b00d31 Add tests checking the expected Maven version is fetched 2025-03-18 12:33:35 +00:00
Napalys
922a07d01e Added underscore.string clearsContent.
Co-authored-by: Asgerf <asgerf@github.com>
2025-03-18 12:58:19 +01:00
Michael Nebel
2257264d8e Merge pull request #19016 from michaelnebel/csharp/ccr-non-short-circuit
C#: Add `cs/non-short-circuit` to the CCR suite.
2025-03-18 11:25:18 +01:00
Tamas Vajk
2054c869fb C#: Fix buildless fallback restore logic
When dotnet core projects are restored, the dependency manager precisely tracks the referenced package folders. The fallback restore logic ignored the precise usage list and instead considered all subfolders in the restore location to be referenced, even though not all subfolders were added to the dependency list. This meant that packages downloaded in partially successful restores were available on disk, but not added to the dependency list by the normal restore process, and skipped by the fallback restore process. This commit fixes this problem by ensuring that the fallback restore logic doesn't consider all subfolders in the restore location to be referenced, but only those that were added to the dependency list by the normal restore process.
2025-03-18 09:51:39 +01:00
Geoffrey White
37aa479308 Merge pull request #18967 from geoffw0/experimental
Correct modelgenerator exclusion in suite helper
2025-03-18 08:50:32 +00:00
Asger F
53ba588993 JS: Use ArrayElement instead of AnyMember
The use of AnyMember was a workaround until the bugfix in this PR landed.
2025-03-18 09:26:02 +01:00
Paolo Tranquilli
ce0006fd19 Merge branch 'main' into redsun82/swift-count-nodes 2025-03-18 08:50:51 +01:00
Paolo Tranquilli
bed7ab51d4 Merge pull request #19029 from github/reddsun82/swift-ql-test-to-internal
Swift: simplify `codeql` workflow
2025-03-18 08:50:34 +01:00
Paolo Tranquilli
a034444f91 Swift: add change note 2025-03-18 08:36:04 +01:00
Paolo Tranquilli
6e507a5e00 Swift: add summary about total extracted nodes 2025-03-18 08:27:14 +01:00
Jami Cogswell
0d2e9ae469 Java: fix 'matches' false branch 2025-03-17 18:48:44 -04:00
Jami Cogswell
49d37c517d Java: fix replacement char check and add tests 2025-03-17 16:02:13 -04:00
Jami Cogswell
3083360032 Java: remove 'complementary' from qldocs 2025-03-17 15:24:31 -04:00
Jami Cogswell
b9f642f4aa Java: condense '.' matching 2025-03-17 15:20:14 -04:00
Jami Cogswell
2f6696e8a8 Java: add test 2025-03-17 15:13:33 -04:00
Jami Cogswell
9d6a10b601 Java: rename 'isSingleReplaceAll' and 'isDoubleReplaceOrReplaceAll' 2025-03-17 15:07:10 -04:00
Napalys
8b431dc0e7 Added change note. 2025-03-17 19:10:12 +01:00
Napalys
2c7562d875 Removed value from modeling its return value as Wrapper class, since it return simple string. 2025-03-17 19:08:43 +01:00
Napalys
d8e6d76b0e Added modeling for tap function. 2025-03-17 19:07:02 +01:00
Napalys
eb18c3ce24 Added test case for tap. 2025-03-17 18:36:23 +01:00
Napalys
fc6b779a4b Added modeling for aliases. 2025-03-17 18:33:14 +01:00
Napalys
dcc1e88d08 Added test cases for aliases. 2025-03-17 18:23:46 +01:00
Napalys
3a83c8d1fd Added modeling for extra chaining function from underscore.string. 2025-03-17 18:06:26 +01:00
Napalys
cccd863a96 Added test for extra chaining function for underscore.string. 2025-03-17 18:05:49 +01:00
Chris Smowton
36869efeb5 Merge pull request #19043 from github/post-release-prep/codeql-cli-2.20.7
Post-release preparation for codeql-cli-2.20.7
2025-03-17 15:32:23 +00:00
Esben Sparre Andreasen
f38cc7c33b Merge pull request #19041 from github/oscarsj/update-codespaces-python
Add python and npm to Dockerfile.codespaces
2025-03-17 16:16:34 +01:00
Óscar San José
319b781ce3 Add reference to official codeql system requirements doc 2025-03-17 15:57:32 +01:00
Michael B. Gale
51874b8ef0 Apply suggestions from code review
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2025-03-17 14:24:04 +00:00
Simon Friis Vindum
7a18da82fa Merge pull request #19000 from paldepind/rust-cleartext-transmission
Rust: Add cleartext transmission query
2025-03-17 14:56:57 +01:00
Napalys
ca9ae8a58d Added chaining modeling for underscore.string package. 2025-03-17 14:46:07 +01:00
Napalys
25c6fb59df Added chaining tests for underscore.string package. 2025-03-17 14:46:06 +01:00
Napalys
b59b9c86e4 Added modeling underscore.string of function which contain multiple sources points. 2025-03-17 14:46:01 +01:00
Simon Friis Vindum
f90d53ac46 Merge pull request #19038 from paldepind/rust-type-inference-tweaks
Rust: Small type inference tweaks
2025-03-17 14:09:08 +01:00
github-actions[bot]
51cdeefafb Post-release preparation for codeql-cli-2.20.7 2025-03-17 13:00:41 +00:00
Asger F
1516029cf5 JS: Avoid generating ArrayElement edges for extend-like patterns 2025-03-17 13:48:27 +01:00
Asger F
125e732c4c JS: Fix bad join order 2025-03-17 13:44:33 +01:00
Chris Smowton
0ac0dad49d Merge pull request #19042 from github/release-prep/2.20.7
Release preparation for version 2.20.7
2025-03-17 12:21:27 +00:00
Simon Friis Vindum
81b28df089 Merge branch 'main' into rust-type-inference-tweaks 2025-03-17 13:18:45 +01:00
github-actions[bot]
2d64a618e6 Release preparation for version 2.20.7 2025-03-17 12:15:54 +00:00
Napalys
77e1e171e1 Added test cases underscore.string with multiple sources. 2025-03-17 12:58:53 +01:00
Napalys
6b105b2f49 Added modeling underscore.string array to string functions. 2025-03-17 12:55:53 +01:00
Napalys
cd40b6f125 Added test cases underscore.string array to string. 2025-03-17 12:53:53 +01:00
Napalys
30623cd953 Added modeling of underscore.string for str to array. 2025-03-17 12:52:56 +01:00
Napalys
c256b9c336 Added underscore.string test cases for str to array. 2025-03-17 12:51:48 +01:00
Napalys
9bca863e38 Added modeling of underscore.string string to string functions. 2025-03-17 12:50:41 +01:00
Napalys
e8b233f086 Added test cases underscore.string string to string. 2025-03-17 12:48:41 +01:00
Simon Friis Vindum
e9ca43ae94 Merge pull request #19039 from paldepind/rust-cfg-uppercase
Rust: Assume in the CFG that lowercase identifiers are in fact identifiers
2025-03-17 12:40:56 +01:00
Óscar San José
258794a57e Add python and npm to Dockerfile.codespaces 2025-03-17 12:37:47 +01:00
Paolo Tranquilli
a2851f753c Merge pull request #18968 from hvitved/rust/cache-to-string
Rust/Swift: Cache `Element.toString`
2025-03-17 12:08:27 +01:00
Tom Hvitved
0e3907b2a8 Merge pull request #19035 from hvitved/rust/type-inference-path-limit
Rust: Limit `TypePath`s to at most length 10
2025-03-17 12:01:31 +01:00
Jeroen Ketema
43a03de195 Merge pull request #19030 from MathiasVP/atl-namespace-fix
C++: Fix ATL models' namespace column
2025-03-17 11:28:16 +01:00
Napalys Klicius
749a0560b4 Merge pull request #19027 from Napalys/js/escape
JS: Add support for `escape`
2025-03-17 10:48:44 +01:00
Paolo Tranquilli
8ca33a907c Merge branch 'main' into reddsun82/swift-ql-test-to-internal 2025-03-17 10:42:39 +01:00
Napalys Klicius
478e32cbe5 Update javascript/ql/lib/semmle/javascript/security/dataflow/TaintedPathCustomizations.qll
Co-authored-by: Asger F <asgerf@github.com>
2025-03-17 10:17:39 +01:00
Napalys Klicius
9134f79fd2 Merge pull request #18984 from Napalys/js/extractor_error_handler
JS: Extractor handle error instead of exiting.
2025-03-17 10:11:26 +01:00
Simon Friis Vindum
17d6cb626d Rust: Assume in the CFG that lowercase identifiers are in fact identifiers 2025-03-17 08:40:02 +01:00
Simon Friis Vindum
0bf826559c Rust: Apply qhelp suggestions from review
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-03-17 07:56:37 +01:00
Simon Friis Vindum
75355e9e53 Rust: Revert conjunct reorder 2025-03-17 07:46:54 +01:00
Simon Friis Vindum
1b7f4e4d4b Rust: Add type inference tests and rename modules 2025-03-17 07:41:47 +01:00
Simon Friis Vindum
72346cc392 Merge pull request #19004 from paldepind/rust-data-flow-split
Rust: Extract data flow node and content into separate files
2025-03-17 07:02:35 +01:00
Tom Hvitved
dfc39272b4 Rust: Limit TypePaths to at most length 10 2025-03-16 20:35:16 +01:00
Simon Friis Vindum
4c3768f771 Rust: Add comments for type inference 2025-03-15 13:51:15 +01:00
Simon Friis Vindum
422d9e1f93 Rust: Minor refactoring of type inference 2025-03-15 13:47:08 +01:00
Simon Friis Vindum
210b4db908 Rust: Encapsulate type parameter decoding/encoding 2025-03-15 13:41:46 +01:00
Aditya Sharad
996bc47ae8 Merge pull request #19032 from adityasharad/docs/remove-semmle-training-slide-template
Docs: Remove old CodeQL training slide template
2025-03-15 06:17:42 +05:30
Aditya Sharad
9e8a3145ac Docs: Remove old CodeQL training slide template
The slide contents (images and RST) remain.
Remove the HTML/JS/CSS templates since we're not maintaining them,
and this creates unnecessary burden keeping the JS libraries up to date
with security patches.
2025-03-14 15:16:59 -07:00
Asger F
cd3909245d JS: Bugfix in Array constructor summary 2025-03-14 23:08:22 +01:00
Asger F
fe1bdf2468 JS: Update a test 2025-03-14 23:08:20 +01:00
Asger F
ab74898bbb JS: Deprecate getUnknownMember() and replace its uses with getArrayElement()
Although they mean slightly different things, every single call site
of getUnknownMember() just used it as a way to get array elements.

Since there is no known use-case for the original meaning of
getUnknownMember() I am deprecating it for now.
2025-03-14 23:08:19 +01:00
Asger F
4c1c0b79a6 JS: Make API-graphs use Content internally, and use steps from flow summaries 2025-03-14 23:08:16 +01:00
Asger F
cc95c77cbc JS: Add failing test 2025-03-14 23:04:10 +01:00
Owen Mansel-Chan
f0af5af015 Merge pull request #19015 from owen-mc/java/toctou-sync-methods
Java: Fix FP in "Time-of-check time-of-use race condition" (`java/toctou-race-condition`)
2025-03-14 21:35:51 +00:00
Mathias Vorreiter Pedersen
a035c9b4d1 C++: Also update source-sink tests. 2025-03-14 20:04:45 +00:00
Tom Hvitved
a56493cbbc Merge pull request #19028 from hvitved/rust/crate-locatable 2025-03-14 20:27:33 +01:00
Mathias Vorreiter Pedersen
b7d1c56372 C++: Add change note. 2025-03-14 18:53:09 +00:00
Mathias Vorreiter Pedersen
636150ea4f C++: Adjust tests and accept test changes. 2025-03-14 18:43:33 +00:00
Mathias Vorreiter Pedersen
78697903fc C++: Move ATL models to ATL namespace. 2025-03-14 18:43:06 +00:00
Aditya Sharad
c5b35b0976 Merge pull request #19022 from adityasharad/actions/paths-ignore-test-dir
Code scanning config: Exclude actions test directory
2025-03-14 23:44:16 +05:30
Taus
ef9b229023 Python: Actually get rid of points-to
Also adds `quality` to the list of tags for the query.
2025-03-14 16:51:48 +00:00
Taus
c9e9deb41e Python: Adapt to a points-to-less world
Technically we still depend on points-to in that we still mention
`PythonFunctionValue` and `ClassValue` in the query. However, we
immediately move to working with the corresponding `Function` and
`Class` AST nodes, and so we're not really using points-to. (The reason
for doing things this way is that otherwise the `.toString()` for all of
the alerts would change, which would make the diff hard to interpret.
This way, it should be fairly simple to see which changes are actually
relevant.)

We do lose some precision when moving away from points-to, and this is
reflected in the changes in the `.expected` file. In particular we no
longer do complicated tracking of values, but rather look at the
syntactic structure of the classes in question. This causes us to lose
out on some results where a special method is defined elsewhere, and
causes a single FP where a special method initially has the wrong
signature, but is subsequently overwritten with a function with the
correct signature.

We also lose out on results having to do with default values, as these
are now disabled.

Finally, it was necessary to add special handling of methods marked with
the `staticmethod` decorator, as these expect to receive fewer
arguments. This was motivated by a MRVA run, where e.g. sympy showed a
lot of examples along the lines of
```
@staticmethod
def __abs__():
   return ...
```
2025-03-14 16:49:33 +00:00
Taus
bf688b88a9 Python: Add missing special methods 2025-03-14 16:29:54 +00:00
Paolo Tranquilli
622aa7c170 Swift: simplify codeql workflow
* remove ql test running and upgrade/downgrade scripts checking (now
  done internally)
* removed all the bazel caching stuff, that never really worked any way
* moved `misc/codegen` generic testing to a separate workflow, as it's
  not swift specific any more
* reinstanted checking that the extractor can be built locally from
  the `codeql` repo.
2025-03-14 16:13:58 +01:00
Napalys
c93be70053 Rename validation methods for type expressions and added recursive call for type validation.
Co-authored-by: Asgerf <asgerf@github.com>
2025-03-14 14:58:27 +01:00
Napalys
4a691b778b Added escape as UriEncodingSanitizer 2025-03-14 14:53:21 +01:00
Napalys
37e02e4261 Added escape as StringManipulationTaintStep. 2025-03-14 14:49:45 +01:00
Tom Hvitved
89f6245772 Rust: Add telemetry for comparing against rust-analyzer 2025-03-14 14:48:15 +01:00
Aditya Sharad
28f40f1d45 Merge pull request #19023 from adityasharad/actions/env-var-query-names
Actions: Fix typos in query names for env var injection
2025-03-14 19:11:11 +05:30
Napalys
4c77ee2f4f Added change note. 2025-03-14 14:27:14 +01:00
Napalys
1468e81c55 Ensure interface extends valid expr. 2025-03-14 13:41:37 +01:00
Simon Friis Vindum
5a3bf90b1f Rust: Add qldoc comments 2025-03-14 13:31:03 +01:00
Simon Friis Vindum
a96a5fc737 Rust: Address PR comments 2025-03-14 13:24:16 +01:00
Tom Hvitved
0dd59cbb25 Rust: Make Crate a sub class of Locatable 2025-03-14 13:18:02 +01:00
Tamas Vajk
d4955a0747 Fix failing test and add new test case 2025-03-14 13:07:56 +01:00
Owen Mansel-Chan
7702e9da7d Address review comments 2025-03-14 11:44:01 +00:00
Owen Mansel-Chan
5c7588822d Fix test output 2025-03-14 11:44:00 +00:00
Tom Hvitved
dcd01befc2 Swift: Cache Element.toString 2025-03-14 11:58:42 +01:00
Tom Hvitved
d1ad65ae09 Rust: Cache Element.toString 2025-03-14 11:58:38 +01:00
Napalys
dc262236f4 Enhance taint tracking by including escape and unescape in TaintedPath customizations. 2025-03-14 11:43:22 +01:00
Napalys
c4b717b86c Added test case for escape. 2025-03-14 11:40:23 +01:00
Tamas Vajk
9662b47464 Move likely test method logic to library 2025-03-14 11:36:15 +01:00
Tamas Vajk
05502bc74e Change severity and precision 2025-03-14 11:36:14 +01:00
Tamás Vajk
30ff68dc71 Update java/ql/src/Language Abuse/EmptyMethod.md
Co-authored-by: Jami <57204504+jcogs33@users.noreply.github.com>
2025-03-14 11:36:14 +01:00
Tamas Vajk
2538ba82cc Revert message 2025-03-14 11:36:13 +01:00
Tamás Vajk
050ef405c1 Improve query help
Co-authored-by: Jami <57204504+jcogs33@users.noreply.github.com>
2025-03-14 11:36:12 +01:00
Tamas Vajk
24f129c12c Fix typo in QL help 2025-03-14 11:36:12 +01:00
Tamas Vajk
17aa3fc428 Add compliant/non-compliant comments back to the test file 2025-03-14 11:36:11 +01:00
Tamas Vajk
dea081b385 Add quality and cwe tag 2025-03-14 11:36:10 +01:00
Tamas Vajk
3be7044c6e Fix references in query help file 2025-03-14 11:36:10 +01:00
Tamas Vajk
3d4fcefe70 Do not accept empty default methods 2025-03-14 11:36:09 +01:00
Tamas Vajk
77400778ea Add change note 2025-03-14 11:36:08 +01:00
Tamas Vajk
3d2a72341b Improve ql code quality 2025-03-14 11:36:08 +01:00
Tamas Vajk
6512ed9429 Adjust alert message 2025-03-14 11:36:07 +01:00
Tamas Vajk
7476f19b09 Adjust query help 2025-03-14 11:36:06 +01:00
Tamas Vajk
349f48982a Make query more accepting 2025-03-14 11:36:06 +01:00
Tamas Vajk
4bf26afca0 Add more test cases 2025-03-14 11:36:05 +01:00
Tamas Vajk
614bee9e20 Use inline test expectations 2025-03-14 11:36:04 +01:00
Tamas Vajk
a8063e1cd2 Adjust query name 2025-03-14 11:36:03 +01:00
Tamas Vajk
f7f8b47f12 Java: Add initial version of empty method query 2025-03-14 11:36:03 +01:00
Arthur Baars
1e94245332 Rust: update expected output 2025-03-14 11:25:41 +01:00
Arthur Baars
56574a15b7 Rust: SSA: restrict mutablyBorrowed to variables with a 'mut' modifier 2025-03-14 11:25:35 +01:00
Paolo Tranquilli
87f29ad3a8 Merge branch 'main' into redsun82/rules_rust 2025-03-14 11:25:12 +01:00
Michael Nebel
b3a1ff1fc3 C#: Add cs/non-short-circuit to the CCR suite. 2025-03-14 10:52:25 +01:00
Simon Friis Vindum
4dbfda59cf Merge branch 'main' into rust-data-flow-split 2025-03-14 09:58:46 +01:00
Aditya Sharad
956b5bf6d6 Actions: Fix typos in query names for env var injection
This will reflect in the UI titles of existing and new alerts
once shipped but should not churn any existing alerts.
2025-03-13 17:02:04 -07:00
Aditya Sharad
c534f89e93 Code scanning config: Exclude actions test directory
These are test cases for the GitHub Actions analysis.
Exclude them when running code scanning against this repo,
to avoid noisy alerts.

Test workflow files in this directory are safe from
execution, because Actions only executes workflows
that live directly in the .github/workflows
top-level directory.

`action.yml` files in this directory can in theory
be executed as a step in a workflow; for now exclude them.
2025-03-13 13:30:54 -07:00
Jon Janego
de5d3b6263 Update query-metadata-style-guide.md 2025-03-13 12:42:51 -05:00
Jon Janego
6c28be9827 Update query-metadata-style-guide.md
initial commit of changes starting to add quality tagging standards
2025-03-13 11:49:48 -05:00
Simon Friis Vindum
fb718660d9 Rust: Generate more sinks and update query description 2025-03-13 17:35:32 +01:00
Owen Mansel-Chan
6ca9a1ff9a Add change note 2025-03-13 15:05:32 +00:00
Owen Mansel-Chan
a8e993c942 Fix FP for always-locked fields 2025-03-13 15:03:32 +00:00
Owen Mansel-Chan
dc2cbf7402 Add tests for always-locked fields 2025-03-13 15:02:26 +00:00
Simon Friis Vindum
1ae28c7907 Merge branch 'main' into rust-cleartext-transmission 2025-03-13 15:01:11 +01:00
Paolo Tranquilli
179021ea69 Upgrade rules_rust to 0.58.0 2025-03-13 14:47:34 +01:00
Owen Mansel-Chan
aed51644ba Convert to inline expectations test 2025-03-13 12:55:02 +00:00
Taus
f3353dc3fb Python: Ignore special methods with placeholder bodies
Instances of this include
- Bodies that contain just a docstring (common in Zope interfaces)
- Bodies that do nothing but raise an exception.
2025-03-13 12:18:43 +00:00
Taus
862b89207d Python: Disable "usused default" logic
Adds a new boolean parameter `is_unused_default` that indicates whether
the given result is one where a parameter to a special method has a
default value (which will never be used when invoked in the normal way).
These results are somewhat less useful (because the special method
_might_ be invoked directly, in which case the default value would still
be relevant), but it seemed like a shame to simply remove the code, so
instead I opted to disable it in this way.
2025-03-13 12:18:43 +00:00
Taus
24b2eb24c1 Python: Refactor special method query
Moves a bunch of `owner.declaredAttribute(name) = f` instances to the
top level, in the process greatly cleaning up the code. The behaviour
should be the unchanged.

Having done this, there's only one place where we depend on points-to,
and that's in the remaining `declaredAttribute` call. This should
greatly simplify the move away from points to.
2025-03-13 12:18:43 +00:00
Simon Friis Vindum
3c644144b1 Rust: Extract data flow node and content into separate files 2025-03-13 11:22:04 +01:00
Simon Friis Vindum
4de69c70a8 Rust: Add cleartext transmission query 2025-03-13 08:45:36 +01:00
Geoffrey White
5c394a9371 Correct modelgenerator exclusion for the security-experimental-selectors.yml suite helper. 2025-03-11 08:53:47 +00:00
Jami Cogswell
41aeb874f1 Java: add change note 2025-03-10 18:56:13 -04:00
Jami Cogswell
76433a31f7 Java: generalize sanitizer and add tests 2025-03-10 18:56:01 -04:00
Jami Cogswell
ab3690f666 Java: initial sanitizer 2025-03-10 18:55:56 -04:00
Jami Cogswell
94080a6e47 Java: initial tests 2025-03-10 18:55:54 -04:00
Owen Mansel-Chan
88e96829fb Apply suggestions from code review 2025-03-07 23:11:01 +00:00
Owen Mansel-Chan
166d5230f7 Apply suggestions from code review 2025-03-07 22:14:22 +00:00
Aditya Sharad
52dac47d68 Merge pull request #18953 from github/jonjanego-patch-1-more-escaping
Update codeql-cli-2.20.4.rst
2025-03-07 23:01:18 +05:30
Jon Janego
b9ec58ba73 Update codeql-cli-2.20.4.rst 2025-03-07 09:27:47 -06:00
Florin Coada
c93f671f7b Merge pull request #18951 from github/coadaflorin-patch-for-escaping
Update codeql-cli-2.20.4.rst
2025-03-07 15:24:02 +00:00
Florin Coada
7564255542 Update codeql-cli-2.20.4.rst 2025-03-07 15:16:52 +00:00
Jon Janego
468c12e656 Merge pull request #18944 from github/changedocs-2.20.6
Changedocs for 2.20.6
2025-03-06 17:31:59 -06:00
Jon Janego
b742ed21db Merge branch 'rc/3.17' into changedocs-2.20.6 2025-03-06 16:51:25 -06:00
Jon Janego
65d5e527c0 Apply suggestions from code review
Co-authored-by: Aditya Sharad <6874315+adityasharad@users.noreply.github.com>
2025-03-06 16:46:57 -06:00
Jon Janego
da7b9b7c20 rearranging golang 1.24 support 2025-03-06 15:32:48 -06:00
Jon Janego
3652a45a97 Update codeql-cli-2.20.4.rst 2025-03-06 15:10:42 -06:00
Jon Janego
1385de223f Update codeql-cli-2.20.4.rst 2025-03-06 15:10:11 -06:00
Jon Janego
2b818e3a4f Update codeql-cli-2.19.4.rst 2025-03-06 15:04:55 -06:00
Jon Janego
fc6794f6df adding 2.20.6 sitedocs 2025-03-06 14:12:54 -06:00
Michael B. Gale
16e84d0ad0 Merge pull request #18929 from github/mbg/go/filter-more-vendor-dirs
Go: Support more dependency managers in `IsGolangVendorDirectory`
2025-03-06 16:10:18 +00:00
Michael B. Gale
b872c60e1c Go: Support more dependency managers in IsGolangVendorDirectory 2025-03-06 15:40:44 +00:00
Ed Minnix
ca14c5722d Add likely XSS case to integration tests 2025-03-05 12:40:26 -05:00
Ed Minnix
e2f0a61f89 Add XSS test to integration tests 2025-03-05 12:40:02 -05:00
Ed Minnix
a0fe7d6a1a Remove unused line 2025-03-05 11:04:41 -05:00
Ed Minnix
133c6fa400 Fix test expectations 2025-03-05 01:13:31 -05:00
Ed Minnix
22e958b245 Fix jump node by using associated property 2025-03-05 01:13:29 -05:00
Ed Minnix
8ea6974868 XSS qlref 2025-03-05 01:13:27 -05:00
Ed Minnix
97e00ae053 Fix formatting 2025-03-05 01:13:26 -05:00
Ed Minnix
824b182ca5 fixup! Add Name and NameList test classes 2025-03-05 01:13:12 -05:00
Ed Minnix
17da291910 fixup! Component parameter passing step 2025-03-05 01:13:09 -05:00
Ed Minnix
0463f48565 Add Name and NameList test classes 2025-03-05 01:13:03 -05:00
Ed Minnix
48b90b28c7 Component parameter passing step 2025-03-05 01:13:00 -05:00
Chuan-kai Lin
c7dc8a364c Merge pull request #18925 from github/mergeback-2.20.6
Mergeback codeql-cli-2.20.6 to rc/3.17
2025-03-04 08:36:09 -08:00
Chuan-kai Lin
dbffe91a20 Merge pull request #18917 from github/smowton/admin/jdk-24-2.20.6
Update supported Java version
2025-03-04 07:10:10 -08:00
Chris Smowton
fba47877c7 Update supported Java version 2025-03-04 10:06:20 +00:00
Chuan-kai Lin
df42ff6253 Merge pull request #18912 from github/post-release-prep/codeql-cli-2.20.6
Post-release preparation for codeql-cli-2.20.6
2025-03-03 12:45:35 -08:00
Ed Minnix
e6198baccb [change-note] couchbase source models 2025-03-03 13:28:37 -05:00
Ed Minnix
04d9c941aa [test] Add couchbase database model tests 2025-03-03 13:26:27 -05:00
Ed Minnix
19147eec40 Add couchbase models 2025-03-03 13:25:21 -05:00
github-actions[bot]
58f355ae5a Post-release preparation for codeql-cli-2.20.6 2025-03-03 18:18:15 +00:00
Chuan-kai Lin
c1dca1038a Merge pull request #18911 from github/release-prep/2.20.6
Release preparation for version 2.20.6
2025-03-03 09:22:19 -08:00
Chuan-kai Lin
17acb31f65 JS: Fix changelog formatting 2025-03-03 09:19:01 -08:00
github-actions[bot]
fa850cccb1 Release preparation for version 2.20.6 2025-03-03 17:13:19 +00:00
2361 changed files with 150265 additions and 33026 deletions

View File

@@ -37,5 +37,6 @@ build --java_language_version=17
build --tool_java_language_version=17
build --tool_java_runtime_version=remotejdk_17
build --java_runtime_version=remotejdk_17
build --@rules_python//python/config_settings:python_version=3.12
try-import %workspace%/local.bazelrc

View File

@@ -8,3 +8,5 @@ common --registry=https://bcr.bazel.build
# its implementation packages without providing any code itself.
# We either can depend on internal implementation details, or turn of strict deps.
common --@rules_dotnet//dotnet/settings:strict_deps=false
build --@rules_python//python/config_settings:python_version=3.12

View File

@@ -1 +1 @@
8.0.0
8.1.1

View File

@@ -0,0 +1,7 @@
FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04
USER root
# Install needed packages according to https://codeql.github.com/docs/codeql-overview/system-requirements/
# most come from the base image, but we need to install some additional ones
RUN DEBIAN_FRONTEND=noninteractive apt update && apt install -y sudo man-db python3.12 npm unminimize
RUN yes | unminimize

View File

@@ -1,5 +1,4 @@
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04",
"extensions": [
"rust-lang.rust-analyzer",
"bungcip.better-toml",
@@ -8,6 +7,10 @@
"ms-vscode.test-adapter-converter",
"slevesque.vscode-zipexplorer"
],
"build": {
// Path is relative to the devcontainer.json file.
"dockerfile": "Dockerfile.codespaces"
},
"settings": {
"files.watcherExclude": {
"**/target/**": true

View File

@@ -4,6 +4,7 @@ queries:
- uses: security-and-quality
paths-ignore:
- '/actions/ql/test'
- '/cpp/'
- '/java/'
- '/python/'

View File

@@ -17,7 +17,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, macos-13, windows-2019]
os: [ubuntu-22.04, macos-13, windows-2019]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4

34
.github/workflows/codegen.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: Codegen
on:
pull_request:
paths:
- "misc/bazel/**"
- "misc/codegen/**"
- "*.bazel*"
- .github/workflows/codegen.yml
- .pre-commit-config.yaml
branches:
- main
- rc/*
- codeql-cli-*
permissions:
contents: read
jobs:
codegen:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version-file: 'misc/codegen/.python-version'
- uses: pre-commit/action@646c83fcd040023954eafda54b4db0192ce70507
name: Check that python code is properly formatted
with:
extra_args: autopep8 --all-files
- name: Run codegen tests
shell: bash
run: |
bazel test //misc/codegen/...

22
.github/workflows/go-tests-rtjo.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: "Go: Run RTJO Tests"
on:
pull_request:
types:
- labeled
permissions:
contents: read
jobs:
test-linux:
if: "github.repository_owner == 'github' && github.event.label.name == 'Run: RTJO Language Tests'"
name: RTJO Test Linux (Ubuntu)
runs-on: ubuntu-latest-xl
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Run tests
uses: ./go/actions/test
with:
run-code-checks: true
dynamic-join-order-mode: all

40
.github/workflows/ruby-qltest-rtjo.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: "Ruby: Run RTJO Language Tests"
on:
pull_request:
types:
- opened
- synchronize
- reopened
- labeled
env:
CARGO_TERM_COLOR: always
defaults:
run:
working-directory: ruby
permissions:
contents: read
jobs:
qltest-rtjo:
if: "github.repository_owner == 'github' && github.event.label.name == 'Run: RTJO Language Tests'"
runs-on: ubuntu-latest-xl
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/fetch-codeql
- uses: ./ruby/actions/create-extractor-pack
- name: Cache compilation cache
id: query-cache
uses: ./.github/actions/cache-query-compilation
with:
key: ruby-qltest
- name: Run QL tests
run: |
codeql test run --dynamic-join-order-mode=all --threads=0 --ram 50000 --search-path "${{ github.workspace }}" --check-databases --check-undefined-labels --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition --consistency-queries ql/consistency-queries ql/test --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}"
env:
GITHUB_TOKEN: ${{ github.token }}

View File

@@ -18,45 +18,39 @@ on:
- main
- rc/*
- codeql-cli-*
push:
paths:
- "swift/**"
- "misc/bazel/**"
- "misc/codegen/**"
- "shared/**"
- "*.bazel*"
- .github/workflows/swift.yml
- .github/actions/**
- codeql-workspace.yml
- .pre-commit-config.yaml
- "!**/*.md"
- "!**/*.qhelp"
branches:
- main
- rc/*
- codeql-cli-*
permissions:
contents: read
defaults:
run:
shell: bash
working-directory: swift
jobs:
# not using a matrix as you cannot depend on a specific job in a matrix, and we want to start linux checks
# without waiting for the macOS build
build-and-test-macos:
build-and-test:
if: github.repository_owner == 'github'
runs-on: macos-13-xlarge
strategy:
matrix:
runner: [ubuntu-latest, macos-13-xlarge]
fail-fast: false
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- uses: ./swift/actions/build-and-test
qltests-macos:
if: ${{ github.repository_owner == 'github' && github.event_name == 'pull_request' }}
needs: build-and-test-macos
runs-on: macos-13-xlarge
steps:
- uses: actions/checkout@v4
- uses: ./swift/actions/run-ql-tests
- name: Setup (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y uuid-dev zlib1g-dev
- name: Build Swift extractor
shell: bash
run: |
bazel run :install
- name: Run Swift tests
shell: bash
run: |
bazel test ... --test_tag_filters=-override --test_output=errors
clang-format:
if : ${{ github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -65,18 +59,9 @@ jobs:
with:
extra_args: clang-format --all-files
codegen:
if : ${{ github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bazelbuild/setup-bazelisk@v2
- uses: actions/setup-python@v4
with:
python-version-file: 'swift/.python-version'
- uses: pre-commit/action@646c83fcd040023954eafda54b4db0192ce70507
name: Check that python code is properly formatted
with:
extra_args: autopep8 --all-files
- uses: ./.github/actions/fetch-codeql
- uses: pre-commit/action@646c83fcd040023954eafda54b4db0192ce70507
name: Check that QL generated code was checked in
@@ -84,22 +69,14 @@ jobs:
extra_args: swift-codegen --all-files
- name: Generate C++ files
run: |
bazel run //swift/codegen:codegen -- --generate=trap,cpp --cpp-output=$PWD/generated-cpp-files
bazel run codegen -- --generate=trap,cpp --cpp-output=$PWD/generated-cpp-files
- uses: actions/upload-artifact@v4
with:
name: swift-generated-cpp-files
path: generated-cpp-files/**
database-upgrade-scripts:
if : ${{ github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/fetch-codeql
- uses: ./swift/actions/database-upgrade-scripts
check-no-override:
if : github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- shell: bash
run: bazel test //swift/... --test_tag_filters=override --test_output=errors
- name: Check that no override is present in load.bzl
run: bazel test ... --test_tag_filters=override --test_output=errors

View File

@@ -72,7 +72,7 @@ repos:
- id: rust-codegen
name: Run Rust checked in code generation
files: ^misc/codegen/|^rust/(prefix\.dbscheme|schema/|codegen/|.*/generated/|ql/lib/(rust\.dbscheme$|codeql/rust/elements)|\.generated.list)
files: ^misc/codegen/|^rust/(prefix\.dbscheme|schema/|codegen/|.*/generated/|ql/lib/(rust\.dbscheme$|codeql/rust/elements)|\.generated.list|ast-generator/)
language: system
entry: bazel run //rust/codegen -- --quiet
pass_filenames: false

View File

@@ -8,12 +8,16 @@
/javascript/ @github/codeql-javascript
/python/ @github/codeql-python
/ruby/ @github/codeql-ruby
/rust/ @github/codeql-rust
/swift/ @github/codeql-swift
/misc/codegen/ @github/codeql-swift
/java/kotlin-extractor/ @github/codeql-kotlin
/java/ql/test-kotlin1/ @github/codeql-kotlin
/java/ql/test-kotlin2/ @github/codeql-kotlin
# Experimental CodeQL cryptography
**/experimental/quantum/ @github/ps-codeql
# CodeQL tools and associated docs
/docs/codeql/codeql-cli/ @github/codeql-cli-reviewers
/docs/codeql/codeql-for-visual-studio-code/ @github/codeql-vscode-reviewers
@@ -38,6 +42,7 @@ MODULE.bazel @github/codeql-ci-reviewers
/.github/workflows/go-* @github/codeql-go
/.github/workflows/ql-for-ql-* @github/codeql-ql-for-ql-reviewers
/.github/workflows/ruby-* @github/codeql-ruby
/.github/workflows/rust.yml @github/codeql-rust
/.github/workflows/swift.yml @github/codeql-swift
# Misc

604
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -14,4 +14,4 @@ members = [
[patch.crates-io]
# patch for build script bug preventing bazel build
# see https://github.com/rust-lang/rustc_apfloat/pull/17
rustc_apfloat = { git = "https://github.com/redsun82/rustc_apfloat.git", rev = "096d585100636bc2e9f09d7eefec38c5b334d47b" }
rustc_apfloat = { git = "https://github.com/redsun82/rustc_apfloat.git", rev = "32968f16ef1b082243f9bf43a3fbd65c381b3e27" }

View File

@@ -28,7 +28,7 @@ bazel_dep(name = "rules_kotlin", version = "2.0.0-codeql.1")
bazel_dep(name = "gazelle", version = "0.40.0")
bazel_dep(name = "rules_dotnet", version = "0.17.4")
bazel_dep(name = "googletest", version = "1.14.0.bcr.1")
bazel_dep(name = "rules_rust", version = "0.57.1")
bazel_dep(name = "rules_rust", version = "0.58.0")
bazel_dep(name = "zstd", version = "1.5.5.bcr.1")
bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True)
@@ -71,13 +71,13 @@ use_repo(
tree_sitter_extractors_deps = use_extension("//misc/bazel/3rdparty:tree_sitter_extractors_extension.bzl", "r")
use_repo(
tree_sitter_extractors_deps,
"vendor_ts__anyhow-1.0.96",
"vendor_ts__anyhow-1.0.97",
"vendor_ts__argfile-0.2.1",
"vendor_ts__chalk-ir-0.99.0",
"vendor_ts__chrono-0.4.39",
"vendor_ts__clap-4.5.31",
"vendor_ts__chalk-ir-0.100.0",
"vendor_ts__chrono-0.4.40",
"vendor_ts__clap-4.5.35",
"vendor_ts__dunce-1.0.5",
"vendor_ts__either-1.14.0",
"vendor_ts__either-1.15.0",
"vendor_ts__encoding-0.2.33",
"vendor_ts__figment-0.10.19",
"vendor_ts__flate2-1.1.0",
@@ -88,31 +88,31 @@ use_repo(
"vendor_ts__mustache-0.9.0",
"vendor_ts__num-traits-0.2.19",
"vendor_ts__num_cpus-1.16.0",
"vendor_ts__proc-macro2-1.0.93",
"vendor_ts__quote-1.0.38",
"vendor_ts__ra_ap_base_db-0.0.266",
"vendor_ts__ra_ap_cfg-0.0.266",
"vendor_ts__ra_ap_hir-0.0.266",
"vendor_ts__ra_ap_hir_def-0.0.266",
"vendor_ts__ra_ap_hir_expand-0.0.266",
"vendor_ts__ra_ap_hir_ty-0.0.266",
"vendor_ts__ra_ap_ide_db-0.0.266",
"vendor_ts__ra_ap_intern-0.0.266",
"vendor_ts__ra_ap_load-cargo-0.0.266",
"vendor_ts__ra_ap_parser-0.0.266",
"vendor_ts__ra_ap_paths-0.0.266",
"vendor_ts__ra_ap_project_model-0.0.266",
"vendor_ts__ra_ap_span-0.0.266",
"vendor_ts__ra_ap_stdx-0.0.266",
"vendor_ts__ra_ap_syntax-0.0.266",
"vendor_ts__ra_ap_vfs-0.0.266",
"vendor_ts__proc-macro2-1.0.94",
"vendor_ts__quote-1.0.40",
"vendor_ts__ra_ap_base_db-0.0.273",
"vendor_ts__ra_ap_cfg-0.0.273",
"vendor_ts__ra_ap_hir-0.0.273",
"vendor_ts__ra_ap_hir_def-0.0.273",
"vendor_ts__ra_ap_hir_expand-0.0.273",
"vendor_ts__ra_ap_hir_ty-0.0.273",
"vendor_ts__ra_ap_ide_db-0.0.273",
"vendor_ts__ra_ap_intern-0.0.273",
"vendor_ts__ra_ap_load-cargo-0.0.273",
"vendor_ts__ra_ap_parser-0.0.273",
"vendor_ts__ra_ap_paths-0.0.273",
"vendor_ts__ra_ap_project_model-0.0.273",
"vendor_ts__ra_ap_span-0.0.273",
"vendor_ts__ra_ap_stdx-0.0.273",
"vendor_ts__ra_ap_syntax-0.0.273",
"vendor_ts__ra_ap_vfs-0.0.273",
"vendor_ts__rand-0.9.0",
"vendor_ts__rayon-1.10.0",
"vendor_ts__regex-1.11.1",
"vendor_ts__serde-1.0.218",
"vendor_ts__serde_json-1.0.139",
"vendor_ts__serde-1.0.219",
"vendor_ts__serde_json-1.0.140",
"vendor_ts__serde_with-3.12.0",
"vendor_ts__syn-2.0.98",
"vendor_ts__syn-2.0.100",
"vendor_ts__toml-0.8.20",
"vendor_ts__tracing-0.1.41",
"vendor_ts__tracing-flame-0.2.0",
@@ -155,7 +155,7 @@ use_repo(csharp_main_extension, "paket.main")
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "codegen_deps",
python_version = "3.11",
python_version = "3.12",
requirements_lock = "//misc/codegen:requirements_lock.txt",
)
use_repo(pip, "codegen_deps")

View File

@@ -1,27 +1,34 @@
if (($null -ne $env:LGTM_INDEX_INCLUDE) -or ($null -ne $env:LGTM_INDEX_EXCLUDE) -or ($null -ne $env:LGTM_INDEX_FILTERS)) {
Write-Output 'Path filters set. Passing them through to the JavaScript extractor.'
} else {
Write-Output 'No path filters set. Using the default filters.'
# Note: We're adding the `reusable_workflows` subdirectories to proactively
# record workflows that were called cross-repo, check them out locally,
# and enable an interprocedural analysis across the workflow files.
# These workflows follow the convention `.github/reusable_workflows/<nwo>/*.ya?ml`
$DefaultPathFilters = @(
'exclude:**/*',
'include:.github/workflows/*.yml',
'include:.github/workflows/*.yaml',
'include:.github/reusable_workflows/**/*.yml',
'include:.github/reusable_workflows/**/*.yaml',
'include:**/action.yml',
'include:**/action.yaml'
)
# Note: We're adding the `reusable_workflows` subdirectories to proactively
# record workflows that were called cross-repo, check them out locally,
# and enable an interprocedural analysis across the workflow files.
# These workflows follow the convention `.github/reusable_workflows/<nwo>/*.ya?ml`
$DefaultPathFilters = @(
'exclude:**/*',
'include:.github/workflows/*.yml',
'include:.github/workflows/*.yaml',
'include:.github/reusable_workflows/**/*.yml',
'include:.github/reusable_workflows/**/*.yaml',
'include:**/action.yml',
'include:**/action.yaml'
)
if ($null -ne $env:LGTM_INDEX_FILTERS) {
Write-Output 'LGTM_INDEX_FILTERS set. Using the default filters together with the user-provided filters, and passing through to the JavaScript extractor.'
# Begin with the default path inclusions only,
# followed by the user-provided filters.
# If the user provided `paths`, those patterns override the default inclusions
# (because `LGTM_INDEX_FILTERS` will begin with `exclude:**/*`).
# If the user provided `paths-ignore`, those patterns are excluded.
$PathFilters = ($DefaultPathFilters -join "`n") + "`n" + $env:LGTM_INDEX_FILTERS
$env:LGTM_INDEX_FILTERS = $PathFilters
} else {
Write-Output 'LGTM_INDEX_FILTERS not set. Using the default filters, and passing through to the JavaScript extractor.'
$env:LGTM_INDEX_FILTERS = $DefaultPathFilters -join "`n"
}
# Find the JavaScript extractor directory via `codeql resolve extractor`.
$CodeQL = Join-Path $env:CODEQL_DIST 'codeql.exe'
$env:CODEQL_EXTRACTOR_JAVASCRIPT_ROOT = &$CodeQL resolve extractor --language javascript
$env:CODEQL_EXTRACTOR_JAVASCRIPT_ROOT = &"$CodeQL" resolve extractor --language javascript
if ($LASTEXITCODE -ne 0) {
throw 'Failed to resolve JavaScript extractor.'
}
@@ -40,7 +47,7 @@ $env:CODEQL_EXTRACTOR_JAVASCRIPT_SOURCE_ARCHIVE_DIR = $env:CODEQL_EXTRACTOR_ACTI
$env:CODEQL_EXTRACTOR_JAVASCRIPT_TRAP_DIR = $env:CODEQL_EXTRACTOR_ACTIONS_TRAP_DIR
$env:CODEQL_EXTRACTOR_JAVASCRIPT_WIP_DATABASE = $env:CODEQL_EXTRACTOR_ACTIONS_WIP_DATABASE
&$JavaScriptAutoBuild
&"$JavaScriptAutoBuild"
if ($LASTEXITCODE -ne 0) {
throw "JavaScript autobuilder failed."
}

View File

@@ -1,3 +1,4 @@
@echo off
rem All of the work is done in the PowerShell script
powershell.exe %~dp0autobuild-impl.ps1
echo "Running PowerShell script at '%~dp0autobuild-impl.ps1'"
powershell.exe -File "%~dp0autobuild-impl.ps1"

View File

@@ -17,16 +17,28 @@ include:**/action.yaml
END
)
if [ -n "${LGTM_INDEX_INCLUDE:-}" ] || [ -n "${LGTM_INDEX_EXCLUDE:-}" ] || [ -n "${LGTM_INDEX_FILTERS:-}" ] ; then
echo "Path filters set. Passing them through to the JavaScript extractor."
if [ -n "${LGTM_INDEX_FILTERS:-}" ]; then
echo "LGTM_INDEX_FILTERS set. Using the default filters together with the user-provided filters, and passing through to the JavaScript extractor."
# Begin with the default path inclusions only,
# followed by the user-provided filters.
# If the user provided `paths`, those patterns override the default inclusions
# (because `LGTM_INDEX_FILTERS` will begin with `exclude:**/*`).
# If the user provided `paths-ignore`, those patterns are excluded.
PATH_FILTERS="$(cat << END
${DEFAULT_PATH_FILTERS}
${LGTM_INDEX_FILTERS}
END
)"
LGTM_INDEX_FILTERS="${PATH_FILTERS}"
export LGTM_INDEX_FILTERS
else
echo "No path filters set. Using the default filters."
echo "LGTM_INDEX_FILTERS not set. Using the default filters, and passing through to the JavaScript extractor."
LGTM_INDEX_FILTERS="${DEFAULT_PATH_FILTERS}"
export LGTM_INDEX_FILTERS
fi
# Find the JavaScript extractor directory via `codeql resolve extractor`.
CODEQL_EXTRACTOR_JAVASCRIPT_ROOT="$($CODEQL_DIST/codeql resolve extractor --language javascript)"
CODEQL_EXTRACTOR_JAVASCRIPT_ROOT="$("${CODEQL_DIST}/codeql" resolve extractor --language javascript)"
export CODEQL_EXTRACTOR_JAVASCRIPT_ROOT
echo "Found JavaScript extractor at '${CODEQL_EXTRACTOR_JAVASCRIPT_ROOT}'."
@@ -42,4 +54,4 @@ env CODEQL_EXTRACTOR_JAVASCRIPT_DIAGNOSTIC_DIR="${CODEQL_EXTRACTOR_ACTIONS_DIAGN
CODEQL_EXTRACTOR_JAVASCRIPT_SOURCE_ARCHIVE_DIR="${CODEQL_EXTRACTOR_ACTIONS_SOURCE_ARCHIVE_DIR}" \
CODEQL_EXTRACTOR_JAVASCRIPT_TRAP_DIR="${CODEQL_EXTRACTOR_ACTIONS_TRAP_DIR}" \
CODEQL_EXTRACTOR_JAVASCRIPT_WIP_DATABASE="${CODEQL_EXTRACTOR_ACTIONS_WIP_DATABASE}" \
${JAVASCRIPT_AUTO_BUILD}
"${JAVASCRIPT_AUTO_BUILD}"

View File

@@ -0,0 +1,5 @@
import actions
from AstNode n
where n instanceof Workflow or n instanceof CompositeAction
select n

View File

@@ -0,0 +1,6 @@
| src/.github/action.yaml:1:1:11:32 | name: ' ... action' |
| src/.github/actions/action-name/action.yml:1:1:11:32 | name: ' ... action' |
| src/.github/workflows/workflow.yml:1:1:12:33 | name: A workflow |
| src/action.yml:1:1:11:32 | name: ' ... action' |
| src/excluded/action.yml:1:1:11:32 | name: ' ... action' |
| src/included/action.yml:1:1:11:32 | name: ' ... action' |

View File

@@ -0,0 +1,2 @@
| src/included/action.yml:1:1:11:32 | name: ' ... action' |
| src/included/unreachable-workflow.yml:1:1:12:33 | name: A ... orkflow |

View File

@@ -0,0 +1,5 @@
| src/.github/action.yaml:1:1:11:32 | name: ' ... action' |
| src/.github/actions/action-name/action.yml:1:1:11:32 | name: ' ... action' |
| src/.github/workflows/workflow.yml:1:1:12:33 | name: A workflow |
| src/action.yml:1:1:11:32 | name: ' ... action' |
| src/included/action.yml:1:1:11:32 | name: ' ... action' |

View File

@@ -0,0 +1,2 @@
| src/included/action.yml:1:1:11:32 | name: ' ... action' |
| src/included/unreachable-workflow.yml:1:1:12:33 | name: A ... orkflow |

View File

@@ -0,0 +1,5 @@
import actions
from AstNode n
where n instanceof Workflow or n instanceof CompositeAction
select n

View File

@@ -0,0 +1,4 @@
paths:
- 'included'
paths-ignore:
- 'excluded'

View File

@@ -0,0 +1,2 @@
paths-ignore:
- 'excluded'

View File

@@ -0,0 +1,2 @@
paths:
- 'included'

View File

@@ -0,0 +1,6 @@
src/.github/action.yaml
src/.github/actions/action-name/action.yml
src/.github/workflows/workflow.yml
src/action.yml
src/excluded/action.yml
src/included/action.yml

View File

@@ -0,0 +1,3 @@
src/included/action.yml
src/included/not-an-action.yml
src/included/unreachable-workflow.yml

View File

@@ -0,0 +1,5 @@
src/.github/action.yaml
src/.github/actions/action-name/action.yml
src/.github/workflows/workflow.yml
src/action.yml
src/included/action.yml

View File

@@ -0,0 +1,3 @@
src/included/action.yml
src/included/not-an-action.yml
src/included/unreachable-workflow.yml

View File

@@ -0,0 +1,11 @@
name: 'A composite action'
description: 'Do something'
runs:
using: "composite"
steps:
- name: Print
run: echo "Hello world"
shell: bash
- name: Checkout
uses: actions/checkout@v4

View File

@@ -0,0 +1,11 @@
name: 'A composite action'
description: 'Do something'
runs:
using: "composite"
steps:
- name: Print
run: echo "Hello world"
shell: bash
- name: Checkout
uses: actions/checkout@v4

View File

@@ -0,0 +1,12 @@
name: An unreachable workflow
on:
push:
branches:
- main
jobs:
job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

View File

@@ -0,0 +1,12 @@
name: A workflow
on:
push:
branches:
- main
jobs:
job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

View File

@@ -0,0 +1,11 @@
name: 'A composite action'
description: 'Do something'
runs:
using: "composite"
steps:
- name: Print
run: echo "Hello world"
shell: bash
- name: Checkout
uses: actions/checkout@v4

View File

@@ -0,0 +1,11 @@
name: 'A composite action'
description: 'Do something'
runs:
using: "composite"
steps:
- name: Print
run: echo "Hello world"
shell: bash
- name: Checkout
uses: actions/checkout@v4

View File

@@ -0,0 +1,12 @@
name: An unreachable workflow
on:
push:
branches:
- main
jobs:
job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

View File

@@ -0,0 +1,11 @@
name: 'A composite action'
description: 'Do something'
runs:
using: "composite"
steps:
- name: Print
run: echo "Hello world"
shell: bash
- name: Checkout
uses: actions/checkout@v4

View File

@@ -0,0 +1 @@
name: 'Not an action, just a YAML file'

View File

@@ -0,0 +1,12 @@
name: An unreachable workflow
on:
push:
branches:
- main
jobs:
job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

View File

@@ -0,0 +1,12 @@
name: An unreachable workflow
on:
push:
branches:
- main
jobs:
job:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

View File

@@ -0,0 +1,18 @@
import pytest
@pytest.mark.ql_test(expected=".default-filters.expected")
def test_default_filters(codeql, actions, check_source_archive):
check_source_archive.expected_suffix = ".default-filters.expected"
codeql.database.create(source_root="src")
@pytest.mark.ql_test(expected=".paths-only.expected")
def test_config_paths_only(codeql, actions):
codeql.database.create(source_root="src", codescanning_config="codeql-config.paths-only.yml")
@pytest.mark.ql_test(expected=".paths-ignore-only.expected")
def test_config_paths_ignore_only(codeql, actions):
codeql.database.create(source_root="src", codescanning_config="codeql-config.paths-ignore-only.yml")
@pytest.mark.ql_test(expected=".paths-and-paths-ignore.expected")
def test_config_paths_and_paths_ignore(codeql, actions):
codeql.database.create(source_root="src", codescanning_config="codeql-config.paths-and-paths-ignore.yml")

View File

@@ -0,0 +1,17 @@
ql/actions/ql/src/Security/CWE-077/EnvPathInjectionCritical.ql
ql/actions/ql/src/Security/CWE-077/EnvVarInjectionCritical.ql
ql/actions/ql/src/Security/CWE-094/CodeInjectionCritical.ql
ql/actions/ql/src/Security/CWE-1395/UseOfKnownVulnerableAction.ql
ql/actions/ql/src/Security/CWE-275/MissingActionsPermissions.ql
ql/actions/ql/src/Security/CWE-285/ImproperAccessControl.ql
ql/actions/ql/src/Security/CWE-312/ExcessiveSecretsExposure.ql
ql/actions/ql/src/Security/CWE-312/SecretsInArtifacts.ql
ql/actions/ql/src/Security/CWE-312/UnmaskedSecretExposure.ql
ql/actions/ql/src/Security/CWE-349/CachePoisoningViaCodeInjection.ql
ql/actions/ql/src/Security/CWE-349/CachePoisoningViaDirectCache.ql
ql/actions/ql/src/Security/CWE-349/CachePoisoningViaPoisonableStep.ql
ql/actions/ql/src/Security/CWE-367/UntrustedCheckoutTOCTOUCritical.ql
ql/actions/ql/src/Security/CWE-367/UntrustedCheckoutTOCTOUHigh.ql
ql/actions/ql/src/Security/CWE-829/ArtifactPoisoningCritical.ql
ql/actions/ql/src/Security/CWE-829/UntrustedCheckoutCritical.ql
ql/actions/ql/src/Security/CWE-829/UntrustedCheckoutHigh.ql

View File

@@ -0,0 +1,27 @@
ql/actions/ql/src/Debug/SyntaxError.ql
ql/actions/ql/src/Security/CWE-077/EnvPathInjectionCritical.ql
ql/actions/ql/src/Security/CWE-077/EnvPathInjectionMedium.ql
ql/actions/ql/src/Security/CWE-077/EnvVarInjectionCritical.ql
ql/actions/ql/src/Security/CWE-077/EnvVarInjectionMedium.ql
ql/actions/ql/src/Security/CWE-094/CodeInjectionCritical.ql
ql/actions/ql/src/Security/CWE-094/CodeInjectionMedium.ql
ql/actions/ql/src/Security/CWE-1395/UseOfKnownVulnerableAction.ql
ql/actions/ql/src/Security/CWE-275/MissingActionsPermissions.ql
ql/actions/ql/src/Security/CWE-285/ImproperAccessControl.ql
ql/actions/ql/src/Security/CWE-312/ExcessiveSecretsExposure.ql
ql/actions/ql/src/Security/CWE-312/SecretsInArtifacts.ql
ql/actions/ql/src/Security/CWE-312/UnmaskedSecretExposure.ql
ql/actions/ql/src/Security/CWE-349/CachePoisoningViaCodeInjection.ql
ql/actions/ql/src/Security/CWE-349/CachePoisoningViaDirectCache.ql
ql/actions/ql/src/Security/CWE-349/CachePoisoningViaPoisonableStep.ql
ql/actions/ql/src/Security/CWE-367/UntrustedCheckoutTOCTOUCritical.ql
ql/actions/ql/src/Security/CWE-367/UntrustedCheckoutTOCTOUHigh.ql
ql/actions/ql/src/Security/CWE-571/ExpressionIsAlwaysTrueCritical.ql
ql/actions/ql/src/Security/CWE-571/ExpressionIsAlwaysTrueHigh.ql
ql/actions/ql/src/Security/CWE-829/ArtifactPoisoningCritical.ql
ql/actions/ql/src/Security/CWE-829/ArtifactPoisoningMedium.ql
ql/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.ql
ql/actions/ql/src/Security/CWE-829/UntrustedCheckoutCritical.ql
ql/actions/ql/src/Security/CWE-829/UntrustedCheckoutHigh.ql
ql/actions/ql/src/Security/CWE-829/UntrustedCheckoutMedium.ql
ql/actions/ql/src/Violations Of Best Practice/CodeQL/UnnecessaryUseOfAdvancedConfig.ql

View File

@@ -0,0 +1,23 @@
ql/actions/ql/src/Security/CWE-077/EnvPathInjectionCritical.ql
ql/actions/ql/src/Security/CWE-077/EnvPathInjectionMedium.ql
ql/actions/ql/src/Security/CWE-077/EnvVarInjectionCritical.ql
ql/actions/ql/src/Security/CWE-077/EnvVarInjectionMedium.ql
ql/actions/ql/src/Security/CWE-094/CodeInjectionCritical.ql
ql/actions/ql/src/Security/CWE-094/CodeInjectionMedium.ql
ql/actions/ql/src/Security/CWE-1395/UseOfKnownVulnerableAction.ql
ql/actions/ql/src/Security/CWE-275/MissingActionsPermissions.ql
ql/actions/ql/src/Security/CWE-285/ImproperAccessControl.ql
ql/actions/ql/src/Security/CWE-312/ExcessiveSecretsExposure.ql
ql/actions/ql/src/Security/CWE-312/SecretsInArtifacts.ql
ql/actions/ql/src/Security/CWE-312/UnmaskedSecretExposure.ql
ql/actions/ql/src/Security/CWE-349/CachePoisoningViaCodeInjection.ql
ql/actions/ql/src/Security/CWE-349/CachePoisoningViaDirectCache.ql
ql/actions/ql/src/Security/CWE-349/CachePoisoningViaPoisonableStep.ql
ql/actions/ql/src/Security/CWE-367/UntrustedCheckoutTOCTOUCritical.ql
ql/actions/ql/src/Security/CWE-367/UntrustedCheckoutTOCTOUHigh.ql
ql/actions/ql/src/Security/CWE-829/ArtifactPoisoningCritical.ql
ql/actions/ql/src/Security/CWE-829/ArtifactPoisoningMedium.ql
ql/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.ql
ql/actions/ql/src/Security/CWE-829/UntrustedCheckoutCritical.ql
ql/actions/ql/src/Security/CWE-829/UntrustedCheckoutHigh.ql
ql/actions/ql/src/Security/CWE-829/UntrustedCheckoutMedium.ql

View File

@@ -0,0 +1,17 @@
ql/actions/ql/src/Debug/partial.ql
ql/actions/ql/src/Models/CompositeActionsSinks.ql
ql/actions/ql/src/Models/CompositeActionsSources.ql
ql/actions/ql/src/Models/CompositeActionsSummaries.ql
ql/actions/ql/src/Models/ReusableWorkflowsSinks.ql
ql/actions/ql/src/Models/ReusableWorkflowsSources.ql
ql/actions/ql/src/Models/ReusableWorkflowsSummaries.ql
ql/actions/ql/src/experimental/Security/CWE-074/OutputClobberingHigh.ql
ql/actions/ql/src/experimental/Security/CWE-078/CommandInjectionCritical.ql
ql/actions/ql/src/experimental/Security/CWE-078/CommandInjectionMedium.ql
ql/actions/ql/src/experimental/Security/CWE-088/ArgumentInjectionCritical.ql
ql/actions/ql/src/experimental/Security/CWE-088/ArgumentInjectionMedium.ql
ql/actions/ql/src/experimental/Security/CWE-200/SecretExfiltration.ql
ql/actions/ql/src/experimental/Security/CWE-284/CodeExecutionOnSelfHostedRunner.ql
ql/actions/ql/src/experimental/Security/CWE-829/ArtifactPoisoningPathTraversal.ql
ql/actions/ql/src/experimental/Security/CWE-829/UnversionedImmutableAction.ql
ql/actions/ql/src/experimental/Security/CWE-918/RequestForgery.ql

View File

@@ -0,0 +1,14 @@
import runs_on
import pytest
from query_suites import *
well_known_query_suites = ['actions-code-quality.qls', 'actions-security-and-quality.qls', 'actions-security-extended.qls', 'actions-code-scanning.qls']
@runs_on.posix
@pytest.mark.parametrize("query_suite", well_known_query_suites)
def test(codeql, actions, check_query_suite, query_suite):
check_query_suite(query_suite)
@runs_on.posix
def test_not_included_queries(codeql, actions, check_queries_not_included):
check_queries_not_included('actions', well_known_query_suites)

View File

@@ -1,3 +1,28 @@
## 0.4.8
No user-facing changes.
## 0.4.7
### New Features
* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available.
## 0.4.6
### Bug Fixes
* The query `actions/code-injection/medium` now produces alerts for injection
vulnerabilities on `pull_request` events.
## 0.4.5
No user-facing changes.
## 0.4.4
No user-facing changes.
## 0.4.3
### New Features

View File

@@ -0,0 +1,3 @@
## 0.4.4
No user-facing changes.

View File

@@ -0,0 +1,3 @@
## 0.4.5
No user-facing changes.

View File

@@ -0,0 +1,6 @@
## 0.4.6
### Bug Fixes
* The query `actions/code-injection/medium` now produces alerts for injection
vulnerabilities on `pull_request` events.

View File

@@ -0,0 +1,5 @@
## 0.4.7
### New Features
* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available.

View File

@@ -0,0 +1,3 @@
## 0.4.8
No user-facing changes.

View File

@@ -1,2 +1,2 @@
---
lastReleaseVersion: 0.4.3
lastReleaseVersion: 0.4.8

View File

@@ -154,3 +154,13 @@ predicate untrustedGitCommandDataModel(string cmd_regex, string flag) {
predicate untrustedGhCommandDataModel(string cmd_regex, string flag) {
Extensions::untrustedGhCommandDataModel(cmd_regex, flag)
}
/**
* MaD models for permissions needed by actions
* Fields:
* - action: action name, e.g. `actions/checkout`
* - permission: permission name, e.g. `contents: read`
*/
predicate actionsPermissionsDataModel(string action, string permission) {
Extensions::actionsPermissionsDataModel(action, permission)
}

View File

@@ -77,3 +77,14 @@ extensible predicate untrustedGitCommandDataModel(string cmd_regex, string flag)
* Holds for gh commands that may introduce untrusted data
*/
extensible predicate untrustedGhCommandDataModel(string cmd_regex, string flag);
/**
* Holds if `action` needs `permission` to run.
* - 'action' is the name of the action without any version information.
* E.g. for the action selector `actions/checkout@v2`, `action` is `actions/checkout`.
* - `permission` is of the form `scope-name: read|write`, for example `contents: read`.
* - see https://github.com/actions/checkout?tab=readme-ov-file#recommended-permissions
* for an example of recommended permissions.
* - see https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/controlling-permissions-for-github_token for documentation of token permissions.
*/
extensible predicate actionsPermissionsDataModel(string action, string permission);

View File

@@ -0,0 +1,37 @@
extensions:
- addsTo:
pack: codeql/actions-all
extensible: actionsPermissionsDataModel
data:
- ["actions/checkout", "contents: read"]
- ["actions/setup-node", "contents: read"]
- ["actions/setup-python", "contents: read"]
- ["actions/setup-java", "contents: read"]
- ["actions/setup-go", "contents: read"]
- ["actions/setup-dotnet", "contents: read"]
- ["actions/labeler", "contents: read"]
- ["actions/labeler", "pull-requests: write"]
- ["actions/attest", "id-token: write"]
- ["actions/attest", "attestations: write"]
# No permissions needed for actions/add-to-project
- ["actions/dependency-review-action", "contents: read"]
- ["actions/attest-sbom", "id-token: write"]
- ["actions/attest-sbom", "attestations: write"]
- ["actions/stale", "contents: write"]
- ["actions/stale", "issues: write"]
- ["actions/stale", "pull-requests: write"]
- ["actions/attest-build-provenance", "id-token: write"]
- ["actions/attest-build-provenance", "attestations: write"]
- ["actions/jekyll-build-pages", "contents: read"]
- ["actions/jekyll-build-pages", "pages: write"]
- ["actions/jekyll-build-pages", "id-token: write"]
- ["actions/publish-action", "contents: write"]
- ["actions/versions-package-tools", "contents: read"]
- ["actions/versions-package-tools", "actions: read"]
- ["actions/reusable-workflows", "contents: read"]
- ["actions/reusable-workflows", "actions: read"]
# TODO: Add permissions for actions/download-artifact
# TODO: Add permissions for actions/upload-artifact
# TODO: Add permissions for actions/cache

View File

@@ -30,6 +30,9 @@ extensions:
- ["pull_request_review_comment", "github.event.review"]
- ["pull_request_review_comment", "github.head_ref"]
- ["pull_request_review_comment", "github.event.changes"]
- ["pull_request", "github.event.pull_request"]
- ["pull_request", "github.head_ref"]
- ["pull_request", "github.event.changes"]
- ["pull_request_target", "github.event.pull_request"]
- ["pull_request_target", "github.head_ref"]
- ["pull_request_target", "github.event.changes"]

View File

@@ -12,6 +12,7 @@ extensions:
- ["pull_request_comment"]
- ["pull_request_review"]
- ["pull_request_review_comment"]
- ["pull_request"]
- ["pull_request_target"]
- ["workflow_run"] # depending on branch filter
- ["workflow_call"] # depending on caller

View File

@@ -1,5 +1,5 @@
name: codeql/actions-all
version: 0.4.4-dev
version: 0.4.8
library: true
warnOnImplicitThis: true
dependencies:

View File

@@ -1,3 +1,55 @@
## 0.6.0
### Breaking Changes
* The following queries have been removed from the `security-and-quality` suite.
They are not intended to produce user-facing
alerts describing vulnerabilities.
Any existing alerts for these queries will be closed automatically.
* `actions/composite-action-sinks`
* `actions/composite-action-sources`
* `actions/composite-action-summaries`
* `actions/reusable-workflow-sinks`
(renamed from `actions/reusable-wokflow-sinks`)
* `actions/reusable-workflow-sources`
* `actions/reusable-workflow-summaries`
### Bug Fixes
* Assigned a `security-severity` to the query `actions/excessive-secrets-exposure`.
## 0.5.4
### New Features
* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available.
### Bug Fixes
* Alerts produced by the query `actions/missing-workflow-permissions` now include a minimal set of recommended permissions in the alert message, based on well-known actions seen within the workflow file.
## 0.5.3
### Bug Fixes
* Fixed typos in the query and alert titles for the queries
`actions/envpath-injection/critical`, `actions/envpath-injection/medium`,
`actions/envvar-injection/critical`, and `actions/envvar-injection/medium`.
## 0.5.2
No user-facing changes.
## 0.5.1
### Bug Fixes
* The `actions/unversioned-immutable-action` query will no longer report any alerts, since the
Immutable Actions feature is not yet available for customer use. The query has also been moved
to the experimental folder and will not be used in code scanning unless it is explicitly added
to a code scanning configuration. Once the Immutable Actions feature is available, the query will
be updated to report alerts again.
## 0.5.0
### Breaking Changes

View File

@@ -5,7 +5,7 @@
* @problem.severity warning
* @security-severity 9.3
* @precision high
* @id actions/reusable-wokflow-sinks
* @id actions/reusable-workflow-sinks
* @tags actions
* model-generator
* external/cwe/cwe-020

View File

@@ -1,5 +1,5 @@
/**
* @name PATH Enviroment Variable built from user-controlled sources
* @name PATH environment variable built from user-controlled sources
* @description Building the PATH environment variable from user-controlled sources may alter the execution of following system commands
* @kind path-problem
* @problem.severity error

View File

@@ -1,5 +1,5 @@
/**
* @name PATH Enviroment Variable built from user-controlled sources
* @name PATH environment variable built from user-controlled sources
* @description Building the PATH environment variable from user-controlled sources may alter the execution of following system commands
* @kind path-problem
* @problem.severity error

View File

@@ -1,5 +1,5 @@
/**
* @name Enviroment Variable built from user-controlled sources
* @name Environment variable built from user-controlled sources
* @description Building an environment variable from user-controlled sources may alter the execution of following system commands
* @kind path-problem
* @problem.severity error

View File

@@ -109,7 +109,7 @@ An attacker could craft a malicious artifact that writes dangerous environment v
### Exploitation
An attacker is be able to run arbitrary code by injecting environment variables such as `LD_PRELOAD`, `BASH_ENV`, etc.
An attacker would be able to run arbitrary code by injecting environment variables such as `LD_PRELOAD`, `BASH_ENV`, etc.
## References

View File

@@ -1,5 +1,5 @@
/**
* @name Enviroment Variable built from user-controlled sources
* @name Environment variable built from user-controlled sources
* @description Building an environment variable from user-controlled sources may alter the execution of following system commands
* @kind path-problem
* @problem.severity error

View File

@@ -1,5 +1,5 @@
/**
* @name Use of a known vulnerable action.
* @name Use of a known vulnerable action
* @description The workflow is using an action with known vulnerabilities.
* @kind problem
* @problem.severity error

View File

@@ -1,6 +1,6 @@
/**
* @name Workflow does not contain permissions
* @description Workflows should contain permissions to provide a clear understanding has permissions to run the workflow.
* @description Workflows should contain explicit permissions to restrict the scope of the default GITHUB_TOKEN.
* @kind problem
* @security-severity 5.0
* @problem.severity warning
@@ -14,7 +14,19 @@
import actions
from Job job
Step stepInJob(Job job) { result = job.(LocalJob).getAStep() }
string jobNeedsPermission(Job job) {
actionsPermissionsDataModel(stepInJob(job).(UsesStep).getCallee(), result)
}
/** Gets a suggestion for the minimal token permissions for `job`, as a JSON string. */
string permissionsForJob(Job job) {
result =
"{" + concat(string permission | permission = jobNeedsPermission(job) | permission, ", ") + "}"
}
from Job job, string permissions
where
not exists(job.getPermissions()) and
not exists(job.getEnclosingWorkflow().getPermissions()) and
@@ -22,5 +34,8 @@ where
exists(Event e |
e = job.getATriggerEvent() and
not e.getName() = "workflow_call"
)
select job, "Actions Job or Workflow does not set permissions"
) and
permissions = permissionsForJob(job)
select job,
"Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: "
+ permissions

View File

@@ -3,6 +3,7 @@
* @description All organization and repository secrets are passed to the workflow runner.
* @kind problem
* @precision high
* @security-severity 5.0
* @problem.severity warning
* @id actions/excessive-secrets-exposure
* @tags actions

View File

@@ -2,11 +2,11 @@
## Description
Secrets derived from other secrets are not know to the workflow runner and therefore not masked unless explicitly registered.
Secrets derived from other secrets are not known to the workflow runner, and therefore are not masked unless explicitly registered.
## Recommendations
Avoid defining non-plain secrets. For example, do not define a new secret containing a JSON object and then read properties out of it from the workflow since these read values will not be masked by the workflow runner.
Avoid defining non-plain secrets. For example, do not define a new secret containing a JSON object and then read properties out of it from the workflow, since these read values will not be masked by the workflow runner.
## Examples

View File

@@ -1,5 +1,5 @@
/**
* @name Checkout of untrusted code in trusted context
* @name Checkout of untrusted code in a privileged context
* @description Privileged workflows have read/write access to the base repository and access to secrets.
* By explicitly checking out and running the build script from a fork the untrusted code is running in an environment
* that is able to push to the base repository and to access secrets.

View File

@@ -1,6 +1,7 @@
---
category: fix
---
## 0.5.1
### Bug Fixes
* The `actions/unversioned-immutable-action` query will no longer report any alerts, since the
Immutable Actions feature is not yet available for customer use. The query has also been moved
to the experimental folder and will not be used in code scanning unless it is explicitly added

View File

@@ -0,0 +1,3 @@
## 0.5.2
No user-facing changes.

View File

@@ -0,0 +1,7 @@
## 0.5.3
### Bug Fixes
* Fixed typos in the query and alert titles for the queries
`actions/envpath-injection/critical`, `actions/envpath-injection/medium`,
`actions/envvar-injection/critical`, and `actions/envvar-injection/medium`.

View File

@@ -0,0 +1,9 @@
## 0.5.4
### New Features
* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available.
### Bug Fixes
* Alerts produced by the query `actions/missing-workflow-permissions` now include a minimal set of recommended permissions in the alert message, based on well-known actions seen within the workflow file.

View File

@@ -0,0 +1,19 @@
## 0.6.0
### Breaking Changes
* The following queries have been removed from the `security-and-quality` suite.
They are not intended to produce user-facing
alerts describing vulnerabilities.
Any existing alerts for these queries will be closed automatically.
* `actions/composite-action-sinks`
* `actions/composite-action-sources`
* `actions/composite-action-summaries`
* `actions/reusable-workflow-sinks`
(renamed from `actions/reusable-wokflow-sinks`)
* `actions/reusable-workflow-sources`
* `actions/reusable-workflow-summaries`
### Bug Fixes
* Assigned a `security-severity` to the query `actions/excessive-secrets-exposure`.

View File

@@ -1,2 +1,2 @@
---
lastReleaseVersion: 0.5.0
lastReleaseVersion: 0.6.0

View File

@@ -1,5 +1,5 @@
name: codeql/actions-queries
version: 0.5.1-dev
version: 0.6.0
library: false
warnOnImplicitThis: true
groups: [actions, queries]

View File

@@ -400,6 +400,7 @@ nodes
| .github/workflows/level0.yml:44:20:44:49 | github.event.issue.body | semmle.label | github.event.issue.body |
| .github/workflows/level0.yml:69:35:69:66 | github.event.comment.body | semmle.label | github.event.comment.body |
| .github/workflows/level1.yml:37:38:37:81 | github.event.workflow_run.head_branch | semmle.label | github.event.workflow_run.head_branch |
| .github/workflows/priv_pull_request.yml:14:21:14:57 | github.event.pull_request.body | semmle.label | github.event.pull_request.body |
| .github/workflows/pull_request_review.yml:7:19:7:56 | github.event.pull_request.title | semmle.label | github.event.pull_request.title |
| .github/workflows/pull_request_review.yml:8:19:8:55 | github.event.pull_request.body | semmle.label | github.event.pull_request.body |
| .github/workflows/pull_request_review.yml:9:19:9:61 | github.event.pull_request.head.label | semmle.label | github.event.pull_request.head.label |
@@ -629,6 +630,7 @@ nodes
| .github/workflows/test19.yml:124:9:129:6 | Run Step: title3 [title] | semmle.label | Run Step: title3 [title] |
| .github/workflows/test19.yml:125:14:128:50 | TITLE=$(gh issue view "$ISSUE_NUMBER" --json title,author)\nTITLE=$(echo $TITLE \| jq -r '.title')\necho "title=$TITLE" >> "$GITHUB_OUTPUT"\n | semmle.label | TITLE=$(gh issue view "$ISSUE_NUMBER" --json title,author)\nTITLE=$(echo $TITLE \| jq -r '.title')\necho "title=$TITLE" >> "$GITHUB_OUTPUT"\n |
| .github/workflows/test19.yml:129:21:129:52 | steps.title3.outputs.title | semmle.label | steps.title3.outputs.title |
| .github/workflows/test20.yml:15:54:15:94 | github.event.pull_request.head.ref | semmle.label | github.event.pull_request.head.ref |
| .github/workflows/test21.yml:22:35:22:73 | github.event.head_commit.message | semmle.label | github.event.head_commit.message |
| .github/workflows/test21.yml:23:36:23:74 | github.event.head_commit.message | semmle.label | github.event.head_commit.message |
| .github/workflows/test21.yml:24:50:24:88 | github.event.head_commit.message | semmle.label | github.event.head_commit.message |

View File

@@ -400,6 +400,7 @@ nodes
| .github/workflows/level0.yml:44:20:44:49 | github.event.issue.body | semmle.label | github.event.issue.body |
| .github/workflows/level0.yml:69:35:69:66 | github.event.comment.body | semmle.label | github.event.comment.body |
| .github/workflows/level1.yml:37:38:37:81 | github.event.workflow_run.head_branch | semmle.label | github.event.workflow_run.head_branch |
| .github/workflows/priv_pull_request.yml:14:21:14:57 | github.event.pull_request.body | semmle.label | github.event.pull_request.body |
| .github/workflows/pull_request_review.yml:7:19:7:56 | github.event.pull_request.title | semmle.label | github.event.pull_request.title |
| .github/workflows/pull_request_review.yml:8:19:8:55 | github.event.pull_request.body | semmle.label | github.event.pull_request.body |
| .github/workflows/pull_request_review.yml:9:19:9:61 | github.event.pull_request.head.label | semmle.label | github.event.pull_request.head.label |
@@ -629,6 +630,7 @@ nodes
| .github/workflows/test19.yml:124:9:129:6 | Run Step: title3 [title] | semmle.label | Run Step: title3 [title] |
| .github/workflows/test19.yml:125:14:128:50 | TITLE=$(gh issue view "$ISSUE_NUMBER" --json title,author)\nTITLE=$(echo $TITLE \| jq -r '.title')\necho "title=$TITLE" >> "$GITHUB_OUTPUT"\n | semmle.label | TITLE=$(gh issue view "$ISSUE_NUMBER" --json title,author)\nTITLE=$(echo $TITLE \| jq -r '.title')\necho "title=$TITLE" >> "$GITHUB_OUTPUT"\n |
| .github/workflows/test19.yml:129:21:129:52 | steps.title3.outputs.title | semmle.label | steps.title3.outputs.title |
| .github/workflows/test20.yml:15:54:15:94 | github.event.pull_request.head.ref | semmle.label | github.event.pull_request.head.ref |
| .github/workflows/test21.yml:22:35:22:73 | github.event.head_commit.message | semmle.label | github.event.head_commit.message |
| .github/workflows/test21.yml:23:36:23:74 | github.event.head_commit.message | semmle.label | github.event.head_commit.message |
| .github/workflows/test21.yml:24:50:24:88 | github.event.head_commit.message | semmle.label | github.event.head_commit.message |
@@ -706,6 +708,7 @@ subpaths
| .github/workflows/inter-job2.yml:45:20:45:53 | needs.job1.outputs.job_output | .github/workflows/inter-job2.yml:22:9:26:6 | Uses Step: source | .github/workflows/inter-job2.yml:45:20:45:53 | needs.job1.outputs.job_output | Potential code injection in $@, which may be controlled by an external user. | .github/workflows/inter-job2.yml:45:20:45:53 | needs.job1.outputs.job_output | ${{needs.job1.outputs.job_output}} |
| .github/workflows/inter-job4.yml:44:20:44:53 | needs.job1.outputs.job_output | .github/workflows/inter-job4.yml:22:9:26:6 | Uses Step: source | .github/workflows/inter-job4.yml:44:20:44:53 | needs.job1.outputs.job_output | Potential code injection in $@, which may be controlled by an external user. | .github/workflows/inter-job4.yml:44:20:44:53 | needs.job1.outputs.job_output | ${{needs.job1.outputs.job_output}} |
| .github/workflows/inter-job5.yml:45:20:45:53 | needs.job1.outputs.job_output | .github/workflows/inter-job5.yml:45:20:45:53 | needs.job1.outputs.job_output | .github/workflows/inter-job5.yml:45:20:45:53 | needs.job1.outputs.job_output | Potential code injection in $@, which may be controlled by an external user. | .github/workflows/inter-job5.yml:45:20:45:53 | needs.job1.outputs.job_output | ${{needs.job1.outputs.job_output}} |
| .github/workflows/priv_pull_request.yml:14:21:14:57 | github.event.pull_request.body | .github/workflows/priv_pull_request.yml:14:21:14:57 | github.event.pull_request.body | .github/workflows/priv_pull_request.yml:14:21:14:57 | github.event.pull_request.body | Potential code injection in $@, which may be controlled by an external user. | .github/workflows/priv_pull_request.yml:14:21:14:57 | github.event.pull_request.body | ${{ github.event.pull_request.body }} |
| .github/workflows/push.yml:7:19:7:57 | github.event.commits[11].message | .github/workflows/push.yml:7:19:7:57 | github.event.commits[11].message | .github/workflows/push.yml:7:19:7:57 | github.event.commits[11].message | Potential code injection in $@, which may be controlled by an external user. | .github/workflows/push.yml:7:19:7:57 | github.event.commits[11].message | ${{ github.event.commits[11].message }} |
| .github/workflows/push.yml:8:19:8:62 | github.event.commits[11].author.email | .github/workflows/push.yml:8:19:8:62 | github.event.commits[11].author.email | .github/workflows/push.yml:8:19:8:62 | github.event.commits[11].author.email | Potential code injection in $@, which may be controlled by an external user. | .github/workflows/push.yml:8:19:8:62 | github.event.commits[11].author.email | ${{ github.event.commits[11].author.email }} |
| .github/workflows/push.yml:9:19:9:61 | github.event.commits[11].author.name | .github/workflows/push.yml:9:19:9:61 | github.event.commits[11].author.name | .github/workflows/push.yml:9:19:9:61 | github.event.commits[11].author.name | Potential code injection in $@, which may be controlled by an external user. | .github/workflows/push.yml:9:19:9:61 | github.event.commits[11].author.name | ${{ github.event.commits[11].author.name }} |

View File

@@ -0,0 +1,13 @@
on:
workflow_call:
workflow_dispatch:
jobs:
build:
name: Build and test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/jekyll-build-pages

View File

@@ -0,0 +1,10 @@
on:
workflow_call:
workflow_dispatch:
jobs:
build:
name: Build and test
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v2

View File

@@ -1,3 +1,5 @@
| .github/workflows/perms1.yml:6:5:9:32 | Job: build | Actions Job or Workflow does not set permissions |
| .github/workflows/perms2.yml:6:5:10:2 | Job: build | Actions Job or Workflow does not set permissions |
| .github/workflows/perms5.yml:7:5:10:32 | Job: build | Actions Job or Workflow does not set permissions |
| .github/workflows/perms1.yml:6:5:9:32 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read} |
| .github/workflows/perms2.yml:6:5:10:2 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read} |
| .github/workflows/perms5.yml:7:5:10:32 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read} |
| .github/workflows/perms6.yml:7:5:11:39 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read, id-token: write, pages: write} |
| .github/workflows/perms7.yml:7:5:10:38 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {} |

View File

@@ -58,7 +58,19 @@ def file_checksum(filename):
with open(filename, 'rb') as file_handle:
return hashlib.sha1(file_handle.read()).hexdigest()
def check_group(group_name, files, master_file_picker, emit_error):
def accept_prefix(line1, line2):
suffix = line2.removeprefix(line1)
return not suffix or suffix.lstrip().startswith("//")
def equivalent_lines(lines1, lines2):
if len(lines1) != len(lines2):
return False
for line1, line2 in zip(lines1, lines2):
if not accept_prefix(line1, line2) and not accept_prefix(line2, line1):
return False
return True
def check_group(group_name, files, master_file_picker, emit_error, accept_prefix):
extant_files = [f for f in files if path.isfile(f)]
if len(extant_files) == 0:
emit_error(__file__, 0, "No files found from group '" + group_name + "'.")
@@ -70,11 +82,23 @@ def check_group(group_name, files, master_file_picker, emit_error):
return
checksums = {file_checksum(f) for f in extant_files}
if len(checksums) == 1 and len(extant_files) == len(files):
same_lengths = len(extant_files) == len(files)
if len(checksums) == 1 and same_lengths:
# All files are present and identical.
return
# In this case we also consider files indentical, if
# (1) The group only containts two files.
# (2) The lines of one file are the same as the lines of another file
# modulo comments.
if accept_prefix and same_lengths and len(extant_files) == 2:
with open(extant_files[0], 'r') as f1:
file1_lines = [l.strip('\n\r') for l in f1.readlines()]
with open(extant_files[1], 'r') as f2:
file2_lines = [l.strip('\n\r') for l in f2.readlines()]
if equivalent_lines(file1_lines, file2_lines):
return
master_file = master_file_picker(extant_files)
if master_file is None:
emit_error(__file__, 0,
@@ -139,9 +163,10 @@ def sync_identical_files(emit_error):
raise Exception("Bad command line or file not found")
chdir_repo_root()
load_if_exists('.', 'config/identical-files.json')
file_groups.update(csharp_test_files())
for group_name, files in csharp_test_files().items():
check_group(group_name, files, master_file_picker, emit_error, True)
for group_name, files in file_groups.items():
check_group(group_name, files, master_file_picker, emit_error)
check_group(group_name, files, master_file_picker, emit_error, False)
def main():
sync_identical_files(emit_local_error)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
description: Add a new predicate `isVla()` to the `ArrayType` class
compatibility: full
type_is_vla.rel: delete

View File

@@ -0,0 +1,11 @@
class Expr extends @expr {
string toString() { none() }
}
class AggregateLiteral extends Expr, @aggregateliteral {
override string toString() { none() }
}
from AggregateLiteral aggregate, Expr initializer, int element_index, int position
where aggregate_array_init(aggregate, initializer, element_index, position, _)
select aggregate, initializer, element_index, position

View File

@@ -0,0 +1,15 @@
class Expr extends @expr {
string toString() { none() }
}
class AggregateLiteral extends Expr, @aggregateliteral {
override string toString() { none() }
}
class MemberVariable extends @membervariable {
string toString() { none() }
}
from AggregateLiteral aggregate, Expr initializer, MemberVariable field, int position
where aggregate_field_init(aggregate, initializer, field, position, _)
select aggregate, initializer, field, position

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
description: add `hasDesignator` predicate to `ArrayOrVectorAggregateLiteral` and `ClassAggregateLiteral`
compatibility: backwards
aggregate_array_init.rel: run aggregate_array_init.qlo
aggregate_field_init.rel: run aggregate_field_init.qlo

View File

@@ -0,0 +1,11 @@
class Type extends @type {
string toString() { none() }
}
class Expr extends @expr {
string toString() { none() }
}
from Type decltype, Expr expr, Type basetype, boolean parentheses
where decltypes(decltype, expr, _, basetype, parentheses)
select decltype, expr, basetype, parentheses

View File

@@ -0,0 +1,19 @@
class Type extends @type {
string toString() { none() }
}
predicate derivedType(Type type, string name, int kind, Type type_id) {
derivedtypes(type, name, kind, type_id)
}
predicate typeTransformation(Type type, string name, int kind, Type type_id) {
type_operators(type, _, _, type_id) and
name = "" and
kind = 3 // @type_with_specifiers
}
from Type type, string name, int kind, Type type_id
where
derivedType(type, name, kind, type_id) or
typeTransformation(type, name, kind, type_id)
select type, name, kind, type_id

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More