Compare commits

...

4212 Commits

Author SHA1 Message Date
Philip Ginsbach
ab4bb65c27 set CompileForOverlayEval in java pack 2025-07-03 16:46:22 +01:00
Jeroen Ketema
3c73f141c4 C++: Update stats file 2025-07-02 21:46:14 +02:00
Jeroen Ketema
2697798f05 C++: Add upgrade and downgrade scripts 2025-07-02 21:46:12 +02:00
Jeroen Ketema
eede720aa8 C++: Uncomment cases in the dbscheme 2025-07-02 21:46:09 +02:00
Paolo Tranquilli
33a2801bb7 Merge pull request #19956 from github/redsun82/java-fix-tests
Java: disable failing maven fetches expectations for now
2025-07-02 17:32:05 +02:00
Paolo Tranquilli
4d3546f7c9 Java: disable failing maven fetches expectations for now 2025-07-02 17:16:41 +02:00
Jeroen Ketema
d17c931939 Merge pull request #19952 from jketema/comment-cleanup
C++: Remove QLtest related comment from integration test
2025-07-02 13:59:15 +02:00
Jeroen Ketema
e47f16b100 Merge pull request #19947 from jketema/function-confusion
C++: Move builtin function identification to its own table
2025-07-02 12:56:18 +02:00
Paolo Tranquilli
c4ec0765ea Merge pull request #19951 from github/aibaars/rust-workflows
Rust: add trailing newline to  rust-cwe.md
2025-07-02 12:26:48 +02:00
Jeroen Ketema
def0ee90c3 C++: Remove QLtest related comment from integration test
I forgot to remove this in https://github.com/github/codeql/pull/19410
2025-07-02 12:14:38 +02:00
Arthur Baars
9e54bc6918 Rust: add trailing newline to rust-cwe.md 2025-07-02 11:39:00 +02:00
Tom Hvitved
d10002c735 Merge pull request #19927 from hvitved/rust/type-inference-overlap3
Rust: Disambiguate more method calls based on argument types
2025-07-02 11:36:37 +02:00
Jeroen Ketema
1103644737 C++: Add upgrade and downgrade scripts 2025-07-01 23:38:24 +02:00
Jeroen Ketema
3418451bee C++: Update stats file 2025-07-01 23:16:26 +02:00
Jeroen Ketema
19d6f665b4 Merge pull request #19676 from mrigankpawagi/patch-1
Fixes in cpp/global-use-before-init
2025-07-01 19:17:29 +02:00
Jeroen Ketema
65b21286a1 C++: Move builtin function identification to its own table 2025-07-01 18:00:44 +02:00
Jeroen Ketema
7c2fd28585 Merge pull request #19938 from jketema/external
C++: Remove unused `external_package` tables from the dbscheme
2025-07-01 16:50:31 +02:00
Mrigank Pawagi
fe24cc876a Merge branch 'main' into patch-1 2025-07-01 20:04:13 +05:30
Arthur Baars
4c6c395b1b Merge pull request #19939 from github/aibaars/rust-workflows
Rust: add to `generate-code-scanning-query-list.py` and `shared-code-metrics.py` scripts
2025-07-01 16:12:11 +02:00
Jeroen Ketema
02e5541953 Merge branch 'main' into patch-1 2025-07-01 15:58:48 +02:00
Mrigank Pawagi
b821b21500 Create 2025-07-01-global-vars-ubi-query-fixes.md.md 2025-07-01 13:12:38 +00:00
Tom Hvitved
add2e0fd9d Rust: Extend methodResolutionDependsOnArgument to parameterized implementations 2025-07-01 14:22:06 +02:00
Tom Hvitved
961e6201ea Rust: Add more type inference tests 2025-07-01 14:22:04 +02:00
Tom Hvitved
b813010b75 Merge pull request #19903 from hvitved/rust/type-inference-overlap2
Rust: Apply inherent method prioritization inside type inference loop
2025-07-01 14:21:15 +02:00
Tom Hvitved
d6b051ed30 Merge pull request #19936 from hvitved/rust/path-resolution-prelude-always
Rust: Assume prelude is always available in path resolution
2025-07-01 13:13:35 +02:00
Owen Mansel-Chan
811ed3ccde Merge pull request #19892 from owen-mc/fix-markdown-query-help-formatting
Fix markdown query help formatting
2025-07-01 12:05:35 +01:00
Tom Hvitved
219a622299 Merge pull request #19926 from hvitved/ruby/restrict-string-component-length
Ruby: Do not compute `StringlikeLiteralImpl.getStringValue` for large strings
2025-07-01 12:45:51 +02:00
Arthur Baars
c08d98d159 Rust: add to querylist and shared code metrics scripts 2025-07-01 12:16:42 +02:00
Tom Hvitved
072339137a Rust: Update expected test output 2025-07-01 10:34:16 +02:00
Jeroen Ketema
f3c5870d44 C++: Update stats file 2025-07-01 10:21:51 +02:00
Tom Hvitved
bd1f46b75c Rust: Assume prelude is always available in path resolution 2025-07-01 10:18:02 +02:00
Jeroen Ketema
8ac69b9116 C++: Add upgrade and downgrade scripts 2025-07-01 10:17:43 +02:00
Tom Hvitved
e88d7baa7d Rust: Apply inherent method prioritization inside type inference loop 2025-07-01 10:17:26 +02:00
Tom Hvitved
e5f0ef6ae8 Rust: Add more type inference tests 2025-07-01 10:17:25 +02:00
Jeroen Ketema
7779f14654 C++: Remove unused external_package tables from the dbscheme 2025-07-01 10:13:04 +02:00
Jeroen Ketema
a791640b52 Merge pull request #19935 from jketema/sync-dbscheme-cpp
C++: synchronize dbscheme
2025-07-01 09:51:29 +02:00
Michael Nebel
233b54c7fa Merge pull request #19891 from michaelnebel/michaelnebel/freezemoresuites
Go/Ruby/Python: Freeze quality queries in `security-and-quality`.
2025-07-01 09:04:19 +02:00
Tom Hvitved
2ee3401cfb Merge pull request #19873 from github/redsun82/rust-item-reorg
Rust: make `AssocItem` and `ExternItem` subclasses of `Item`
2025-07-01 08:58:48 +02:00
Jeroen Ketema
d5c7905009 Merge pull request #19907 from github/idrissrio/no-string-representation
C++: fix `(no string representation)` for `ConstructorInit`
2025-07-01 08:13:31 +02:00
Jeroen Ketema
98798b6f73 C++: Update stats file 2025-06-30 20:12:49 +02:00
Jeroen Ketema
1772193982 Merge pull request #19933 from jketema/arm-change
C++: Add Arm64 change note
2025-06-30 19:19:32 +02:00
Mrigank Pawagi
cf60b62981 fix formatting
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-06-30 16:40:03 +00:00
Jeroen Ketema
44523aeec4 C++: Add Arm64 change note 2025-06-30 18:01:03 +02:00
idrissrio
62e55edbad C++: accept new test results after changes 2025-06-30 17:11:59 +02:00
idrissrio
6a291cc474 C++: fix (no string representation) for ConstructorInit 2025-06-30 17:11:58 +02:00
Taus
184dd5bf10 Merge pull request #19895 from github/tausbn/python-fix-match-as-identifier
Python: Allow use of `match` as an identifier
2025-06-30 16:24:23 +02:00
Paolo Tranquilli
e7959dfde6 Rust: recreate wrongfully deleted upgrade script directory 2025-06-30 15:38:42 +02:00
Jami
de09122de3 Merge pull request #19175 from jcogs33/jcogs33/java/call-to-thread-run
Java: update `java/call-to-thread-run`
2025-06-30 09:31:08 -04:00
Jeroen Ketema
3a3c222e46 C++: Add upgrade and downgrade scripts 2025-06-30 15:28:55 +02:00
Jeroen Ketema
617edf0b70 C++: synchronize dbscheme 2025-06-30 15:28:45 +02:00
Paolo Tranquilli
9e4cdbc53f Merge branch 'main' into redsun82/rust-item-reorg 2025-06-30 14:56:23 +02:00
Paolo Tranquilli
15aa0bbb34 Merge pull request #19866 from github/redsun82/codegen-new-parent-child
Codegen: improve implementation of generated parent/child relationship
2025-06-30 14:52:24 +02:00
Tom Hvitved
97412f4077 Merge pull request #19916 from hvitved/rust/fix-capture-inconsistencies
Rust: Fix variable capture inconsistencies
2025-06-30 14:18:00 +02:00
Tom Hvitved
41a403c904 Ruby: Do not compute StringlikeLiteralImpl.getStringValue for large strings 2025-06-30 13:01:57 +02:00
Jeroen Ketema
23b9db8f6f Merge pull request #19904 from jketema/ffbl
C++: Sync the product-flow field flow branch limits with the default one
2025-06-30 11:17:55 +02:00
Kasper Svendsen
3d7343273e Merge pull request #19813 from github/kaspersv/overlay-java-discarding
Overlay: Add manual Java overlay annotations & discard predicates
2025-06-30 11:17:31 +02:00
Asger F
7c38c48fd7 Merge pull request #19769 from trailofbits/VF/Nest-improvements
Improve NestJS sources and dependency injection
2025-06-30 10:42:18 +02:00
Asger F
3247babfa5 Merge pull request #19762 from trailofbits/VF/type-orm-model-improvements
Improve TypeORM model
2025-06-30 10:40:38 +02:00
Jeroen Ketema
6ae1656ec4 Merge pull request #17581 from jketema/loc-table-merge
C++: Merge the location tables
2025-06-30 10:33:46 +02:00
Tom Hvitved
57661df306 Rust: Fix variable capture inconsistencies 2025-06-30 10:19:42 +02:00
Paolo Tranquilli
9cf037fdb9 Merge branch 'main' into redsun82/codegen-new-parent-child 2025-06-30 10:17:56 +02:00
Tom Hvitved
632cde689b Merge pull request #19702 from geoffw0/lifetime
Rust: New query rust/access-after-lifetime-ended
2025-06-30 10:00:11 +02:00
Paolo Tranquilli
e3a61f5f18 Merge pull request #19899 from github/redsun82/copilot-instructions
Create copilot-instructions.md
2025-06-30 09:11:29 +02:00
Kasper Svendsen
c7194a4012 Overlay: Add missing QLDoc 2025-06-30 08:40:46 +02:00
Michael Nebel
a74f60bb84 Merge pull request #19910 from github/workflow/coverage/update
Update CSV framework coverage reports
2025-06-30 08:34:32 +02:00
Kasper Svendsen
5b09ecd769 Merge pull request #19780 from github/kaspersv/overlay-annotations-script-ci
Overlay: Add CI workflow to check overlay annotations
2025-06-30 08:11:14 +02:00
Jami Cogswell
42904113b4 Java: add qhelp references 2025-06-29 22:50:10 -04:00
Jami Cogswell
87ab4d0160 Java: remove java/run-method-called-on-java-lang-thread-directly
using existing query java/call-to-thread-run instead
2025-06-29 22:42:31 -04:00
Jami Cogswell
12e7bbbae8 Java: update existing tests to services tests 2025-06-29 22:41:47 -04:00
Jami Cogswell
1172f82a4b Java: update existing tests to inline expectations 2025-06-29 22:21:41 -04:00
Jami Cogswell
e266918871 Java: add previous-id 2025-06-29 22:21:06 -04:00
Jami Cogswell
7a2023b863 Java: move original files 2025-06-29 22:13:49 -04:00
github-actions[bot]
81ec3b6566 Add changed framework coverage reports 2025-06-30 00:26:21 +00:00
Mrigank Pawagi
809d1d55a8 remove cases involving sizeof 2025-06-28 17:16:04 +00:00
Nicolas Will
38fdf7eea0 Merge pull request #19880 from bdrodes/operation_step_refactor
Crypto: Refactor OpenSSL operation step data-flow logic
2025-06-27 17:19:11 +02:00
Kasper Svendsen
e02affd327 Merge pull request #19901 from github/kaspersv/overlay-guards-inline
Overlay: Add missing `overlay[caller?]` annotation
2025-06-27 15:13:09 +02:00
Jeroen Ketema
89c91cc1a2 C++: Add change note 2025-06-27 15:06:03 +02:00
Jeroen Ketema
99a24f9650 C++: Fix macro handling after extractor changes 2025-06-27 14:42:33 +02:00
Jeroen Ketema
bf131dc84b C++: Update stats file 2025-06-27 14:42:32 +02:00
Jeroen Ketema
7f47e31fb5 C++: Add upgrade and downgrade scripts 2025-06-27 14:42:20 +02:00
Jeroen Ketema
b4caba7c0e C++: Merge the location tables 2025-06-27 14:42:08 +02:00
REDMOND\brodes
9f0c62b572 Crypto: Address PR comments. 2025-06-27 08:33:01 -04:00
Ben Rodes
122a004851 Update cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/MACAlgorithmInstance.qll
Co-authored-by: Nicolas Will <nicolaswill@github.com>
2025-06-27 08:28:05 -04:00
Jeroen Ketema
3e31cd3ce5 C++: Sync the product-flow field flow branch limits with the default one 2025-06-27 12:59:54 +02:00
Nicolas Will
976364fcaa Merge branch 'main' into operation_step_refactor 2025-06-27 12:05:14 +02:00
Kasper Svendsen
5cddd384c7 Merge branch 'main' into kaspersv/overlay-annotations-script-ci 2025-06-27 11:19:52 +02:00
Kasper Svendsen
6038396115 Merge pull request #19898 from kaspersv/kaspersv/shared-overlay-annotation
Overlay: Add overlay annotation to shared lib
2025-06-27 11:18:55 +02:00
Michael Nebel
143a91efc4 Re-use the security-extended selector in the security-and-frozen-quality selector. 2025-06-27 11:08:08 +02:00
Jeroen Ketema
ad5ee1c498 Merge pull request #19894 from jketema/pretty
C++: Pretty print MaD ids in test output
2025-06-27 11:00:52 +02:00
Kasper Svendsen
5096ce405f Overlay: Add missing overlay[caller?] annotation 2025-06-27 10:50:28 +02:00
Tom Hvitved
3fb8758ae1 Merge pull request #19886 from hvitved/rust/dataflow-caching
Rust: Cache `DataFlow::Node.{toString,getLocation}`
2025-06-27 10:33:50 +02:00
Michael Nebel
2f208bddb6 Merge pull request #19877 from michaelnebel/csharp/microsoftdatasqlclient
C#: Models for Microsoft.Data.SqlClient.
2025-06-27 10:24:38 +02:00
Nora Dimitrijević
f568d41264 Merge pull request #19888 from d10c/d10c/missing-diff-informed-tests
Java, Ruby: add missing .qlref tests
2025-06-27 09:28:41 +02:00
Paolo Tranquilli
c88049a9f4 Create copilot-instructions.md 2025-06-27 09:06:08 +02:00
Tom Hvitved
db0fc7be5d Merge pull request #19881 from hvitved/rust/dataflow-traits
Rust: Data flow through trait methods
2025-06-27 08:55:48 +02:00
Kasper Svendsen
2863c7094a Overlay: Add overlay annotation to shared lib 2025-06-27 08:54:05 +02:00
Jonas Jensen
b446fe74c2 Merge pull request #19846 from jbj/diff-informed-CleartextStorageCookie
Java: Diff-informed CleartextStorageCookie.ql
2025-06-27 08:45:11 +02:00
Kasper Svendsen
f0125e574c Merge branch 'main' into kaspersv/overlay-annotations-script-ci 2025-06-27 08:31:34 +02:00
Kasper Svendsen
e6ef6a3326 Merge branch 'main' into kaspersv/overlay-java-discarding 2025-06-27 08:28:34 +02:00
Kasper Svendsen
da1b99b921 Merge pull request #19779 from github/kaspersv/overlay-java-annotations
Overlay: Add overlay annotations to Java & shared libraries
2025-06-27 08:26:33 +02:00
Joe Farebrother
4cbaeb10e9 Merge pull request #19641 from joefarebrother/python-qual-file-not-closed
Python: Improve performance of FileNotClosed query by using basic block reachability
2025-06-26 23:35:38 +01:00
Jeroen Ketema
0996e6083e C++: Pretty print MaD ids in test output 2025-06-26 23:38:32 +02:00
REDMOND\brodes
0aee4f76f9 Crypto: Minor change to force CI/CD checks to restart, prior ql check failures do not make sense. 2025-06-26 16:35:01 -04:00
REDMOND\brodes
dc8d22a468 Crypto: Fix JCA to account for new key gen instance API in model.qll. 2025-06-26 15:48:10 -04:00
REDMOND\brodes
505d8806c7 Crypto: Add key input support for the graph for key generation operations. 2025-06-26 11:51:49 -04:00
Taus
cd0e46314c Python: Add change note 2025-06-26 15:36:02 +00:00
Taus
ad53518644 Python: Regenerate parser files 2025-06-26 15:34:44 +00:00
Taus
e04821e9e3 Python: Allow use of match as an identifier
This previously only worked in certain circumstances. In particular,
assignments such as `match[1] = ...` or even just `match[1]` would fail
to parse correctly.

Fixing this turned out to be less trivial than anticipated. Consider the
fact that
```
match [1]: case (...)
```
can either look the start of a `match` statement, or it could be a type
ascription, ascribing the value of `case(...)` (a call) to the item at
index 1 of `match`.

To fix this, then, we give `match` the identifier and `match` the
statement the same precendence in the grammar, and additionally also
mark a conflict between `match_statement` and `primary_expression`. This
causes the conflict to be resolved dynamically, and seems to do the
right thing in all cases.
2025-06-26 15:33:00 +00:00
Nicolas Will
c54e68c855 Merge branch 'main' into pr/19880 2025-06-26 16:47:38 +02:00
Jeroen Ketema
ec09d36667 Merge pull request #19832 from ebickle/feature/oracle-model
C++:  Support SQL Injection sinks for Oracle Call Interface (OCI)
2025-06-26 16:33:55 +02:00
Nicolas Will
0a97357216 Merge pull request #19814 from bdrodes/codescanning_fixes_cpp
Crypto: Fix QL-for-QL alerts and refactor type standardization
2025-06-26 16:33:19 +02:00
Paolo Tranquilli
4799861225 Merge branch 'redsun82/codegen-new-parent-child' into redsun82/rust-item-reorg 2025-06-26 16:29:42 +02:00
Owen Mansel-Chan
2ed451c9e3 Reformat references 2025-06-26 15:20:07 +01:00
Owen Mansel-Chan
10bb88825e Add full stop at the end of each reference 2025-06-26 15:20:06 +01:00
Owen Mansel-Chan
297cdb53aa Update guide to specify a full stop at the end of each reference 2025-06-26 15:20:04 +01:00
Eric Bickle
1142efbc03 Merge branch 'main' into feature/oracle-model 2025-06-26 06:48:40 -07:00
Eric Bickle
3083bdb0b4 C++: Update MaD line numbers in flow.expected 2025-06-26 06:47:24 -07:00
Owen Mansel-Chan
9f0f40d6ce Add "Correct Usage" and "Incorrect Usage" headings 2025-06-26 14:40:49 +01:00
Owen Mansel-Chan
9521994adc Fix format of markdown query help files 2025-06-26 14:40:07 +01:00
Tom Hvitved
9a48459951 Add change note 2025-06-26 15:14:08 +02:00
Nicolas Will
652e7ba15b Merge branch 'main' into codescanning_fixes_cpp 2025-06-26 14:54:36 +02:00
Michael Nebel
37b3ca036a Python: Freeze the quality queries in the security-and-quality suite. 2025-06-26 14:45:05 +02:00
Michael Nebel
d926a6a47d Go: Freeze the quality queries in the security-and-quality suite. 2025-06-26 14:35:21 +02:00
Michael Nebel
7fecf7466f Ruby: Freeze the quality queries in the security-and-quality suite. 2025-06-26 14:26:28 +02:00
Michael Nebel
145ada53f2 C#/Java/JavaScript: Re-factor query suites to use the new selector. 2025-06-26 14:19:27 +02:00
Nick Rolfe
5a176d6fbd Merge pull request #19878 from github/nickrolfe/ql-overlay
Ruby/Rust/QL: simplify generation of overlay-related tables/predicates
2025-06-26 08:10:10 -04:00
Michael Nebel
3efbed56b0 Shared: Modify the frozen selector to only include security queries. 2025-06-26 14:09:43 +02:00
Michael Nebel
1fbf3a39fb Shared: Add a copy of the security-and-quality selector. 2025-06-26 14:05:46 +02:00
Tom Hvitved
b70aa804e5 Rust: Cache DataFlow::Node.{toString,getLocation} 2025-06-26 13:49:37 +02:00
Nora Dimitrijević
89f1ee0301 Ruby: add meta/TaintedNodes.ql test 2025-06-26 13:22:07 +02:00
Nora Dimitrijević
e0b3a2c5f9 Java: convert ArbitraryApkInstallation test to .qlref 2025-06-26 13:22:05 +02:00
Kasper Svendsen
712e64e4a8 Overlay: Add overlay annotations to shared Guards library 2025-06-26 13:19:49 +02:00
Kasper Svendsen
9d2dd782d9 Merge remote-tracking branch 'github/main' into kaspersv/overlay-java-annotations 2025-06-26 13:18:25 +02:00
Jeroen Ketema
a5737dded3 Merge branch 'main' into feature/oracle-model 2025-06-26 12:48:55 +02:00
Tamás Vajk
ae36f94d5e Merge pull request #19844 from tamasvajk/tamasvajk/threadpoolexecutor
Java: Add `java/javautilconcurrentscheduledthreadpoolexecutor` query for zero thread pool size
2025-06-26 12:36:09 +02:00
Paolo Tranquilli
de72e68d2c Merge branch 'main' into redsun82/codegen-new-parent-child 2025-06-26 12:14:53 +02:00
Paolo Tranquilli
afc78ced50 Merge pull request #19874 from github/redsun82/codegen-use-one-test-file
Codegen: use one generated test file per directory
2025-06-26 11:59:40 +02:00
Anders Schack-Mulligen
321a4afd5c Merge pull request #19883 from aschackmull/java/fix-assert-cfg
Java: Fix assert CFG by properly tagging the false successor.
2025-06-26 11:43:27 +02:00
Tamas Vajk
1bd543a8a2 Improve readability of the ID 2025-06-26 11:36:32 +02:00
Kasper Svendsen
64f27e2adf Java: Add abstraction for discardable locatables 2025-06-26 11:35:37 +02:00
Tamás Vajk
1e0dd2a935 Apply suggestion from @michaelnebel
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2025-06-26 11:34:43 +02:00
Anders Schack-Mulligen
7750f1244c Merge pull request #19884 from aschackmull/guards/eqtest-refactor
Guards: Refactor EqualityTest interface.
2025-06-26 11:04:55 +02:00
Anders Schack-Mulligen
c091fc585b Java: Account for AssertionError possibly not being extracted. 2025-06-26 11:03:59 +02:00
Anders Schack-Mulligen
326f2b0498 Java: Accept qltest change showing FP removal. 2025-06-26 11:03:39 +02:00
Anders Schack-Mulligen
f07d9dda39 Guards: Refactor EqualityTest interface. 2025-06-26 10:26:40 +02:00
Jeroen Ketema
b16e710d3b Merge pull request #19870 from jketema/jketema/stats
C++: Update stats file after DCA and extractor changes
2025-06-26 10:21:35 +02:00
Anders Schack-Mulligen
1d4c8197ec Java: Fix assert CFG by properly tagging the false successor. 2025-06-26 10:18:14 +02:00
Jonas Jensen
fc2b18ae8a Java: Diff-informed CleartextStorageCookie.ql
This query shares implementation with several other queries about
cleartext storage, but it's the only one of them that's in the
code-scanning suite. The sharing mechanism remains the same as before,
but now each query has to override `getASelectedLocation` to become
diff-informed.

Two other data-flow configurations are used in this query, but they
can't easily be made diff-informed.
2025-06-26 09:31:11 +02:00
Paolo Tranquilli
9a8ef3acf7 Merge branch 'main' into redsun82/codegen-new-parent-child 2025-06-26 09:30:41 +02:00
Vasco-jofra
8a7516528d Update formatting 2025-06-26 09:29:07 +02:00
Anders Schack-Mulligen
4d2c67857f Merge pull request #19573 from aschackmull/guardslib
Shared/Java: Add shared Guards library and switch Java to use it.
2025-06-26 09:28:32 +02:00
Michael Nebel
cfadd30f98 C#: Add change-note. 2025-06-26 08:52:18 +02:00
Michael Nebel
becd46a47e C#: Add MaD models for Microsoft.Data.SqlClient. 2025-06-26 08:51:10 +02:00
Michael Nebel
f3eafd33ff C#: Exclude Microsoft.Data.SqlClient.SqlCommand from the best effort SqlSink creation. 2025-06-26 08:46:49 +02:00
Michael Nebel
ed7f68279f C#: Add cs/sql-injection tests for APIs in Microsoft.Data.SqlClient. 2025-06-26 08:44:50 +02:00
Anders Schack-Mulligen
6f4adb8892 Shared: address review comments. 2025-06-26 07:17:37 +02:00
Anders Schack-Mulligen
5ddddaecdc Java: Add change note. 2025-06-26 07:17:36 +02:00
Anders Schack-Mulligen
4645856f09 Java: document FP 2025-06-26 07:17:36 +02:00
Anders Schack-Mulligen
73810a6d85 Java: Fix perf issue. 2025-06-26 07:17:35 +02:00
Anders Schack-Mulligen
5a34a1a51b Shared: Try caching. 2025-06-26 07:17:35 +02:00
Anders Schack-Mulligen
d4c897f8e2 Java: Fix perf issue. 2025-06-26 07:17:35 +02:00
Anders Schack-Mulligen
42b1b12aa1 Java: Fix qltests 2025-06-26 07:17:34 +02:00
Anders Schack-Mulligen
5c0dcd980d Java: Switch to the shared Guards library. 2025-06-26 07:17:34 +02:00
Anders Schack-Mulligen
cc13193cb6 Java: Replace some references to basicNullGuard. 2025-06-26 07:17:33 +02:00
Anders Schack-Mulligen
0607fefc57 Java: Refactor integerGuard. 2025-06-26 07:17:33 +02:00
Anders Schack-Mulligen
a2778eee75 Java: Refactor clearlyNotNullExpr into a base case that does not rely on SSA. 2025-06-26 07:17:32 +02:00
Anders Schack-Mulligen
22d5dc999a Shared: Bugfix for unique value implication. 2025-06-26 07:17:32 +02:00
Anders Schack-Mulligen
378209a6ad Shared: Simplify and improve joins. 2025-06-26 07:17:31 +02:00
Anders Schack-Mulligen
b19bff9a4e Shared: Switch case guards to be the case statements. 2025-06-26 07:17:31 +02:00
Anders Schack-Mulligen
f772493f4c Shared: Elaborate qldoc. 2025-06-26 07:17:31 +02:00
Anders Schack-Mulligen
73ae613b7a Shared: Many tweaks to Guards. 2025-06-26 07:17:30 +02:00
Anders Schack-Mulligen
c212d0ac8f Shared: Improve shared guards lib. 2025-06-26 07:17:30 +02:00
Anders Schack-Mulligen
16c5b57953 Shared: Extend the shared Guards library with support for exception branch points. 2025-06-26 07:17:29 +02:00
Anders Schack-Mulligen
14b87f97b9 Shared: Extend the shared Guards library with support for custom wrappers. 2025-06-26 07:17:29 +02:00
Anders Schack-Mulligen
1d75008eba Shared: Add a shared Guards library inspired by the Java and C# versions. 2025-06-26 07:17:28 +02:00
Anders Schack-Mulligen
994c1f6427 Java: Add hasInputFromBlock predicate in BaseSSA. 2025-06-26 07:17:28 +02:00
Anders Schack-Mulligen
a0c849139c Java: Add guards-logic qltest with inline expectation. 2025-06-26 07:17:28 +02:00
Jami
aa65f54b1d Merge pull request #19882 from owen-mc/go/avoid-deprecated-class
Go: Avoid using deprecated class
2025-06-25 21:16:08 -04:00
Owen Mansel-Chan
9663ecad21 Avoid using deprecated class 2025-06-26 01:46:14 +01:00
Owen Mansel-Chan
0f07ab58cf Merge pull request #19654 from owen-mc/go/fix-definedtype-getbasetype
Go: fix `DefinedType.getBaseType`
2025-06-26 00:19:19 +01:00
Owen Mansel-Chan
d7b1d7bef4 Merge pull request #19677 from owen-mc/go/better-class-names-and-helpers
Go: Improve two class names and add some helper predicates
2025-06-26 00:17:32 +01:00
Chris Smowton
2291e10ce6 Fix typo
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-25 21:38:22 +02:00
Tom Hvitved
8c240399c1 Rust: Apply MaD trait models to implementations 2025-06-25 21:32:24 +02:00
Tom Hvitved
3e54c61f52 Rust: Add MaD trait tests 2025-06-25 21:32:22 +02:00
Tom Hvitved
5e265b10c7 Rust: Trait call dispatch in dataflow 2025-06-25 21:32:21 +02:00
Tom Hvitved
a4ed5da50b Rust: Add data flow tests involving traits 2025-06-25 21:32:19 +02:00
REDMOND\brodes
7559c06fdb Merge branch 'operation_step_refactor' of https://github.com/bdrodes/codeql into operation_step_refactor 2025-06-25 15:26:21 -04:00
REDMOND\brodes
7477471bc5 Crypto: Bug fix in output model 2025-06-25 15:25:51 -04:00
Nicolas Will
6571c11eb7 Merge branch 'main' into operation_step_refactor 2025-06-25 20:38:11 +02:00
Nicolas Will
98479ff6c3 Crypto: Update queries to use new type names 2025-06-25 20:34:33 +02:00
Nicolas Will
ad7358ac4f Crypto: Deduplicate "GCM" mapping from OpenSSL modeling 2025-06-25 20:26:38 +02:00
Nicolas Will
8e6031df14 Crypto: Fix further acronym casing and remove unused field 2025-06-25 20:25:33 +02:00
Nicolas Will
b8097501b6 Update cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-25 20:12:51 +02:00
Nicolas Will
14472bf744 Crypto: Refactor type name mapping and fix QL-for-QL alerts 2025-06-25 20:08:14 +02:00
REDMOND\brodes
8280cbcaa1 Crypto: Update JCA model to include new model.qll updates. 2025-06-25 13:55:47 -04:00
Paolo Tranquilli
6803bf3861 Merge pull request #19851 from github/redsun82/rust-emission-trait
Rust: refactor `pre_emit!` and `post_emit!` to a trait
2025-06-25 19:22:29 +02:00
REDMOND\brodes
f9147cfb2b Crypto: Remove experimental qll file 2025-06-25 12:26:41 -04:00
REDMOND\brodes
9cd2241bf6 Crypto: Remove accidentally uploaded temporary file. 2025-06-25 11:36:40 -04:00
REDMOND\brodes
072765abca Crypto: Code scanning warning corrections. 2025-06-25 11:16:49 -04:00
REDMOND\brodes
93bad3c799 Crypto: Misc bug fixes and updated expected files. 2025-06-25 11:02:30 -04:00
Nick Rolfe
867826466e Ruby/QL: unconditionally generate discard predicates 2025-06-25 15:35:58 +01:00
Nick Rolfe
57b866bbe1 Ruby/Rust/QL: move databaseMetadata to prefix.dbscheme
This has no effect on ruby.dbscheme, and adds the relation to
ql.dbscheme and rust.dbscheme. (The relation will be required for
overlay support).
2025-06-25 15:35:08 +01:00
Nick Rolfe
9021168725 QL: fix stats-collection workflow 2025-06-25 15:35:06 +01:00
Nora Dimitrijević
942cfc3bd6 Merge pull request #19842 from d10c/d10c/convert-java-tests-to-qlref
Java: convert remaining `java-code-scanning.qls` query tests to `.qlref`
2025-06-25 16:02:28 +02:00
Nicolas Will
710e08088f Crypto: Refactor casing and documentation 2025-06-25 15:29:03 +02:00
Geoffrey White
006f0e8fcf Merge branch 'main' into lifetime 2025-06-25 14:17:00 +01:00
Michael Nebel
bb85e24121 C#: Convert SQL injection test to use inline expectations. 2025-06-25 14:53:09 +02:00
Michael Nebel
af2ebed395 C#: Add stubs for Microsoft.Data.SqlClient. 2025-06-25 14:53:07 +02:00
Paolo Tranquilli
6a0140d3c9 Rust: fix Const test 2025-06-25 14:42:03 +02:00
Paolo Tranquilli
e4056c0a11 Rust: add change note 2025-06-25 14:39:22 +02:00
Paolo Tranquilli
78ecf1814e Rust: add upgrade/downgrade scripts 2025-06-25 14:36:29 +02:00
Paolo Tranquilli
5d3bdb955c Merge branch 'main' into redsun82/rust-item-reorg 2025-06-25 14:34:48 +02:00
Paolo Tranquilli
ab2e7082f3 Merge branch 'main' into redsun82/codegen-use-one-test-file 2025-06-25 14:31:17 +02:00
Paolo Tranquilli
b8b57365c3 Merge pull request #19876 from github/redsun82/rust-qltest-setup-nightly-toolchain
Rust: fix parallel execution of tests using the nightly toolchain
2025-06-25 14:30:22 +02:00
Paolo Tranquilli
fa006e3ea5 Rust: fix test 2025-06-25 14:17:14 +02:00
Paolo Tranquilli
1f66f902e5 Rust: fix parallel execution of tests using the nightly toolchain
Since we dropped checked in toolchain files for tests requiring nightly,
the `setup.sh` script was not doing its job of setting up the toolchains
and the `rust-src` component, occasionally leading to test failures.
2025-06-25 14:13:43 +02:00
Nick Rolfe
1e68a7e2de Merge pull request #19719 from github/nickrolfe/ruby-discard-predicates
Ruby: generate overlay discard predicates
2025-06-25 07:18:29 -04:00
Michael Nebel
92a1b8971c C#: Add Microsoft.Data.SqlClient to the list of stubs. 2025-06-25 12:52:58 +02:00
Nick Rolfe
a9ddf0026b Ruby: generate overlay discard predicates 2025-06-25 11:47:27 +01:00
Nick Rolfe
1bbba2f664 Merge pull request #19684 from github/nickrolfe/ruby-overlay-extraction
Ruby: add support for extracting overlay databases
2025-06-25 06:39:30 -04:00
Paolo Tranquilli
355fd85c23 Codegen: remove unneeded has|getNumberOf in instance tests 2025-06-25 12:02:13 +02:00
Paolo Tranquilli
99eaaaa830 Rust: fix QL compilation error 2025-06-25 11:50:49 +02:00
Nick Rolfe
c6ff07ad5a Merge branch 'main' into nickrolfe/ruby-overlay-extraction 2025-06-25 05:46:26 -04:00
Paolo Tranquilli
6bbf1e3bc1 Codegen: use one generated test file per directory
This collapses all generated test QL sources into a single one per
directory, using query predicates to run the different tests.

This should improve the time required to run generated tests.
2025-06-25 11:44:54 +02:00
Napalys Klicius
3d9e2f5438 Merge pull request #19858 from Napalys/js/execa
JS: moved `execa` out of experimental
2025-06-25 10:34:52 +02:00
Paolo Tranquilli
bcca47c873 Rust: make AssocItem and ExternItem subclasses of Item 2025-06-25 10:25:24 +02:00
Kasper Svendsen
46ac2fd9f0 Add CI workflow to check overlay annotations 2025-06-25 10:19:25 +02:00
Paolo Tranquilli
792ea10577 Merge branch 'redsun82/codegen-new-parent-child' into redsun82/rust-emission-trait 2025-06-25 10:19:10 +02:00
Kasper Svendsen
7186ea5975 Merge pull request #19871 from github/kaspersv/overlay-script-re
Use regex to match overlay annotations
2025-06-25 09:39:50 +02:00
Kasper Svendsen
869ba0d246 Use regex to match overlay annotations 2025-06-25 09:30:49 +02:00
Napalys Klicius
73126fef9e JS: update change note. 2025-06-25 09:26:26 +02:00
Jeroen Ketema
2f1cd388d1 C++: Update stats file after DCA and extractor changes 2025-06-25 09:21:56 +02:00
Asger F
d39b68cd41 Merge pull request #19849 from asgerf/js/remove-legacy-actions-queries
JS: Remove legacy actions queries
2025-06-25 09:18:33 +02:00
Asger F
853fc1a7cf Merge pull request #19852 from asgerf/js/react-use-server
JS: Model React 'use' and 'use server'
2025-06-25 09:13:56 +02:00
Jeroen Ketema
ddae47118b Merge pull request #16075 from jketema/explicit
C++: Handle explicitly instantiated templates
2025-06-25 08:53:50 +02:00
Jeroen Ketema
fff23040b3 C++: Update test results 2025-06-25 08:14:22 +02:00
REDMOND\brodes
bd0efbe48c Crypto: Overhaul of EVP final/init/update to now use a more general 'OperationStep' mechanic. 2025-06-24 16:03:25 -04:00
Chuan-kai Lin
9a064de86e Merge pull request #19865 from github/cklin/pick-kotlin-version
pick-kotlin-version.py: tolerate warnings
2025-06-24 10:21:13 -07:00
Eric Bickle
b8f8501cf5 Merge pull request #1 from geoffw0/sql
C++: Fix for the SQL query.
2025-06-24 10:13:52 -07:00
Aditya Sharad
1c567b9b71 Merge pull request #19867 from adityasharad/qldoc/opcode-script-regex
QLDoc scripts: Fix overly permissive regex ranges
2025-06-24 10:11:08 -07:00
Aditya Sharad
a79e3cf604 QLDoc scripts: Fix overly permissive regex ranges
The range `A-aa-z` was too permissive and
includes special characters between `Z` and `a`.
Low impact, but fix to address an internally
reported code scanning alert.
2025-06-24 10:00:29 -07:00
Nora Dimitrijević
690446149a Java: add CleartextStorageCookie test
Given that it's a non-path-problem dataflow query, the InlineExpectationsTest is not as useful.
2025-06-24 18:12:19 +02:00
Paolo Tranquilli
1dcd60527c Codegen: improve implementation of generated parent/child relationship
This improves the implementation of the generated parent/child
relationship by adding a new `all_children` field to `ql.Class` which
lists all children (both direct and inherited) of a class, carefully
avoiding duplicating children in case of diamond inheritance. This:
* simplifies the generated code,
* avoid children ambiguities in case of diamond inheritance.

This only comes with some changes in the order of children in the
generated tests (we were previously sorting bases alphabetically there).
For the rest this should be a non-functional change.
2025-06-24 17:26:24 +02:00
Jeroen Ketema
9a83005730 Merge pull request #19862 from jketema/complex
C++: Support more complex 16-bit float types
2025-06-24 17:26:07 +02:00
Chuan-kai Lin
565627847f pick-kotlin-version.py: tolerate warnings
This commit changes pick-kotlin-version.py to use re.search() instead of
re.match(), so that it can better cope with warning messages.
2025-06-24 08:13:43 -07:00
Jeroen Ketema
8f249c77bc C++: Support more complex 16-bit float types 2025-06-24 16:56:34 +02:00
Nora Dimitrijević
a49999dd5d PolynomialReDoS: disable diff-informed support
This is because it was failing the diff-informed consistency check, and like other ReDoS queries (Python?) the query tries to be helpful by showing a substring of a regex, which has a `hasLocation(...)` (intensional) but no corresponding `getLocation()` (extensional). Until the location overrides get updated to support `hasLocation`-based locations, it's probably best to turn off diff-informed support.
2025-06-24 16:42:41 +02:00
Nora Dimitrijević
b2cb585bf2 UnsafeDeserialization: add missing getASelectedSinkLocation override
This fixes the failing diff-informed consistency check.
2025-06-24 16:42:39 +02:00
Nora Dimitrijević
e213e3fc37 Java: convert ImplicitPendingIntents test to .qlref 2025-06-24 16:42:37 +02:00
Nora Dimitrijević
e0311e26c6 Java: convert ImproperIntentVerification test to .qlref
It's a non-path query, so the InlineExpectationsTest postprocessor doesn't do anything.
2025-06-24 16:42:35 +02:00
Nora Dimitrijević
aac4f63e9a Java: convert RequestForgery test to .qlref 2025-06-24 16:42:32 +02:00
Nora Dimitrijević
7f05b72e10 Java: convert OgnlInjection test to .qlref 2025-06-24 16:42:30 +02:00
Nora Dimitrijević
cadfd0dcaa Java: convert RsaWithoutOaep test to .qlref 2025-06-24 16:42:28 +02:00
Nora Dimitrijević
b7e47e2cf3 Java: convert PolynomialReDoS and RegexInjection tests to .qlref
Leaves ReDoS.ql unmodified since it's not a dataflow query; just moves it to its own directory.
2025-06-24 16:42:26 +02:00
Nora Dimitrijević
f5c7ef6ab4 Java: convert XPathInjection test to .qlref 2025-06-24 16:42:23 +02:00
Nora Dimitrijević
162b1c51a9 Java: convert XXE test to .qlref 2025-06-24 16:42:21 +02:00
Nora Dimitrijević
7f33f57c9b Java: convert UrlForward test to .qlref 2025-06-24 16:42:19 +02:00
Nora Dimitrijević
bf1a699982 Java: convert CWE-522 tests to .qlref 2025-06-24 16:42:17 +02:00
Nora Dimitrijević
4412335223 Java: convert UnsafeDeserialization test to .qlref 2025-06-24 16:42:14 +02:00
Nora Dimitrijević
c4b0955045 Java: convert WebviewDebuggingEnabled test to .qlref 2025-06-24 16:42:12 +02:00
Nora Dimitrijević
192f45ed2b Java: convert FragmentInjection test to .qlref 2025-06-24 16:42:10 +02:00
Nora Dimitrijević
2b19cbcd7e Java: convert UnsafeContentUriResolution test to .qlref 2025-06-24 16:42:08 +02:00
Nora Dimitrijević
28694276e2 Java: convert MissingJWTSignatureCheck test to .qlref 2025-06-24 16:42:06 +02:00
Nora Dimitrijević
85c2f72892 Java: convert InsecureRandomness test to .qlref 2025-06-24 16:42:04 +02:00
Nora Dimitrijević
288a938814 Java: convert InsufficientKeySize test to .qlref 2025-06-24 16:42:02 +02:00
Nora Dimitrijević
993b261b63 Java: convert InsecureTrustManager test to .qlref 2025-06-24 16:42:00 +02:00
Nora Dimitrijević
b736e3733c Java: convert IntentUriPermissionManipulation test to .qlref 2025-06-24 16:41:58 +02:00
Nora Dimitrijević
c77875d834 Java: convert TemplateInjection test to .qlref 2025-06-24 16:41:56 +02:00
Nora Dimitrijević
b8c7bd29c3 Java: convert SpelInjection test to .qlref 2025-06-24 16:41:54 +02:00
Nora Dimitrijević
2a837b208b Java: convert MvelInjection test to .qlref 2025-06-24 16:41:52 +02:00
Nora Dimitrijević
1b61cb660a Java: convert JexlInjection test to .qlref 2025-06-24 16:41:50 +02:00
Nora Dimitrijević
1cc91e964d Java: convert GroovyInjection test to .qlref 2025-06-24 16:41:48 +02:00
Nora Dimitrijević
8e53da285f Java: convert XSS test to .qlref 2025-06-24 16:41:46 +02:00
Nora Dimitrijević
199eabdd20 Java: convert XsltInjection test to .qlref
Also, split off into separate directory from JndiInjectionTest because their $Alerts were interfering with each other.
2025-06-24 16:41:43 +02:00
Nora Dimitrijević
3f9e0fee81 Java: convert JndiInjection test to .qlref 2025-06-24 16:41:41 +02:00
Nora Dimitrijević
e1ddce8456 Java: convert PartialPathTraversalFromRemote test to .qlref 2025-06-24 16:41:39 +02:00
Nora Dimitrijević
588efe4b2b Java: Convert TaintedPath test to .qlref 2025-06-24 16:41:35 +02:00
Nora Dimitrijević
c4a385fa6a Merge pull request #19817 from d10c/d10c/convert-tests-to-qlref
Convert remaining `{go,swift,ruby}-code-scanning.qls` query tests to `.qlref`
2025-06-24 16:31:13 +02:00
Arthur Baars
afcd8c3047 Merge pull request #19864 from github/post-release-prep/codeql-cli-2.22.1
Post-release preparation for codeql-cli-2.22.1
2025-06-24 15:45:21 +02:00
Nora Dimitrijević
35a48e7f41 Swift: convert XXE test to .qlref 2025-06-24 14:58:16 +02:00
Nora Dimitrijević
aa3e0116c1 Swift: convert PathInjection test to .qlref 2025-06-24 14:58:12 +02:00
Nora Dimitrijević
895a8fcb0f Swift: convert CleartextLogging test to .qlref 2025-06-24 14:58:08 +02:00
Nora Dimitrijević
7615ec7a24 Swift: convert PredicateInjection test to .qlref 2025-06-24 14:58:03 +02:00
Nora Dimitrijević
92a48cdc2b Ruby: convert InsecureDownload test to .qlref 2025-06-24 14:57:59 +02:00
Nora Dimitrijević
e32982057c Ruby: convert CommandInjection test to .qlref 2025-06-24 14:57:54 +02:00
Nora Dimitrijević
807c7691c6 Ruby: add PrettyPrintModels test postprocessor 2025-06-24 14:57:49 +02:00
Nora Dimitrijević
cf92b0e91b Go: convert IncorrectIntegerConversion test to .qlref 2025-06-24 14:57:48 +02:00
Nora Dimitrijević
76a3306c63 Go: convert UncontrolledAllocationSize test to .qlref 2025-06-24 14:57:44 +02:00
github-actions[bot]
6972c7a872 Post-release preparation for codeql-cli-2.22.1 2025-06-24 12:55:14 +00:00
Geoffrey White
e37979546c Merge pull request #19754 from geoffw0/typeinfer
Rust: Type inference for `for` loops and array expressions
2025-06-24 13:19:37 +01:00
Kasper Svendsen
c380c5f150 Merge pull request #19863 from github/kaspersv/ql4ql-overlay-caller-q
QL4QL: Extend ql/inline-overlay-caller
2025-06-24 13:15:34 +02:00
Napalys Klicius
79a9d7def8 JS: removed execa parts from SystemCommandExecutors and moved it to Execa.qll 2025-06-24 12:41:22 +02:00
Arthur Baars
4ece8abc30 Merge pull request #19860 from github/release-prep/2.22.1
Release preparation for version 2.22.1
2025-06-24 12:37:02 +02:00
Geoffrey White
869c974745 Rust: Change note. 2025-06-24 11:34:54 +01:00
Geoffrey White
96dcdf94af Rust: Change note. 2025-06-24 11:31:38 +01:00
Geoffrey White
21bea7e403 Merge branch 'main' into typeinfer 2025-06-24 11:23:34 +01:00
Paolo Tranquilli
d7f14600b3 Merge pull request #19853 from github/redsun82/rust-enable-change-note-check
Rust: enable change-note check
2025-06-24 12:15:08 +02:00
Kasper Svendsen
e1fc138670 QL4QL: Extend ql/inline-overlay-caller 2025-06-24 11:58:31 +02:00
Napalys Klicius
0902ca0605 JS: address copilot suggestions 2025-06-24 11:37:07 +02:00
Asger F
54bfde9b7a Update javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-24 11:22:37 +02:00
Asger F
bae3e255e4 Merge pull request #19859 from asgerf/js/remote-element-from-docs
JS: Remote mention of Element MaD token
2025-06-24 11:22:24 +02:00
Geoffrey White
6677a81e1c Merge branch 'main' into lifetime 2025-06-24 10:11:21 +01:00
github-actions[bot]
3e074b2425 Release preparation for version 2.22.1 2025-06-24 08:55:31 +00:00
Simon Friis Vindum
601e317bfe Merge pull request #19833 from paldepind/rust/overloaded-index
Rust: Add type inference for overloaded index expressions
2025-06-24 10:51:31 +02:00
Paolo Tranquilli
d0c7550119 Rust: refactor pre_emit! and post_emit! to a trait 2025-06-24 10:40:33 +02:00
Kasper Svendsen
0ee6a78a4a Java: Allow methods with empty bodies for overlay 2025-06-24 10:38:07 +02:00
Kasper Svendsen
6e92d7e247 Java: Add entity discard predicates 2025-06-24 10:38:06 +02:00
Kasper Svendsen
b6e56f26c7 Java: Add manual overlay annotations 2025-06-24 10:38:05 +02:00
Asger F
d428eaeef8 Merge pull request #19655 from GeekMasher/js-clientrests-axios
JS: ClientRequests Axios Instance support
2025-06-24 10:35:51 +02:00
Geoffrey White
c2b317783f C++: Fix for SQL query. 2025-06-24 09:29:46 +01:00
Jeroen Ketema
676289e653 Merge pull request #19845 from jketema/ir-sve
C++: Handle Arm SVE in the IR
2025-06-24 10:29:06 +02:00
Kasper Svendsen
81b677a2d9 rename overlay[caller] to overlay[caller?] 2025-06-24 10:25:07 +02:00
Kasper Svendsen
2da8d61984 Run config/sync-files.py 2025-06-24 10:25:06 +02:00
Kasper Svendsen
c207cfdeb7 Overlay: Add overlay annotations to Java & shared libraries 2025-06-24 10:25:06 +02:00
Napalys Klicius
2218a981f6 Merge pull request #19854 from Napalys/js/sinon
JS: Explicitly Mark `Sinon` Package as Non RegExp
2025-06-24 10:24:13 +02:00
Kasper Svendsen
e8a08a6b96 Merge pull request #19778 from github/kaspersv/overlay-annotations-script
Overlay: Add script to help maintain overlay annotations
2025-06-24 10:22:37 +02:00
Asger F
cb983102e5 JS: Remote mention of Element MaD token 2025-06-24 09:46:20 +02:00
Simon Friis Vindum
153e91bebb Rust: Re-enable special casing in indexing for Vec 2025-06-24 09:30:23 +02:00
Napalys Klicius
8c345461f0 JS: add change note 2025-06-24 09:08:15 +02:00
Napalys Klicius
d05de1ba4e JS: moved execa test cases outside experimental 2025-06-24 09:08:13 +02:00
Napalys Klicius
d8b5cb5862 JS: moved execa out of experimental 2025-06-24 09:07:43 +02:00
Paolo Tranquilli
e5cb639e28 Merge pull request #19848 from github/redsun82/rust-regenerate-models
Rust: regenerate models after rust-analyzer update
2025-06-24 08:22:38 +02:00
Napalys Klicius
33f42444d5 JS: add change note 2025-06-23 20:25:18 +02:00
Napalys Klicius
ef51ab172f JS: exclude sinon module from regexp match calls 2025-06-23 20:25:17 +02:00
Napalys Klicius
584b4f51aa JS: add false positive test cases for hostname regex detection 2025-06-23 20:25:10 +02:00
Geoffrey White
11ffb1f86f Merge branch 'main' into lifetime 2025-06-23 17:06:06 +01:00
Paolo Tranquilli
8d4e36f869 Rust: enable change-note check 2025-06-23 17:53:53 +02:00
Paolo Tranquilli
bcb3863937 Merge branch 'main' into redsun82/rust-regenerate-models 2025-06-23 17:44:15 +02:00
Paolo Tranquilli
29b37a42ef Merge pull request #19524 from github/redsun82/cargo-upgrade-3
Rust: upgrade `rust-analyzer` to 0.0.288
2025-06-23 17:43:39 +02:00
Geoffrey White
b82a7ab745 Rust: Update variable name in examples. 2025-06-23 16:42:02 +01:00
Tom Hvitved
1ccea7f6b2 Merge pull request #19829 from paldepind/rust/type-tree-constraint
Rust: Add `SatisfiesConstraintInput` module in shared type inference
2025-06-23 17:17:23 +02:00
Tom Hvitved
1f559b283d Merge pull request #19850 from hvitved/rust/in-derive-macro
Rust: Take derive macros into account in `is{In,From}MacroExpansion`
2025-06-23 17:16:02 +02:00
Asger F
ea0a80a06a JS: Un-deprecate Actions.qll for now as we have some internal queries that use it. 2025-06-23 16:38:04 +02:00
Asger F
4fc5738ded JS: Change note 2025-06-23 16:08:21 +02:00
Asger F
61887beae0 JS: Add test case for false positive 2025-06-23 16:03:41 +02:00
Asger F
cc1a28ac7e JS: Add parameters of server functions as remote flow sources 2025-06-23 16:03:39 +02:00
Asger F
d9f4e4a90d JS: Add tests for functions with "use server" directive 2025-06-23 16:03:38 +02:00
Asger F
7dd7246cd4 JS: Update tests.expected
Mostly noise due to renamed predicates and reordered result sets
2025-06-23 16:03:35 +02:00
Asger F
180b023c7c JS: Add inline expectations to React test 2025-06-23 16:03:33 +02:00
Asger F
1787d4dce8 JS: Enable inline expectations in test
Will update files in next commit
2025-06-23 16:03:32 +02:00
Asger F
1a18e68364 JS: Remove reactLibraryRef
This is not testing anything interesting, and is noisy when adding inline expectations
2025-06-23 16:03:30 +02:00
Asger F
99fb6b62ad JS: Remove test_ prefix from query predicates 2025-06-23 16:03:29 +02:00
Paolo Tranquilli
823ac5c7ea Merge branch 'main' into redsun82/cargo-upgrade-3 2025-06-23 16:01:21 +02:00
Simon Friis Vindum
326c7de521 Rust: Ensure index expressions are not handled as calls yet in data flow 2025-06-23 16:00:10 +02:00
Simon Friis Vindum
846ef9ad5a Rust: Document spurious type 2025-06-23 16:00:08 +02:00
Simon Friis Vindum
84accd1c81 Rust: Implement overloaded index expression in type inference 2025-06-23 16:00:07 +02:00
Asger F
8ff7182f3a JS: Move React test predicates into one file 2025-06-23 15:37:15 +02:00
Asger F
980d0f46fa JS: Add model for react 'use' 2025-06-23 15:27:21 +02:00
Asger F
768ccc6a54 JS: Add test for react 'use' function 2025-06-23 15:26:08 +02:00
Tom Hvitved
7350196044 Rust: Take derive macros into account in is{In,From}MacroExpansion 2025-06-23 15:23:06 +02:00
Tom Hvitved
13bc0d2334 Merge pull request #19825 from hvitved/rust/path-resolution-consistency-remove-overlap
Rust: Avoid overlapping path resolution consistency checks
2025-06-23 15:20:49 +02:00
Geoffrey White
530ded18e4 Merge branch 'main' into typeinfer 2025-06-23 14:02:58 +01:00
Asger F
7da2d71a70 JS: Update query suite expectations 2025-06-23 14:57:23 +02:00
Nick Rolfe
45f089fda0 Ruby: skip non-existent files in overlay changes JSON
The previous implementation returned None if any of the paths in the
changes JSON couldn't be canonicalized. This could happen for files that
were deleted in the diff. Now, it just ignores paths for which
canonicalize() fails.
2025-06-23 13:53:18 +01:00
Asger F
b1da23968c JS: Change note 2025-06-23 14:50:09 +02:00
Asger F
76b7228160 JS: Remove js/actions/command-injection
Superseded by actions/command-injection/{medium,critical}
2025-06-23 14:41:26 +02:00
Michael Nebel
725ba286b6 Merge pull request #19843 from michaelnebel/java/removequery
Java: Remove java/deprecated-call from the Code Quality suite.
2025-06-23 14:40:03 +02:00
Paolo Tranquilli
16b9bec015 Rust: regenerate models after rust-analyzer update 2025-06-23 14:39:56 +02:00
Asger F
9dcb61e771 JS: Remove js/actions/actions-artifact-leak
Superseded by actions/secrets-in-artifacts
2025-06-23 14:39:28 +02:00
Paolo Tranquilli
5162d2cf52 Rust: fix DB upgrade/downgrade scripts 2025-06-23 14:38:38 +02:00
Asger F
3a00e8d1c5 JS: Remove js/actions/pull-request-target
Superseded by actions/untrusted-checkout/{medium,high,critical}
2025-06-23 14:37:21 +02:00
Asger F
0d3bb89195 JS: Deprecate Actions.qll 2025-06-23 14:36:15 +02:00
Arthur Baars
13b28e2b60 Rust: add upgrade/downgrade scripts for new tables 2025-06-23 14:35:52 +02:00
Geoffrey White
4530e85c93 Rust: Repair the test annotations. 2025-06-23 13:12:53 +01:00
Geoffrey White
8c848ac019 Rust: Effects of rustfmt on .expected. 2025-06-23 13:08:42 +01:00
Geoffrey White
d02a7288ff Update rust/ql/lib/codeql/rust/internal/TypeInference.qll
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-06-23 13:04:56 +01:00
Geoffrey White
34cd9766d5 Rust: Run rustfmt --edition 2024 on the test. 2025-06-23 12:59:42 +01:00
Geoffrey White
bfaabab929 Rust: Update more expectations. 2025-06-23 12:58:35 +01:00
Tom Hvitved
28d3f9b572 Merge pull request #19801 from geoffw0/poem
Rust: Update PoemHandlerParam to use getCanonicalPath
2025-06-23 13:53:39 +02:00
Paolo Tranquilli
cbd62a8b75 Rust: address review and test failure 2025-06-23 13:15:09 +02:00
Simon Friis Vindum
60c27f8c30 Rust: Address PR feedback 2025-06-23 13:11:15 +02:00
Tamas Vajk
60e726bdf2 Java: Add java/javautilconcurrentscheduledthreadpoolexecutor query for zero thread pool size 2025-06-23 12:52:45 +02:00
Paolo Tranquilli
84de91b7d8 Rust: accept test changes 2025-06-23 12:51:46 +02:00
Simon Friis Vindum
6e9fd496a6 Rust: Implement await expression using SatisfiesConstraint module 2025-06-23 12:51:03 +02:00
Simon Friis Vindum
a367388326 Shared: Refactor type inference and expose SatisfiesConstraint module 2025-06-23 12:50:45 +02:00
Asger F
93c891a987 Merge pull request #19822 from Fdawgs/patch-1
JS: Update Fastify tld
2025-06-23 12:49:42 +02:00
Jeroen Ketema
ca961386b2 C++: Handle Arm SVE in the IR 2025-06-23 12:33:42 +02:00
Paolo Tranquilli
8f9c03165f Rust: remove unneeded rustc_apfloat patch 2025-06-23 12:28:03 +02:00
Paolo Tranquilli
377fb00dea Merge branch 'main' into redsun82/cargo-upgrade-3 2025-06-23 12:26:15 +02:00
Tom Hvitved
1f09f713b9 Rust: Avoid overlapping path resolution consistency checks 2025-06-23 11:26:30 +02:00
Michael Nebel
a17078b6be Java: Remove java/deprecated-call from the Code Quality suite. 2025-06-23 11:14:02 +02:00
Paolo Tranquilli
4eb98fc46e Merge pull request #19280 from github/redsun82/rust-doc
Rust: update docs for public preview
2025-06-23 10:56:39 +02:00
Paolo Tranquilli
eb3b717b2f Rust: accept test changes for now 2025-06-23 10:50:10 +02:00
Paolo Tranquilli
3ffaf5722a Rust: fix Meta missing post_emit! implementation 2025-06-23 10:43:39 +02:00
Paolo Tranquilli
915b0b3861 Update docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst
Co-authored-by: Sunbrye Ly <56200261+sunbrye@users.noreply.github.com>
2025-06-23 10:16:55 +02:00
Paolo Tranquilli
bd0d996664 Merge branch 'main' into redsun82/rust-doc 2025-06-23 10:16:38 +02:00
Tom Hvitved
12cda86141 Merge pull request #19826 from hvitved/csharp/function-auth-test
C#: Add another test for `MissingAccessControl.ql`
2025-06-23 10:02:33 +02:00
Paolo Tranquilli
23c449f21f Merge pull request #19824 from github/redsun82/rust-derive-macro-expansion
Rust: expand derive macros
2025-06-23 09:42:49 +02:00
Paolo Tranquilli
25b337b5c5 Merge pull request #19819 from github/redsun82/rust-regenerate-models
Rust: adapt model generation to new format
2025-06-23 09:16:52 +02:00
Jeroen Ketema
a9169dc126 Merge pull request #19837 from jketema/typeref-dataset-check
C++: Update expected test results after extractor changes
2025-06-22 10:47:40 +02:00
Arthur Baars
f4bdd4d35a Merge branch 'main' into redsun82/rust-derive-macro-expansion 2025-06-20 19:32:08 +02:00
Arthur Baars
d303a2cf85 Merge branch 'main' into redsun82/cargo-upgrade-3 2025-06-20 19:16:59 +02:00
Arthur Baars
666144ef11 Merge pull request #19823 from github/aibaars/rust-expand-assoc-items
Rust: expand attribute macros on `AssocItem` and `ExternItem`
2025-06-20 19:13:44 +02:00
Arthur Baars
089f35330f Merge branch 'main' into redsun82/cargo-upgrade-3 2025-06-20 19:07:39 +02:00
Arthur Baars
9605eb09b4 Merge pull request #19774 from github/aibaars/limit-diagnostics
Rust: limit number of diagnostics to 100 per trap file
2025-06-20 18:29:57 +02:00
Paolo Tranquilli
5b4c566f06 Cargo: fix Cargo.lock file 2025-06-20 18:27:49 +02:00
Paolo Tranquilli
9c06a826cf Rust: apply suggestions from code review
Co-authored-by: Sunbrye Ly <56200261+sunbrye@users.noreply.github.com>
2025-06-20 18:16:32 +02:00
Paolo Tranquilli
7edae1eb17 Rust: suppress some expected macro expansion warnings 2025-06-20 17:56:09 +02:00
Paolo Tranquilli
02a9d4c86d Rust: fix compilation errors 2025-06-20 17:52:36 +02:00
Paolo Tranquilli
efd318dc01 Rust: rerun codegen 2025-06-20 17:45:08 +02:00
Paolo Tranquilli
12aa93b578 Rust: suppress TypeAnchor in the generator 2025-06-20 17:43:59 +02:00
Paolo Tranquilli
492b0cd2e8 Bazel: regenerate cargo vendored files 2025-06-20 17:37:58 +02:00
Paolo Tranquilli
ce29d8a59a Cargo: run upgrade 2025-06-20 17:34:23 +02:00
Paolo Tranquilli
2c14f273ed Bazel/Rust: Change rust version 2025-06-20 17:34:16 +02:00
Arthur Baars
e3e88800d6 Merge branch 'main' into aibaars/rust-expand-assoc-items 2025-06-20 17:30:11 +02:00
Paolo Tranquilli
e8c3a2bfb9 Merge branch 'main' into redsun82/rust-regenerate-models 2025-06-20 17:22:49 +02:00
Paolo Tranquilli
3ddecd4d9f Merge pull request #19836 from github/redsun82/rust-fix-test-flakiness
Rust: yet another tentative fix to test flakiness
2025-06-20 17:20:52 +02:00
Paolo Tranquilli
01b84a8b1e Rust: yet another tentative fix to test flakiness 2025-06-20 16:58:38 +02:00
Paolo Tranquilli
c22526e9d0 Rust: add upgrade/downgrade scripts 2025-06-20 16:17:22 +02:00
Paolo Tranquilli
6064622961 Rust: accept test changes 2025-06-20 16:08:06 +02:00
Paolo Tranquilli
02b6e856a3 Rust: remove VariantDef 2025-06-20 15:59:18 +02:00
Taus
ac8b41a5da Merge pull request #19680 from github/tausbn/javascript-exclude-obviously-generated-files
JavaScript: Don't extract obviously generated files
2025-06-20 15:52:39 +02:00
Paolo Tranquilli
0d292b785c Rust: remove reduntant Item superclass from Adt subclasses 2025-06-20 15:45:18 +02:00
Arthur Baars
7bc3fd6ae9 Merge branch 'main' into aibaars/rust-expand-assoc-items 2025-06-20 15:38:34 +02:00
Napalys Klicius
3fbe348f99 Merge pull request #19784 from Napalys/js/express_middleware
JS: Improve Express middleware taint tracking
2025-06-20 15:36:26 +02:00
Paolo Tranquilli
bc8b1f251e Rust: rename asFunction to getFunction 2025-06-20 15:27:56 +02:00
Paolo Tranquilli
6253b5c5d0 Merge branch 'main' into redsun82/rust-regenerate-models 2025-06-20 15:27:40 +02:00
Paolo Tranquilli
7a3f4a622e Merge branch 'main' into aibaars/rust-expand-assoc-items 2025-06-20 15:22:20 +02:00
Paolo Tranquilli
670b835410 Merge branch 'main' into redsun82/rust-derive-macro-expansion 2025-06-20 15:21:03 +02:00
Eric Bickle
32464a8995 C++: Support SQL Injection sinks for Oracle Call Interface (OCI) 2025-06-20 06:05:24 -07:00
Tom Hvitved
b234d775ac Merge pull request #19816 from hvitved/rust/path-resolution-crate-self
Rust: Path resolution for `crate::{self as foo}`
2025-06-20 14:50:28 +02:00
Paolo Tranquilli
f1f36db068 Merge pull request #19828 from github/redsun82/rust-fix-nightly-toolchain
Rust: fix nightly toolchain version for tests using it
2025-06-20 14:40:05 +02:00
Paolo Tranquilli
52c0028f85 Rust: make Adt be generated 2025-06-20 14:35:08 +02:00
Paolo Tranquilli
3590ccaa69 Rust: fix tests 2025-06-20 14:32:24 +02:00
Napalys Klicius
c1b2fd86b2 Update javascript/ql/lib/semmle/javascript/frameworks/Express.qll
Co-authored-by: Taus <tausbn@github.com>
2025-06-20 14:29:51 +02:00
Simon Friis Vindum
6773903786 Merge pull request #19820 from paldepind/rust/explicit-dereference
Rust: Fix type inference for explicit dereference with `*` to the `Deref` trait
2025-06-20 14:23:14 +02:00
Paolo Tranquilli
691281a481 Rust: mark one value flow as spurious (should be taint) 2025-06-20 14:13:37 +02:00
Paolo Tranquilli
7f1769e8d1 Rust: fix nightly toolchain version for tests using it
Rather than fixing the version separately for each test, we can just
request to use a nightly in the `options.yml` file, with the specific
version hard-coded in `qltest.rs`. We can update it if we need to.

It's better to have a single nightly version for all tests that require
it, in order to avoid downloading more versions than necessary.
2025-06-20 14:03:42 +02:00
Kasper Svendsen
ed8b787f28 rename overlay[caller] to overlay[caller?] 2025-06-20 13:58:01 +02:00
Kasper Svendsen
b1346e2ddb Address copilot review comments 2025-06-20 13:58:00 +02:00
Kasper Svendsen
cd2fe64b39 Add script to add overlay annotations 2025-06-20 13:58:00 +02:00
Jeroen Ketema
17ce5f42e6 C++: Update expected test results after extractor changes 2025-06-20 13:51:36 +02:00
Arthur Baars
2acce96bb5 Apply suggestions from code review
Co-authored-by: Paolo Tranquilli <redsun82@github.com>
2025-06-20 13:25:54 +02:00
Arthur Baars
b7f66f8653 Rust: Rust: expand attribute macros on AssocItem and ExternItem 2025-06-20 13:21:26 +02:00
Simon Friis Vindum
bd2812c821 Rust: Only resolve deref methods on references to avoid blowup 2025-06-20 12:49:22 +02:00
Napalys Klicius
8b3137626c Merge pull request #19743 from Napalys/js/quality/loop_shift
JS: Promote `js/loop-iteration-skipped-due-to-shifting` to the Code Quality suite
2025-06-20 12:36:29 +02:00
Tom Hvitved
84e93e2dc5 C#: Add another test for MissingAccessControl.ql 2025-06-20 11:49:30 +02:00
Napalys Klicius
bca536c5b6 Merge remote-tracking branch 'origin/main' into js/quality/loop_shift 2025-06-20 11:30:20 +02:00
Paolo Tranquilli
e935bd6faf Rust: expand derive macros 2025-06-20 11:19:06 +02:00
Napalys Klicius
8c2bda32df Merge pull request #19776 from Napalys/js/mass_quality_promotion
JS: Mass promotion of queries to `quality` status
2025-06-20 10:53:32 +02:00
Owen Mansel-Chan
529b6a5365 Merge pull request #19730 from owen-mc/update-qhelp-style-guide-for-markdown-format
Update qhelp style guide for markdown format
2025-06-20 09:53:12 +01:00
Napalys Klicius
7c25bcdad1 Changed js/duplicate-condition to reliability and correctness 2025-06-20 08:06:03 +02:00
Simon Friis Vindum
6b2c125bb0 Rust: Updated expected files 2025-06-19 21:01:53 +02:00
Simon Friis Vindum
09bf05f0df Rust: Fix types for * to deref overload 2025-06-19 21:01:26 +02:00
Napalys Klicius
aa3e9c6579 Changed js/unreachable-statement to reliability and correctness 2025-06-19 19:52:03 +02:00
Napalys Klicius
32dd665472 Changed js/unused-loop-variable to reliability and correctness 2025-06-19 19:45:20 +02:00
Napalys Klicius
4fd3ef8f1c Changed js/useless-assignment-in-return to reliability and correctness 2025-06-19 19:37:13 +02:00
Napalys Klicius
4bc97326d1 Changed js/label-in-switch to reliability and correctness 2025-06-19 19:30:53 +02:00
Napalys Klicius
125add1e19 Changed js/node/missing-exports-qualifier to reliability and correctness 2025-06-19 19:24:00 +02:00
Napalys Klicius
2ab35d6a45 Changed js/node/assignment-to-exports-variable to reliability and correctness 2025-06-19 19:21:06 +02:00
Paolo Tranquilli
f812b6461c Rust: address review 2025-06-19 18:28:13 +02:00
Napalys Klicius
c1d29cc48a Changed js/whitespace-contradicts-precedence to reliability and correctness 2025-06-19 18:26:12 +02:00
Napalys Klicius
bb9a2289a3 Changed js/conditional-comment to reliability and correctness 2025-06-19 18:25:31 +02:00
Paolo Tranquilli
11af770cea Merge branch 'main' into redsun82/rust-doc 2025-06-19 18:21:47 +02:00
Paolo Tranquilli
7a9f23c759 Rust: fix sphinx error 2025-06-19 18:19:26 +02:00
Owen Mansel-Chan
cdd6245b98 Merge pull request #19799 from owen-mc/java/quality-tags
Java: Tag quality queries with `quality` and sub-category
2025-06-19 16:43:02 +01:00
Nick Rolfe
665df4baef Ruby: add minimal path transformer support
Supports only a minimal subset of the project layout specification;
enough to work with the transformers produced by the CLI when building
an overlay database.
2025-06-19 16:34:16 +01:00
Nick Rolfe
1bd7c4f11c Ruby: add databaseMetadata relation to dbscheme
This is required for overlay support.
2025-06-19 16:34:15 +01:00
Nick Rolfe
c4ccc5502d Ruby: add support for extracting overlays 2025-06-19 16:34:14 +01:00
Frazer Smith
094b67f88c JS: Update Fastify tld 2025-06-19 16:22:46 +01:00
Napalys Klicius
ad6c6b2d26 Changed js/angular/dependency-injection-mismatch to reliability and correctness 2025-06-19 17:16:32 +02:00
Paolo Tranquilli
2bf5a70884 Rust: update model generator tests 2025-06-19 17:08:33 +02:00
Taus
036489c6bd Merge pull request #19812 from joefarebrother/python-qual-tagging
Python: Tag quality queries with `quality` and sub category.
2025-06-19 16:30:51 +02:00
Napalys Klicius
c18fe303d0 JS: Changed MissingThisQualifier to reliability and correctness 2025-06-19 16:27:00 +02:00
Napalys Klicius
244bf428a1 JS: Fixed typo. 2025-06-19 16:26:07 +02:00
Paolo Tranquilli
b5a7f87bbc Rust: fix debug/CaptureSummaryModelsPartialPath.ql 2025-06-19 16:17:18 +02:00
Paolo Tranquilli
0e9d4aacd9 Rust: accept test changes 2025-06-19 16:13:26 +02:00
Jon Janego
a1e95069f3 Merge pull request #19815 from github/quality-top-level-tags
Update query-metadata-style-guide.md
2025-06-19 09:01:22 -05:00
Geoffrey White
b40bd75e64 Rust: Revert consistency check failures (cross fingers...) 2025-06-19 14:33:30 +01:00
Geoffrey White
7a25596749 Merge branch 'main' into typeinfer 2025-06-19 14:27:35 +01:00
Joe Farebrother
f457453647 Update redundant assignment to be a correctness issue for cross language consistency 2025-06-19 14:22:12 +01:00
Geoffrey White
26e7b2d5f8 Rust: Accept path resolution consistency changes. 2025-06-19 14:19:13 +01:00
Joe Farebrother
e67f057b85 Update integration test output 2025-06-19 14:09:55 +01:00
Joe Farebrother
63d7eac127 Ensure exactly one subcategory is used 2025-06-19 14:09:07 +01:00
Joe Farebrother
c8c92a7139 Update tags for mixed-tuple-returns to include exactly 1 subcategory 2025-06-19 14:09:00 +01:00
Joe Farebrother
c3f7b18055 Review suggestions - update some tags 2025-06-19 14:08:51 +01:00
Joe Farebrother
09516a47d3 Fix integration test output 2025-06-19 14:08:42 +01:00
Joe Farebrother
d28a19c961 Update integration test output & add changenote 2025-06-19 14:08:30 +01:00
Joe Farebrother
fa5b2ef794 Tag remaining high precision quality queries
Excluded queries that are python 2 specific; as well as the cyclic import queries
2025-06-19 14:08:07 +01:00
Joe Farebrother
02f8ec33f2 Tag 'type-checking'-like quality queries 2025-06-19 14:07:55 +01:00
Joe Farebrother
4b1d31c976 Tag 'linter-like' quality queries that don't use pointsto 2025-06-19 14:07:42 +01:00
Joe Farebrother
869e33e38c Tag 'linter-like' quality queries that use pointto
Excluded for now: unnecassary-delete; since the pattern is often intentional to break reference cycles, which the query doesn't account for; so uncertain about its claim of high precision
2025-06-19 14:07:15 +01:00
Joe Farebrother
5c4548df45 Tag more quality queries.
Excluded for now for uncertainty: incomplete ordering, import deprecated module
2025-06-19 14:06:57 +01:00
Joe Farebrother
049c0705a9 Tag quality queries that are high precision and dont use pointsto 2025-06-19 14:06:46 +01:00
Paolo Tranquilli
170dd6c9cc Rust: regenerate models 2025-06-19 14:58:47 +02:00
Paolo Tranquilli
79fd10d31f Rust: move model generator to new format 2025-06-19 14:58:46 +02:00
Simon Friis Vindum
7d536a3c80 Rust: When resolving methods on reference also consider the reference itself 2025-06-19 14:57:52 +02:00
Geoffrey White
d55e8b7010 Rust: Add another test case for ranges. 2025-06-19 13:45:54 +01:00
Nora Dimitrijević
b62a6db314 Merge pull request #19760 from d10c/d10c/go/diff-informed-2
Go: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 14:44:56 +02:00
Nora Dimitrijević
9974f9e93b Merge pull request #19759 from d10c/d10c/cpp/diff-informed-2
C++: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 14:44:04 +02:00
Simon Friis Vindum
845179665c Rust: Add type inference test with borrow of unknown argument 2025-06-19 14:29:27 +02:00
Simon Friis Vindum
7c9d15b605 Rust: Add test with method on borrow 2025-06-19 14:29:26 +02:00
Simon Friis Vindum
9bdb541065 Rust: Add type inference tests for dereferencing 2025-06-19 14:29:15 +02:00
Napalys Klicius
8679151ace Update javascript/ql/src/change-notes/2025-06-12-loop-iteration.md
Co-authored-by: Taus <tausbn@github.com>
2025-06-19 14:21:08 +02:00
Napalys Klicius
5448071e09 Update javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md
Co-authored-by: Taus <tausbn@github.com>
2025-06-19 14:20:37 +02:00
Nora Dimitrijević
699c82a540 Merge pull request #19757 from d10c/d10c/actions/diff-informed-2
Actions: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 14:19:55 +02:00
Nora Dimitrijević
11bccdd753 Merge pull request #19798 from d10c/d10c/ruby/diff-informed-2
Ruby: mass enable diff-informed data flow `none()` location overrides
2025-06-19 14:14:39 +02:00
Napalys Klicius
f80651e78a Merge pull request #19750 from Napalys/js/remove_encodeURI
JS: remove `encodeURI` from sanitizer list of request forgery
2025-06-19 14:12:52 +02:00
Geoffrey White
7170e97e22 Rust: Update test expectations format (type=...). 2025-06-19 13:09:28 +01:00
Jeroen Ketema
3f3a920a54 Merge pull request #19818 from jketema/int-fix
Python: Fix integration test
2025-06-19 13:52:02 +02:00
Nora Dimitrijević
f577c08f4d Merge pull request #19795 from d10c/d10c/java/diff-informed-2
Java: mass enable diff-informed data flow + `none()` overrides
2025-06-19 13:48:53 +02:00
Jeroen Ketema
dd1c09769f Python: Fix integration test 2025-06-19 13:36:57 +02:00
Paolo Tranquilli
261c129555 MaD generator: add single file mode 2025-06-19 12:57:05 +02:00
Owen Mansel-Chan
2225a2d8de Merge pull request #19763 from owen-mc/go/quality-tags
Go: Update tags for high precision quality queries
2025-06-19 11:32:31 +01:00
Geoffrey White
f670fcb301 Rust: Add a Vec test case that we actually get (explicit type). 2025-06-19 11:28:17 +01:00
Geoffrey White
1622d08624 Rust: Add inferArrayExprType. 2025-06-19 11:21:37 +01:00
Geoffrey White
639f85a556 Merge branch 'main' into typeinfer 2025-06-19 11:15:52 +01:00
Paolo Tranquilli
2818e6ee17 MaD generator: switch to snake_case fields 2025-06-19 11:59:28 +02:00
Owen Mansel-Chan
ebd917600d Update quality suite integration test 2025-06-19 10:37:49 +01:00
Owen Mansel-Chan
a26610a05c Add change note 2025-06-19 10:34:01 +01:00
Owen Mansel-Chan
a2ff045a7a Update tags for high precision quality queries 2025-06-19 10:33:58 +01:00
Simon Friis Vindum
bea855abd7 Merge pull request #19789 from paldepind/rust/operator-borrowing
Rust: Account for borrows in operators in type inference
2025-06-19 11:33:56 +02:00
Kasper Svendsen
76786798df Merge pull request #19810 from kaspersv/kaspersv/inline-overlay-caller-test
QL4QL: Add test for `ql/inline-overlay-caller` query
2025-06-19 11:30:32 +02:00
Geoffrey White
4b7c7c1c21 Rust: Accept consistency check changes (again). 2025-06-19 10:30:06 +01:00
Geoffrey White
64d0e174c4 Merge branch 'main' into poem 2025-06-19 10:19:05 +01:00
Nora Dimitrijević
438b92b995 Merge pull request #19797 from d10c/d10c/python/diff-informed-2
Python: mass enable diff-informed data flow `none()` location overrides
2025-06-19 10:55:07 +02:00
Nora Dimitrijević
687e8d21a1 Merge pull request #19761 from d10c/d10c/swift/diff-informed-2
Swift: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 10:54:49 +02:00
Nora Dimitrijević
8e223263db Merge pull request #19758 from d10c/d10c/csharp/diff-informed-2
C#: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 10:54:38 +02:00
Napalys Klicius
8b2bb07140 Updated quality extended expected file after merge 2025-06-19 10:27:57 +02:00
Napalys Klicius
119c1e61ec Merge remote-tracking branch 'origin/main' into js/mass_quality_promotion 2025-06-19 10:27:15 +02:00
Napalys Klicius
88f668781d Updated extended expected file after merge 2025-06-19 10:24:39 +02:00
Napalys Klicius
53cae4fa97 Merge remote-tracking branch 'origin/main' into js/quality/loop_shift 2025-06-19 10:21:52 +02:00
Owen Mansel-Chan
5bc974afe4 Address review comments 2025-06-18 23:59:04 +01:00
Tom Hvitved
519e56f752 Rust: Path resolution for crate::{self as foo} 2025-06-18 19:57:57 +02:00
Tom Hvitved
77a92c062b Rust: Add path resolution test 2025-06-18 19:55:33 +02:00
Geoffrey White
36cf4b613e Rust: Accept consistency changes. 2025-06-18 17:32:20 +01:00
Geoffrey White
117a80e8d7 Rust: Accept consistency check changes. 2025-06-18 17:24:45 +01:00
Jon Janego
8450c5b111 Update query-metadata-style-guide.md
clarifying usage of top level tags
2025-06-18 11:24:30 -05:00
Owen Mansel-Chan
7a50298492 Update query suite test expectation 2025-06-18 16:47:42 +01:00
Owen Mansel-Chan
b8a694c9fe Address review comments 2025-06-18 16:43:40 +01:00
Owen Mansel-Chan
d3eb4f8eb6 Remove query with hard-coded threshold 2025-06-18 16:43:33 +01:00
Owen Mansel-Chan
9cfa6fe59c Update expected quality queries 2025-06-18 16:43:32 +01:00
Owen Mansel-Chan
72a6280482 Add change note 2025-06-18 16:43:30 +01:00
Owen Mansel-Chan
97dceb3a1c Tag with quality and sub-category 2025-06-18 16:43:29 +01:00
Owen Mansel-Chan
5c71e3a922 State differences between XML and Markdown formats 2025-06-18 16:27:40 +01:00
REDMOND\brodes
8ee03e48ca Crypto: Fix cpp-specific code scanning alert failure 2025-06-18 11:04:27 -04:00
Jeroen Ketema
2e5d52e7e8 Merge pull request #19792 from jketema/sve
C++: Add Arm scalable vector type QL classes
2025-06-18 17:01:29 +02:00
Paolo Tranquilli
24cfc840a6 Merge branch 'main' into redsun82/mad-generator 2025-06-18 16:53:43 +02:00
Geoffrey White
5edd6e85e7 Rust: Restrict results to 'unsafe' blocks. 2025-06-18 15:45:31 +01:00
Geoffrey White
dbde8418bb Rust: Another test case (unsafe function). 2025-06-18 15:29:37 +01:00
Arthur Baars
a253b319d5 Rust: limit number of diagnostics to 100 per trap file 2025-06-18 16:05:11 +02:00
Nicolas Will
16c6411cf2 Merge pull request #19705 from bdrodes/pawel_signatures_conversion
Quantum: Add OpenSSL signature models
2025-06-18 15:32:15 +02:00
Paolo Tranquilli
e0114753fe Rust: fix formatting in doc snippet 2025-06-18 15:24:20 +02:00
Joe Farebrother
4ae72dbad6 Merge pull request #19709 from joefarebrother/python-qual-init-call-subclass
Python: Modernize the init-calls-subclass query
2025-06-18 14:21:25 +01:00
Chris Smowton
4a14d3581b Merge pull request #19496 from smowton/smowton/admin/cleanup-kotlin-versions
Kotlin: clean up alternate-version code now that v1.5.x support is dropped
2025-06-18 13:51:16 +01:00
Geoffrey White
01c6966cef Rust: Remove redundant code and imports. 2025-06-18 13:25:30 +01:00
Tamás Vajk
f5f0918563 Merge pull request #19808 from tamasvajk/quality/extended-suite
Add code-quality-extended query suites
2025-06-18 14:23:22 +02:00
Paolo Tranquilli
494d192b32 Merge branch 'main' into redsun82/rust-doc 2025-06-18 14:02:31 +02:00
Tom Hvitved
ee9ceb5066 Merge pull request #19790 from hvitved/rust/new-mad-format
Rust: Add new MaD format based on QL-computed canonical paths
2025-06-18 13:55:23 +02:00
Jeroen Ketema
fe80d9a7d8 C++: Update stats file 2025-06-18 13:41:35 +02:00
Jeroen Ketema
c19085e56e C++: Add upgrade and downgrade scripts 2025-06-18 13:41:34 +02:00
Jeroen Ketema
25149e7ec2 C++: Update expected test results 2025-06-18 13:41:33 +02:00
Jeroen Ketema
7ac26e879b C++: Add Arm scalable vector type QL classes 2025-06-18 13:41:24 +02:00
Tom Hvitved
e5ef09a127 Merge pull request #19809 from hvitved/rust/jump-to-method-call
Rust: Extend jump-to-def query with method calls
2025-06-18 13:17:02 +02:00
Tom Hvitved
c88a5049e0 Rust: Fix column orders in interpretModelForTest 2025-06-18 13:15:36 +02:00
Tamas Vajk
94052f1782 Adjust C# expected file after rebase 2025-06-18 13:10:34 +02:00
Tamas Vajk
e6a9ff08a3 Adjust query-suite integration test expected files 2025-06-18 13:10:34 +02:00
Tamas Vajk
40274dcd69 Add code-quality-extended query suites 2025-06-18 13:10:34 +02:00
Geoffrey White
79cedc2586 Rust: Rename predicate again. 2025-06-18 11:56:04 +01:00
Geoffrey White
5bf799e717 Apply suggestions from code review
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-06-18 11:52:02 +01:00
Paolo Tranquilli
ddc065b161 Merge pull request #19800 from github/redsun82/rust-qltest-proc-macro
Rust: add `proc-macro` capabilities to QL tests
2025-06-18 12:23:14 +02:00
Tom Hvitved
63379df004 Rust: Add new MaD format based on QL-computed canonical paths 2025-06-18 12:14:36 +02:00
Tom Hvitved
c35598a2ea Rust: Add Deprecated suffix to existing MaD extensible predicates 2025-06-18 12:14:30 +02:00
Paolo Tranquilli
75616de613 Rust: make proc_macro test version also 0.0.1 2025-06-18 11:12:13 +02:00
Paolo Tranquilli
27eeaf25fd Rust: fix lock files 2025-06-18 10:47:44 +02:00
Kasper Svendsen
01e7a33e1b QL4QL: Add test for ql/inline-overlay-caller query 2025-06-18 10:36:17 +02:00
Paolo Tranquilli
80ef303890 Merge branch 'main' into redsun82/rust-qltest-proc-macro 2025-06-18 10:32:42 +02:00
Geoffrey White
9c3e362594 Rust: Add TupleStructPat.getStruct. 2025-06-18 09:29:14 +01:00
Paolo Tranquilli
b29ad5b12a Rust: add attribute macro expansion to path resolution test 2025-06-18 10:22:19 +02:00
Idriss Riouak
eff1fbab0f Merge pull request #19805 from github/idrissrio/namespace-attributes
C++: fix typedef resolution in `ArrayType`
2025-06-18 10:21:21 +02:00
idrissrio
72559d5198 C++: move resolveTypedefs tests to dedicated directory 2025-06-18 10:11:55 +02:00
Michael Nebel
7311d5267a Merge pull request #19783 from michaelnebel/csharp/qualitytags
C#: Mass add quality queries to the Code Quality suite.
2025-06-18 10:05:16 +02:00
idrissrio
4ec64021e1 C++: update change note after review comments 2025-06-18 09:49:12 +02:00
Tom Hvitved
5cd729545d Rust: Extend jump-to-def query with method calls 2025-06-18 09:27:25 +02:00
Paolo Tranquilli
8bf171fd85 Rust: add missing use because of semantic conflict 2025-06-18 09:21:40 +02:00
Michael Nebel
5c575ac187 C#: Address review comments. 2025-06-18 09:18:36 +02:00
Paolo Tranquilli
03599b43cb Merge branch 'main' into redsun82/rust-qltest-proc-macro 2025-06-18 09:01:28 +02:00
Paolo Tranquilli
214bbf46e8 Rust: fix test version to 0.0.1 as previously 2025-06-18 09:01:06 +02:00
Tom Hvitved
bef07a7f67 Merge pull request #19268 from hvitved/rust/summarized-callable-base
Rust: Make `SummarizedCallable` extend `Function` instead of `string`
2025-06-18 08:31:31 +02:00
Geoffrey White
df221ea8f8 Rust: Remove excess 'cached' annotation. 2025-06-17 23:17:58 +01:00
Geoffrey White
dec0deb4d1 Rust: Add some more test cases for type inference on Vecs. 2025-06-17 23:07:32 +01:00
Ben Rodes
b2765a2ff7 Merge branch 'main' into pawel_signatures_conversion 2025-06-17 14:52:41 -04:00
REDMOND\brodes
a81fffcbda Crypto: Fix redundant override issue. 2025-06-17 13:27:54 -04:00
REDMOND\brodes
f2f97c993b Crypto: QL docs fix. 2025-06-17 13:18:03 -04:00
idrissrio
b145523a71 C++: add change note 2025-06-17 19:03:43 +02:00
REDMOND\brodes
ac35634217 Merge branch 'openssl_acronym_normalization' into pawel_signatures_conversion 2025-06-17 13:03:12 -04:00
idrissrio
6ffba11f13 C++: accept new test results after changes 2025-06-17 18:51:43 +02:00
idrissrio
a6d7fb6aad C++: fix typedef resolution in ArrayType 2025-06-17 18:49:39 +02:00
idrissrio
3f595fdd03 C++: add tests for ArrayType typedef resolution 2025-06-17 18:47:42 +02:00
Paolo Tranquilli
b2f7b89c80 Merge pull request #19803 from github/redsun82/rust-fix-qltest-lock-file
Rust: do not remove `Cargo.lock` file when running QL tests
2025-06-17 17:46:07 +02:00
Paolo Tranquilli
d2a05886c8 Rust: do not do html escaping in cargo template 2025-06-17 17:16:47 +02:00
Paolo Tranquilli
71b9263470 Rust: do not remove Cargo.lock file when running QL tests 2025-06-17 17:11:05 +02:00
Nora Dimitrijević
2316b8cf89 C++: mass-add none() location overrides 2025-06-17 17:10:07 +02:00
Nora Dimitrijević
67bccc3d05 Swift: mass-add none() location overrides 2025-06-17 17:03:25 +02:00
Nora Dimitrijević
51826c72d0 Go: mass-add none() location overrides 2025-06-17 17:02:08 +02:00
Nora Dimitrijević
634bfa914f C#: mass-add none() location overrides 2025-06-17 17:00:48 +02:00
Nora Dimitrijević
fc61910df1 Actions: mass-add none() location overrides 2025-06-17 17:00:19 +02:00
Paolo Tranquilli
299fe2eb3f Rust: add proc-macro capabilities to QL tests
This adds the possibility to add a special `proc_macro.rs` source file
to QL tests, which will be generated into a `proc_macro` crate the
usual `lib` crate depends on.

This allow to define procedural macros in QL tests, and is here used to
move the `macro-expansion` integration test to be a language test
instead.

As the generated manifests involved were starting to get a bit complex,
they are now generated from a `mustache` template.
2025-06-17 16:58:33 +02:00
Geoffrey White
942a980dac Rust: Update PoemHandlerParam from getResolvedPath -> getCanonicalPath. 2025-06-17 15:55:40 +01:00
Nora Dimitrijević
6f7e0d6bc8 Ruby: mass enable diff-informed data flow none() location overrides
An auto-generated patch that enables diff-informed data flow in the obvious cases.

Adds `getASelected{Source,Sink}Location() { none() }` override to queries that select a dataflow source or sink as a location, but not both.
2025-06-17 15:48:11 +02:00
Nora Dimitrijević
b79ce6d30b Python: mass enable diff-informed data flow none() location overrides
An auto-generated patch that enables diff-informed data flow in the obvious cases.

Builds on github#18346 and github/codeql-patch#88
2025-06-17 15:36:52 +02:00
Joe Farebrother
d1bd7228c3 Fix typos 2025-06-17 13:58:30 +01:00
Joe Farebrother
547c03cee6 Update tests 2025-06-17 13:58:27 +01:00
Joe Farebrother
2c8896848f Update integration test output 2025-06-17 13:58:22 +01:00
Michael Nebel
17cd58bd3c Merge pull request #19793 from michaelnebel/ruby/qualitytags
Ruby: Update quality tags.
2025-06-17 14:57:41 +02:00
Joe Farebrother
22a6fa3ebf Remove case for being last in initialisation. This pattern can still be a problem if the subclass overrides initialisation. 2025-06-17 13:57:36 +01:00
Joe Farebrother
95153c172c Add some more details to the documentation 2025-06-17 13:57:30 +01:00
Joe Farebrother
90bf45a3ba Fix docs 2025-06-17 13:57:23 +01:00
Joe Farebrother
75bb743ce3 Update documentation 2025-06-17 13:57:18 +01:00
Joe Farebrother
a04fbc59f5 Update tests 2025-06-17 13:57:10 +01:00
Joe Farebrother
f3ce57840d Filter out some results; for if the overridden method doesn't use self, or the call is last in the initialisation. 2025-06-17 13:57:04 +01:00
Joe Farebrother
ed3cf84efd Update init calls subclass to not use pointto 2025-06-17 13:56:55 +01:00
Nora Dimitrijević
781f78813f Merge pull request #19662 from d10c/d10c/swift/diff-informed
Swift: mass enable diff-informed data flow
2025-06-17 14:53:15 +02:00
Nora Dimitrijević
a8dc3008ef Merge pull request #19660 from d10c/d10c/go/diff-informed
Go: mass enable diff-informed data flow
2025-06-17 14:52:46 +02:00
Nora Dimitrijević
47623aa138 Merge pull request #19663 from d10c/d10c/cpp/diff-informed
C++: mass enable diff-informed data flow
2025-06-17 14:52:35 +02:00
Nora Dimitrijević
79e982af38 Merge pull request #19661 from d10c/d10c/csharp/diff-informed
C#: mass enable diff-informed data flow
2025-06-17 14:52:24 +02:00
Nora Dimitrijević
84a7975a63 Merge pull request #19659 from d10c/d10c/actions/diff-informed
Actions: mass enable diff-informed data flow
2025-06-17 14:52:11 +02:00
Tom Hvitved
433756debb Rust: Make SummarizedCallable extend Function instead of string 2025-06-17 14:12:38 +02:00
Nora Dimitrijević
aa5dd7bb4e Java: mass enable diff-informed data flow + none() overrides
An auto-generated patch that enables diff-informed data flow in the obvious cases.

Builds on github#18346 and github/codeql-patch#88
2025-06-17 14:05:36 +02:00
Michael Nebel
08d28a5b85 Ruby: Add change-note. 2025-06-17 13:20:56 +02:00
Michael Nebel
ddc429cfeb Ruby: Update quality related tags. 2025-06-17 13:16:20 +02:00
Idriss Riouak
a702f7a45e Merge pull request #19773 from github/idrissrio/namespace-attributes
C++: Retrieve namespace attributes
2025-06-17 12:03:55 +02:00
Geoffrey White
4292b03b5c Rust: Add logic for Vecs and slices. 2025-06-17 10:58:26 +01:00
Geoffrey White
66d6770c3f Rust: If we're inferring both ways, it should really be to any element. 2025-06-17 10:47:35 +01:00
Geoffrey White
69da4e7462 Rust: Move inferArrayExprType logic into typeEquality predicate. 2025-06-17 10:45:57 +01:00
Paolo Tranquilli
e9a071032c Rust: address review on docs 2025-06-17 11:19:59 +02:00
Mathias Vorreiter Pedersen
e1b9d9fe75 Merge pull request #19787 from MathiasVP/add-cpp-exception-edges-out-of-calls
C++: Add exception edges out of calls inside `try` statements
2025-06-17 10:05:46 +01:00
idrissrio
9fb47cc125 C++: add tests for attribute extraction on namespace 2025-06-17 10:52:27 +02:00
Simon Friis Vindum
f18acdf11f Rust: Generalize type of debug predicate 2025-06-17 10:34:42 +02:00
Simon Friis Vindum
a0bc455d53 Rust: Account for borrows in operators in type inference 2025-06-17 10:34:41 +02:00
Simon Friis Vindum
cc234f2d19 Rust: Add a type inference test 2025-06-17 10:34:39 +02:00
Simon Friis Vindum
ebdffcc4ef Rust: Refactor and generalize Call 2025-06-17 10:34:38 +02:00
Napalys Klicius
ac533ea809 Merge pull request #19771 from Napalys/js/sanitizer_serialize
JS: Improve XSS detection for `serialize-javascript` with tainted objects
2025-06-17 10:02:39 +02:00
Michael Nebel
d296ee7d50 C#: Update integration test expected output. 2025-06-17 10:00:12 +02:00
Michael Nebel
819ee33239 C#: Do not add complexity queries that should be configurable to the Code Quality suite. 2025-06-17 10:00:11 +02:00
Michael Nebel
758a6b5487 C#: Add change note. 2025-06-17 10:00:09 +02:00
Michael Nebel
3301924777 C#: Update integration test expected output. 2025-06-17 10:00:02 +02:00
Tom Hvitved
909e95f373 Merge pull request #19782 from hvitved/csharp/type-arg-unique
C#: Handle non-unique type arguments when computing generics strings
2025-06-17 09:59:48 +02:00
Michael Nebel
96b7250b61 C#: Mass enable quality queries and update tags. 2025-06-17 09:56:43 +02:00
Tom Hvitved
a188adc09b C#: Handle non-unique type arguments when computing generics strings 2025-06-17 09:30:49 +02:00
Michael Nebel
87b52cc347 Merge pull request #19716 from michaelnebel/csharp/gethashcodeisnotdefined
C#: Add `cs/gethashcode-is-not-defined` to the Code Quality suite.
2025-06-17 08:43:26 +02:00
Napalys Klicius
72528749f2 JS: add change note 2025-06-17 08:34:34 +02:00
Napalys Klicius
060b98d36c JS: enchance middleware taint tracking via local source 2025-06-17 08:30:19 +02:00
Napalys Klicius
fc0c8a8f5a JS: update change note 2025-06-17 08:20:35 +02:00
Kasper Svendsen
7f38a7ff2f Merge pull request #19590 from kaspersv/kaspersv/overlay-inline-warning
Overlay: Add QL for QL query to warn about possible non-inlining across overlay frontier
2025-06-17 08:03:34 +02:00
Tom Hvitved
4576880622 Merge pull request #19777 from hvitved/shared/summary-stack-mad-repr-unique
Shared: Make sure `getMadRepresentation` is unique
2025-06-16 20:00:18 +02:00
REDMOND\brodes
2b6a8321fd Crypto: Update JCA model to account for Model.qll changes. 2025-06-16 12:53:48 -04:00
Mathias Vorreiter Pedersen
9f3569b980 C++: Accept test changes. 2025-06-16 17:53:35 +01:00
REDMOND\brodes
6c9c969573 Crypto: Remove dead comments 2025-06-16 12:43:29 -04:00
Mathias Vorreiter Pedersen
7355f555a5 C++: Add an exception edge out of calls inside try statements. 2025-06-16 17:27:11 +01:00
REDMOND\brodes
7c18686462 Crypto: Further ql-for-ql alert alert fixes. 2025-06-16 12:14:09 -04:00
Jeroen Ketema
4bed44d4d2 Merge pull request #19775 from jketema/seh-2
C++: Generate SEH edges for pointer dereference loads/stores in `__try` blocks
2025-06-16 18:00:39 +02:00
REDMOND\brodes
790a60784e Crypto: Acronym change from OpenSSL to OpenSsl, AVC to Avc and EVP to Evp. 2025-06-16 10:56:31 -04:00
Napalys Klicius
da21a064ac JS: add _parsedUrl as remote input source 2025-06-16 16:28:30 +02:00
Napalys Klicius
67aac7abfa JS: add test cases for middleware property assignment tracking 2025-06-16 16:26:08 +02:00
REDMOND\brodes
90e480bbe8 Merge branch 'pawel_signatures_conversion' of https://github.com/bdrodes/codeql into pawel_signatures_conversion 2025-06-16 09:23:05 -04:00
REDMOND\brodes
45fa2c94da Crypto: Code review cleanup. 2025-06-16 09:22:11 -04:00
Jeroen Ketema
4228828b66 C++: Address review comments 2025-06-16 15:02:08 +02:00
Nicolas Will
f975428243 Merge branch 'main' into pawel_signatures_conversion 2025-06-16 14:57:53 +02:00
idrissrio
09bc57a003 C++: update stats file 2025-06-16 14:34:08 +02:00
idrissrio
fc9e5bdbf7 C++: add upgrade and downgrade scripts 2025-06-16 14:34:07 +02:00
idrissrio
927c220ddc C++: add change note for Namespace 2025-06-16 14:34:06 +02:00
idrissrio
e6f118374f C++: add predicate to Namespace class to retrieve associated attributes 2025-06-16 14:34:05 +02:00
idrissrio
b112b93d75 C++: add namespaceattributes table to store namespace attributes 2025-06-16 14:34:04 +02:00
Tom Hvitved
631b14a0df Rust: Fix three models 2025-06-16 14:28:06 +02:00
Tom Hvitved
41f7138627 Shared: Make sure getMadRepresentation is unique 2025-06-16 14:28:05 +02:00
Napalys Klicius
b14b661cd1 JS: add change note 2025-06-16 14:12:39 +02:00
Napalys Klicius
0c31838aa5 JS: mass add missing quality related tags to relevant queries 2025-06-16 14:05:57 +02:00
Napalys Klicius
0d5f5104d1 Updated UriEncodingSanitizer comment 2025-06-16 13:08:16 +02:00
Napalys Klicius
798721bd71 JS: add change note 2025-06-16 13:08:14 +02:00
Napalys Klicius
bdbc49c63f JS: Removed encodeURI from request forgery sanitizer list 2025-06-16 13:08:11 +02:00
Napalys Klicius
eca69e1654 JS: remove serialize-javascript from JsonParsers.qll as it is not a parser 2025-06-16 12:59:36 +02:00
Jeroen Ketema
9d6a1a9885 C++: Generate SEH edges for pointer dereference loads in __try blocks 2025-06-16 12:39:53 +02:00
Jeroen Ketema
3eb768c1e9 C++: Generate SEH edges for pointer dereference stores in __try blocks 2025-06-16 12:39:50 +02:00
Jeroen Ketema
67d623fb06 C++: Add __try with load test case
Fix some formatting while here.
2025-06-16 12:39:47 +02:00
Paolo Tranquilli
30ab9b7b84 Merge pull request #19772 from github/redsun82/rust-test-cargo-lock
Rust: add `Cargo.lock` files to all tests with `cargo check`
2025-06-16 12:21:30 +02:00
Paolo Tranquilli
8b98e2a559 Rust: accept test changes 2025-06-16 11:54:07 +02:00
Mathias Vorreiter Pedersen
3d9d9fe9c0 Merge pull request #19746 from jketema/seh
C++: Use SEH exception edges in IR and generate SEH exception edges for calls in `__try`  blocks
2025-06-16 10:53:54 +01:00
Simon Friis Vindum
fb0f12bfe0 Merge pull request #19756 from paldepind/rust/type-parameters-default
Rust: Type inference uses defaults for type parameters
2025-06-16 10:53:14 +02:00
Paolo Tranquilli
55096a31f2 Rust: add Cargo.lock files to all tests with cargo check 2025-06-16 10:52:53 +02:00
Napalys Klicius
deb715a517 JS: Add test case with encodeURI for request forgery 2025-06-16 10:49:29 +02:00
Napalys Klicius
fffbc0c0bc JS: add change note 2025-06-16 10:38:27 +02:00
Napalys Klicius
5a107ec33b JS: track taint through serialize-javascript calls with object arguments 2025-06-16 10:38:20 +02:00
Simon Friis Vindum
8fe737ca52 Rust: Use defaults for type parameters 2025-06-16 09:54:01 +02:00
Simon Friis Vindum
38aacb04c2 Rust: Add debug predicate for type mentions 2025-06-16 09:52:42 +02:00
Simon Friis Vindum
1425bb8b08 Rust: Add type inference tests with default for type parameters 2025-06-16 09:52:38 +02:00
Napalys Klicius
a96ea182c7 JS: add test cases for serialize-javascript with tainted object properties 2025-06-16 09:30:52 +02:00
Paolo Tranquilli
2a51749a31 Merge pull request #19748 from github/redsun82/rust-models
Rust: regenerate models
2025-06-16 08:37:00 +02:00
Paolo Tranquilli
ae6b0fd6e5 Merge pull request #19765 from github/redsun82/black
CI: fix python version
2025-06-16 08:27:04 +02:00
Nicolas Will
db0bc47495 Merge branch 'main' into pawel_signatures_conversion 2025-06-15 15:35:31 +02:00
Vasco-jofra
e2eca5bbff Update test.expected 2025-06-15 12:12:12 +02:00
Vasco-jofra
6920430073 Improve dependency injection through import function calls 2025-06-15 00:47:34 +02:00
Vasco-jofra
9019879d99 Improve useFactory inter file function detection 2025-06-15 00:32:26 +02:00
Vasco-jofra
477f32c7ff NestJS dependency injection support useValue provider 2025-06-15 00:21:38 +02:00
Vasco-jofra
2b143c86ac NestJS dependency Injection support useFactory provider 2025-06-15 00:09:07 +02:00
Vasco-jofra
baf0d3ef22 Model NestJS middlewares as sources 2025-06-14 23:27:49 +02:00
Jeroen Ketema
1b2813dcf6 C++: Also generate an SEH edge for calls in initializers 2025-06-14 00:16:47 +02:00
Jeroen Ketema
815ae37a7e C++: Add test case with call in initialization
Fix formatting while here.
2025-06-14 00:05:00 +02:00
Jeroen Ketema
4a42ca8c69 C++: Limit SEH exception edges to calls in __try blocks 2025-06-13 20:34:35 +02:00
Mathias Vorreiter Pedersen
d83cbde1cb Merge pull request #19753 from MathiasVP/add-more-mad-summaries
C++: Add more MaD summaries
2025-06-13 18:23:11 +01:00
Paolo Tranquilli
fe1e562f8d CI: fix python version
Turns out this is important for the black formatting tool to work
correctly. The formatting won't generally change between python versions
(it only depends on `black`'s version), but the formatted code needs to
be parseable by the system python version. One script uses
```python
def foo[T](x: T) -> T:
```
syntax, which is only supported in Python 3.12 and later.

Running `pre-commit` will now require a python 3.12 installation (which
is already what we mandate for internal developer environment setup).
The error in case of absence of such a version is pretty clear though.
2025-06-13 18:19:30 +02:00
REDMOND\brodes
1882db7d86 Crypto: EVP Signature Operation cleanup. 2025-06-13 12:07:03 -04:00
REDMOND\brodes
fb495bf665 Crypto: Update expected files. There are failures, but accepting them for now and noting the issue for a future PR. 2025-06-13 12:02:57 -04:00
REDMOND\brodes
cf2f0f16b8 Crypto: Initial model of signatures. Still incomplete for verification and correct handling of MACs. 2025-06-13 11:52:37 -04:00
Jeroen Ketema
c7a7447768 C++: Generate an SEH exception edge for each call inside a SEH block 2025-06-13 16:30:25 +02:00
Jeroen Ketema
400424f13c C++: Add change note 2025-06-13 16:30:24 +02:00
Jeroen Ketema
6f41d3c4e3 C++: Use SEH exception edges for functions that unconditionally throw those 2025-06-13 16:30:23 +02:00
Jeroen Ketema
0038d0f17c C++: Deprecate ThrowingFunction and no longer use in IR 2025-06-13 16:30:20 +02:00
Idriss Riouak
70647ce290 Merge pull request #19734 from github/idrissrio/goto
C++: Add  support to `__leave`
2025-06-13 16:20:26 +02:00
Simon Friis Vindum
0a6d88487a Merge pull request #19749 from paldepind/rust/impl-parameter-resolution
Rust: Disambiguate some method calls based on argument types
2025-06-13 16:14:13 +02:00
Simon Friis Vindum
ef15df35c6 Rust: Apply review suggestions 2025-06-13 15:43:44 +02:00
Simon Friis Vindum
eacf034dde Rust: Disambiguate some method calls based on argument types 2025-06-13 15:43:39 +02:00
Simon Friis Vindum
d1aee7f704 Rust: Add type inference test 2025-06-13 15:42:08 +02:00
Vasco-jofra
ddf77a0b72 Remove unnecessary spaces 2025-06-13 15:37:27 +02:00
Vasco-jofra
4ea53773b9 Model the TypeORM Repository API 2025-06-13 15:35:46 +02:00
Tom Hvitved
6cca01662d Merge pull request #19755 from hvitved/rust/type-inference-operand-workaround
Rust: Temporarily disable type information to flow into operands
2025-06-13 15:25:34 +02:00
Tom Hvitved
7051ad50ea Merge pull request #19751 from hvitved/rust/type-inference-macro-expr
Rust: Type inference for macro expressions
2025-06-13 15:24:56 +02:00
Geoffrey White
14b75a968b Apply suggestions from code review
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-06-13 14:09:49 +01:00
Anders Schack-Mulligen
8838104d6a Merge pull request #19733 from aschackmull/java/assert-cfg
Java: Update the CFG for assert statements to make them proper guards.
2025-06-13 14:52:57 +02:00
Geoffrey White
6194676b7d Rust: Accept consistency failures (for now). 2025-06-13 13:51:01 +01:00
Geoffrey White
62e3cc57c6 Merge branch 'main' into typeinfer 2025-06-13 13:45:19 +01:00
Tom Hvitved
5f4d588cd9 Rust: Temporarily disable type information to flow into operands 2025-06-13 14:21:02 +02:00
Joe Farebrother
e04dea10c8 Merge pull request #19554 from joefarebrother/python-qual-iter-not-return-self
Python: Modernize iter not returning self query
2025-06-13 13:13:31 +01:00
Anders Schack-Mulligen
6131c680f6 Update java/ql/lib/semmle/code/java/ControlFlowGraph.qll
Co-authored-by: Tom Hvitved <hvitved@github.com>
2025-06-13 14:07:46 +02:00
Geoffrey White
b89d6d3402 Rust: Implement type inference for ArrayRepeatExprs. 2025-06-13 12:58:51 +01:00
Geoffrey White
51343a5c03 Rust: Implement type inference for ArrayListExprs. 2025-06-13 12:58:49 +01:00
Geoffrey White
f76b56291b Rust: Implement type inference for 'for' loops on arrays. 2025-06-13 12:58:47 +01:00
Geoffrey White
840ef5ce92 Rust: Add test cases for type inference in loops. 2025-06-13 12:37:32 +01:00
Napalys Klicius
0906d85b39 Merge pull request #19726 from Napalys/js/quality/string_interpolation
JS: Promote `js/template-syntax-in-string-literal` to the Code Quality suite.
2025-06-13 13:36:53 +02:00
Tom Hvitved
2f698d1590 Rust: Type inference for macro expressions 2025-06-13 13:11:11 +02:00
Tom Hvitved
fd59a27bd2 Rust: Add macro expr type inference test 2025-06-13 13:11:07 +02:00
Tom Hvitved
ad64e04475 Merge pull request #19737 from hvitved/rust/type-inference-string-str-deref
Rust: Model `String` -> `str` implicit conversion in type inference
2025-06-13 13:09:24 +02:00
Paolo Tranquilli
ad3a5d777d Rust: add public preview change notes 2025-06-13 13:03:39 +02:00
Mathias Vorreiter Pedersen
c14a4a66d5 C++: Accept test changes. Nothing exciting here. 2025-06-13 11:41:01 +01:00
Paolo Tranquilli
cae4a0459b Rust: update supported-frameworks.rst 2025-06-13 12:38:33 +02:00
Mathias Vorreiter Pedersen
458a9b0359 C++: Add change note. 2025-06-13 11:06:45 +01:00
Mathias Vorreiter Pedersen
e72fe9b88b C++: Generate lots of new models. 2025-06-13 10:57:44 +01:00
Mathias Vorreiter Pedersen
b02d859216 C++: Add lots of MaD model generation targets. 2025-06-13 10:56:19 +01:00
Paolo Tranquilli
ff9ac3bb6f Rust: accept test changes 2025-06-13 11:56:12 +02:00
Tom Hvitved
66c0ff61bb Rust: Model String -> str implicit conversion in type inference 2025-06-13 11:32:23 +02:00
Tom Hvitved
1acd636553 Merge pull request #19745 from hvitved/rust/path-resolution-has-implementation
Rust: Use `hasImplementation` in path resolution
2025-06-13 11:17:03 +02:00
idrissrio
7af828720a C++: address review comments 2025-06-13 09:44:27 +02:00
idrissrio
ac1824aba7 C++: update stats file 2025-06-13 09:44:26 +02:00
idrissrio
7152e68a4d C++: add upgrade and downgrade scripts 2025-06-13 09:44:25 +02:00
idrissrio
e6faebf850 C++: add change note for LeaveStmt 2025-06-13 09:44:14 +02:00
idrissrio
a6b3310f77 C++: test new class LeaveStmt 2025-06-13 09:44:03 +02:00
idrissrio
f6fa707770 C++: Add LeaveStmt class 2025-06-13 09:44:01 +02:00
idrissrio
7a4de55ac2 C++: Add leave statement to dbscheme 2025-06-13 09:44:00 +02:00
Paolo Tranquilli
118456d127 Rust: regenerate models
Models are regenerated with the fix from https://github.com/github/codeql/pull/19744
which corrects the order of generation.
2025-06-13 09:06:15 +02:00
Paolo Tranquilli
5df292c286 MaD generator: apply black formatting to all sources 2025-06-13 08:47:07 +02:00
Paolo Tranquilli
1a36374718 MaD generator: really fix ordering problem 2025-06-13 08:45:55 +02:00
Tom Hvitved
3d18e3ea8f Rust: Use hasImplementation in path resolution 2025-06-13 08:44:44 +02:00
Paolo Tranquilli
f7266c973b Merge branch 'main' into redsun82/mad-generator 2025-06-13 08:42:06 +02:00
Tom Hvitved
5b5074e922 Rust: Add another type inference test 2025-06-12 21:48:40 +02:00
REDMOND\brodes
eb20955a54 Crypto: Further simplify test caes to only use edges/nodes/properties. Update model to account for MAC algorithms. 2025-06-12 15:36:59 -04:00
Paolo Tranquilli
55eb9fb838 Merge pull request #19712 from github/redsun82/python-black
Add `black` pre-commit hook
2025-06-12 20:49:56 +02:00
Paolo Tranquilli
22c490ce4e Merge pull request #19667 from github/redsun82/rust-mad
Rust: Use QL computed canonical paths in MaD `Field` tokens
2025-06-12 20:48:41 +02:00
Paolo Tranquilli
c56a32580d Rust: remove now unneeded get(Arg|Param)List in the dataflow guide 2025-06-12 17:35:00 +02:00
Paolo Tranquilli
e1e34df948 Merge branch 'main' into redsun82/rust-doc 2025-06-12 17:33:51 +02:00
Paolo Tranquilli
a5dba9b54f Merge pull request #19649 from github/redsun82/rust-has-implementation
Rust: extract `hasImplementation` on functions and consts
2025-06-12 15:19:23 +00:00
Simon Friis Vindum
e30a9e9906 Merge pull request #19685 from paldepind/rust/df-operator-overloading
Rust: Data flow through overloaded operators
2025-06-12 17:08:16 +02:00
Paolo Tranquilli
ae3bbb0a9b MaD generator: run black formatter` 2025-06-12 16:52:29 +02:00
Paolo Tranquilli
39a3623b18 MaD generator: change default thread and ram
The standalone MaD generator now uses `0` for threads and throttles the
RAM to use 2GB per thread by default.

Also, replaced the hand-written argument parsing with `argparse`.
2025-06-12 16:52:14 +02:00
Tom Hvitved
70c3ae4609 Merge pull request #19727 from hvitved/shared/type-inference-doc
Shared: Add elaborate QL doc to `TypeInference.qll`
2025-06-12 16:31:50 +02:00
Paolo Tranquilli
7db31b06d1 MaD generator: tweak the scripts
* fix a bug where the order of model generation was determined by the
  order in the `download.json` file of the experiment rather than the
  order in the config file
* allow configuring `--ram` and `--threads` in the MaD generator scripts
* use no `--ram` and `--threads=0` by default in the bulk generator
  (single generator defaults are left unchanged)
* allow to pass `--dca` multiple times, taking DBs from experiments
  listed last. This allows to run a subset of the sources in a "fixup"
  experiment and use it to "patch" a previous run without rerunning
  everything.
2025-06-12 16:23:07 +02:00
Paolo Tranquilli
b102d5c39d Rust: accept test changes 2025-06-12 16:19:17 +02:00
Paolo Tranquilli
836b81de40 Rust: fix mdoel 2025-06-12 15:50:21 +02:00
Paolo Tranquilli
506ea11d07 Rust: simplify upgrade script 2025-06-12 15:31:11 +02:00
Napalys Klicius
28ae39694f Merge pull request #19741 from Napalys/js/quality/suspicious_method_names
JS: Promote `js/suspicious-method-name-declaration` to the Code Quality suite.
2025-06-12 15:30:13 +02:00
Paolo Tranquilli
ad7fb9c061 Merge branch 'main' into redsun82/rust-has-implementation 2025-06-12 15:25:59 +02:00
Napalys Klicius
10d10286f7 JS: add change notes 2025-06-12 15:23:31 +02:00
Napalys Klicius
885e8369aa JS: add quality and reliability tags to loop-iteration-skipped-due-to-shifting 2025-06-12 15:18:26 +02:00
Napalys Klicius
66d66fe87d JS: fix false positives for splice with conditional index decrement 2025-06-12 14:51:10 +02:00
Napalys Klicius
7292a76ee4 JS: add test cases for false positives in loop-iteration-skipped-due-to-shifting 2025-06-12 14:39:47 +02:00
Napalys Klicius
d7ad625de3 JS: restrict type tracking to strings of interest. 2025-06-12 14:28:00 +02:00
Arthur Baars
e1b4dea52f Merge pull request #19742 from github/nickrolfe/rust-readme
Rust: fix typo in README.md
2025-06-12 14:26:19 +02:00
Napalys Klicius
da5cd251be Update javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql
Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com>
2025-06-12 14:25:00 +02:00
Simon Friis Vindum
2dd2f2e72b Rust: Address review comments 2025-06-12 14:12:27 +02:00
Nick Rolfe
02b75e884e Rust: fix typo in README.md 2025-06-12 13:00:23 +01:00
Napalys Klicius
e6d26912e0 Update javascript/ql/src/Declarations/SuspiciousMethodNameDeclaration.qhelp
Co-authored-by: Asger F <asgerf@github.com>
2025-06-12 13:10:27 +02:00
Tom Hvitved
93fd6ec826 Merge pull request #19729 from hvitved/rust/type-inference-adjust-type-relevant-access
Rust: Also apply `adjustedAccessType` in `RelevantAccess`
2025-06-12 13:04:13 +02:00
Napalys Klicius
7b91a57eb1 JS: add change note. 2025-06-12 12:19:39 +02:00
Paolo Tranquilli
455490436c Rust: fix dataflow models test expectation 2025-06-12 12:16:37 +02:00
Tom Hvitved
9e6ce98491 Merge pull request #19728 from hvitved/rust/type-inference-debug-predicates
Rust: Add another type inference debug predicate
2025-06-12 12:15:19 +02:00
Tom Hvitved
1ec376073b Update shared/typeinference/codeql/typeinference/internal/TypeInference.qll
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-06-12 12:14:52 +02:00
Napalys Klicius
75ee649362 JS: add change note 2025-06-12 12:14:14 +02:00
Napalys Klicius
923aff2439 JS: Fixed false positive on manual string interpolation. 2025-06-12 11:35:33 +02:00
Owen Mansel-Chan
538a5af1d1 Merge pull request #19738 from owen-mc/pr/felickz/19530
Set CWE-134 from 9.3 to 7.3 CVSS score for memory safe languages (#2)
2025-06-12 10:27:28 +01:00
Napalys Klicius
bafe7e66ad JS: Fix template literal detection in string concatination 2025-06-12 11:18:20 +02:00
Simon Friis Vindum
8cde1eefb2 Rust: Remove Access from adjustAccessType 2025-06-12 11:16:32 +02:00
Simon Friis Vindum
f138f77cc1 Rust: Only adjust access type for method call expressions 2025-06-12 11:16:30 +02:00
Simon Friis Vindum
03c9a78bfb Rust: Simplify accessDeclarationPositionMatch 2025-06-12 11:16:29 +02:00
Simon Friis Vindum
3463ebd8ce Rust: Adapt data flow consistency queries to ! being a call
The exact same problem occurs in Ruby, hence the `multipleArgumentCallExclude` implementation is adapted from Ruby's.
2025-06-12 11:16:28 +02:00
Simon Friis Vindum
fecd445e78 Rust: Use Call in data flow 2025-06-12 11:16:26 +02:00
Simon Friis Vindum
5642445e1d Rust: Fix canonical path for Deref trait 2025-06-12 11:16:25 +02:00
Simon Friis Vindum
7684e01c3a Rust: Use Call in type inference 2025-06-12 11:16:19 +02:00
Napalys Klicius
861e4ee11e JS: Added test cases including manual interpolation and string concatination. 2025-06-12 11:15:36 +02:00
Simon Friis Vindum
47864781c1 Rust: Add abstraction over all kinds of calls 2025-06-12 11:12:06 +02:00
Simon Friis Vindum
ce1c9fbec1 Rust: Account for arity in operator overloading
For instance the binary `&` is overloadable but the prefix `&` is not. Similarly, `*` has a different target depending on if it's prefix or infix.
2025-06-12 11:12:04 +02:00
Simon Friis Vindum
18583550ae Rust: Add data flow tests for operator overloading 2025-06-12 11:12:03 +02:00
Paolo Tranquilli
3c834de5be Rust: fix dataflow models test 2025-06-12 11:04:30 +02:00
Anders Schack-Mulligen
d0d47808e9 Java: Add change note. 2025-06-12 11:03:49 +02:00
Tom Hvitved
d667f7d411 Merge pull request #19732 from hvitved/rust/builtin-canonical-paths
Rust: Generate canonical paths for builtins
2025-06-12 10:47:00 +02:00
Paolo Tranquilli
85e9f5a3b0 Merge pull request #19559 from github/redsun82/rust-extract-libs
Rust: move body skipping logic to code generation
2025-06-12 10:45:30 +02:00
Tom Hvitved
649481e279 Merge pull request #19657 from hvitved/rust/type-inference-index-expr-simple
Rust: Simple type inference for index expressions
2025-06-12 10:27:09 +02:00
Owen Mansel-Chan
23cbc6abc4 Merge pull request #19723 from apsscolari/update-precision-java-concatenated-command-line
Update precision java concatenated command line
2025-06-12 09:23:00 +01:00
Geoffrey White
fdf1dca28f Merge pull request #19735 from geoffw0/canonical
Rust: Update RegexInjectionExtensions to use getCanonicalPath.
2025-06-12 09:14:52 +01:00
Napalys Klicius
c5a1421405 JS: promote suspicious-method-name-declaration to quality query. 2025-06-12 09:54:01 +02:00
Napalys Klicius
60e3b0c8e7 JS: Update qhelp and added more examples. 2025-06-12 09:53:56 +02:00
Napalys Klicius
41f4236b86 JS: expanded suspicious-method-name-declaration test suite 2025-06-12 09:29:30 +02:00
Paolo Tranquilli
326ddd6625 Merge branch 'main' into redsun82/rust-mad 2025-06-12 09:24:44 +02:00
Paolo Tranquilli
a6cc94698a Rust: fix inline flow test 2025-06-12 09:24:33 +02:00
Tom Hvitved
383cc5c2a7 Rust: Rename Bultins.qll -> Builtins.qll 2025-06-12 09:12:32 +02:00
REDMOND\brodes
20e2c7cefd Crypto: Overhaul/refactor of EVPInitialzers. Update cipher operation to disallow null key and IV on initializers (typically do not represent an actual key or IV). 2025-06-12 00:41:15 -04:00
Ana Scolari
a07ce30d30 Update java-code-scanning.qls.expected
removing line once this query precision is changed to Medium
2025-06-11 15:27:20 -07:00
Ana Scolari
374d7da4a2 Merge branch 'main' into update-precision-java-concatenated-command-line 2025-06-11 15:24:41 -07:00
Jon Janego
7f76f5b056 Merge pull request #19740 from github/changedocs-2.22.0
Changedocs 2.22.0
2025-06-11 17:18:16 -05:00
Jon Janego
94a2d0876c escaping 2025-06-11 17:02:26 -05:00
Jon Janego
62e17c108c RST sitedocs for 2.22.0 2025-06-11 16:55:14 -05:00
Jeroen Ketema
7d8d596a35 Merge pull request #19686 from github/idrissrio/lambdaparams
C++: Add boolean for explicit lambda parameter lists
2025-06-11 23:53:00 +02:00
Jon Janego
6ec48117b5 Merge pull request #19739 from github/changedocs-2.22.0
fixing some improperly escaped URLs
2025-06-11 16:24:29 -05:00
Jon Janego
6336e3d44b fixing another bracket 2025-06-11 16:02:28 -05:00
Chad Bentz
0135cf661f Attempt to edit swift change notes for CI failure 2025-06-11 21:49:26 +01:00
Jon Janego
8f55dcdd67 removing brackets around a url 2025-06-11 15:36:30 -05:00
REDMOND\brodes
8f25380655 Crypto: Consolidate tests to use node, edges, and properties. 2025-06-11 15:15:22 -04:00
Tom Hvitved
69e549f400 Rust: Generate canonical paths for builtins 2025-06-11 21:14:56 +02:00
REDMOND\brodes
d3cff2dff1 Crypto: Add support to trace keys, add support to find prior key gen properties that configure downstream operations. Add key size tests 2025-06-11 13:58:56 -04:00
Geoffrey White
087e666658 Rust: Exclude sources in macro expansions. 2025-06-11 18:48:23 +01:00
Geoffrey White
168246005c Rust: Extend tests based on cases found in DCA. 2025-06-11 18:33:59 +01:00
Nora Dimitrijević
f2bd454e99 Actions: mass enable diff-informed data flow
An auto-generated patch that enables diff-informed data flow in the obvious cases.

Builds on https://github.com/github/codeql/pull/18346 and https://github.com/github/codeql-patch/pull/88
2025-06-11 19:10:11 +02:00
Geoffrey White
b29deed919 Rust: Accept changes in an unrelated test reported by CI. 2025-06-11 18:09:22 +01:00
Nora Dimitrijević
f2085c2293 C#: mass enable diff-informed data flow
An auto-generated patch that enables diff-informed data flow in the obvious cases.

Builds on https://github.com/github/codeql/pull/18344 and https://github.com/github/codeql-patch/pull/88
2025-06-11 18:56:25 +02:00
Geoffrey White
bd21a03fc3 Merge pull request #19718 from geoffw0/taintreach
Rust: Adjust the taint reach metric for better stability.
2025-06-11 17:51:50 +01:00
Nora Dimitrijević
4dd07f475b C++: mass enable diff-informed data flow
An auto-generated patch that enables diff-informed data flow in the obvious cases.

Builds on https://github.com/github/codeql/pull/18342 and https://github.com/github/codeql-patch/pull/88
2025-06-11 18:51:01 +02:00
Nora Dimitrijević
e233501144 Go: mass enable diff-informed data flow
An auto-generated patch that enables diff-informed data flow in the obvious cases.

Builds on https://github.com/github/codeql/pull/18345 and https://github.com/github/codeql-patch/pull/88
2025-06-11 18:44:24 +02:00
Nora Dimitrijević
2078a34763 Disable diff-informed on InsecureTLSQuery due to DIFF-INFORMED test failures 2025-06-11 18:36:32 +02:00
Nora Dimitrijević
afec8b3153 Swift: mass enable diff-informed data flow
An auto-generated patch that enables diff-informed data flow in the obvious cases.

Builds on https://github.com/github/codeql/pull/18343 and https://github.com/github/codeql-patch/pull/88
2025-06-11 18:34:33 +02:00
Ana Scolari
b84f9d6c3c Update java/ql/src/change-notes/2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com>
2025-06-11 08:55:45 -07:00
Ana Scolari
f915984b01 Update java/ql/src/change-notes/2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-11 08:55:34 -07:00
Paolo Tranquilli
97c2dfe23f Rust: fix tests 2025-06-11 17:32:43 +02:00
Paolo Tranquilli
bea5381420 Rust: replace last hand-written instances of Field[crate:: 2025-06-11 16:48:39 +02:00
Paolo Tranquilli
c6c52edbee MaD generator: tweak the scripts
* fix a bug where the order of model generation was determined by the
  order in the `download.json` file of the experiment rather than the
  order in the config file
* allow configuring `--ram` and `--threads` in the MaD generator scripts
* use no `--ram` and `--threads=0` by default in the bulk generator
  (single generator defaults are left unchanged)
* allow to pass `--dca` multiple times, taking DBs from experiments
  listed last. This allows to run a subset of the sources in a "fixup"
  experiment and use it to "patch" a previous run without rerunning
  everything.
2025-06-11 16:42:00 +02:00
Paolo Tranquilli
051704e59d Merge branch 'main' into redsun82/rust-mad 2025-06-11 16:39:10 +02:00
Geoffrey White
0c05fa48eb Rust: Update RegexInjectionExtensions to use getCanonicalPath. 2025-06-11 15:32:23 +01:00
Owen Mansel-Chan
25adcc8f4a Add Markdown format to guide 2025-06-11 15:03:42 +01:00
Anders Schack-Mulligen
f27e310ba3 Java: Adjust references. 2025-06-11 15:53:02 +02:00
Anders Schack-Mulligen
b3bb71f2e2 Java: Update the CFG for assert statements to make them proper guards. 2025-06-11 15:38:29 +02:00
Tom Hvitved
18392a07ce Rust: Also apply adjustedAccessType in RelevantAccess 2025-06-11 15:00:35 +02:00
Tom Hvitved
31770edc26 Merge pull request #19725 from hvitved/rust/fix-bad-joins
Rust: Fix various bad joins
2025-06-11 14:51:20 +02:00
Asger F
423ffc78db Merge pull request #19078 from asgerf/js/name-resolution
JS: QL-side type/name resolution for TypeScript and JSDoc
2025-06-11 14:17:11 +02:00
Michael Nebel
f038e2f809 Merge pull request #19589 from michaelnebel/csharp/dereference
C#: Improve `cs/dereference-*` queries and add to the Code Quality suite.
2025-06-11 13:40:58 +02:00
Tom Hvitved
133aca0773 Rust: Simple type inference for index expressions 2025-06-11 13:15:21 +02:00
Tom Hvitved
301bd44a4c Rust: Add type inference tests for index expressions 2025-06-11 13:08:59 +02:00
Owen Mansel-Chan
c8a5418969 Remove trailing spaces and extra blank lines 2025-06-11 12:03:17 +01:00
Tom Hvitved
eeaccc5a9a Update shared/typeinference/codeql/typeinference/internal/TypeInference.qll
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-11 12:48:06 +02:00
Tom Hvitved
9f8a3abcff Rust: Add another type inference debug predicate 2025-06-11 12:44:17 +02:00
Tom Hvitved
b90e8679a9 Shared: Add elaborate QL doc to TypeInference.qll 2025-06-11 12:38:04 +02:00
Simon Friis Vindum
75caa182f5 Merge pull request #19724 from github/rust/type-inference-borrow
Rust: Implement type inference for ref expression as type equality
2025-06-11 12:36:43 +02:00
Paolo Tranquilli
58266e6ca8 Merge branch 'main' into redsun82/rust-extract-libs 2025-06-11 12:13:10 +02:00
Napalys Klicius
92084dd74f JS: add js/template-syntax-in-string-literal to the Code Quality suite. 2025-06-11 11:48:05 +02:00
idrissrio
645ce5bbda C++: update change note after review comments 2025-06-11 11:41:51 +02:00
idrissrio
2bae21cbcd C++: address review comments 2025-06-11 11:41:50 +02:00
idrissrio
f759550e5a C++: update stats file 2025-06-11 11:41:49 +02:00
idrissrio
e4a9a5aee8 C++: add upgrade and downgrade scripts 2025-06-11 11:41:48 +02:00
idrissrio
b0c0fb9699 C++: Add change node 2025-06-11 11:41:47 +02:00
idrissrio
cb17a35cbd C++: Add test to check lambda parameters emptyness 2025-06-11 11:41:46 +02:00
idrissrio
6c9959d8bc C++: Add predicates for lambda parameter list 2025-06-11 11:41:45 +02:00
idrissrio
3ecc4c9ad7 C++: Adapt existing code to use the new layout of the underlying lambda table 2025-06-11 11:41:44 +02:00
idrissrio
9ac9607cb7 C++: Add boolean for explicit lambda parameter list 2025-06-11 11:41:43 +02:00
Paolo Tranquilli
fbcd9eaf09 Merge pull request #19674 from github/redsun82/mad
Rust: regenerate MaD files using DCA
2025-06-11 11:10:08 +02:00
Napalys Klicius
6811cad687 Merge pull request #19711 from Napalys/js/quality/promote_duplicate_char_class
JS: Promote `js/regex/duplicate-in-character-class` to quality
2025-06-11 11:05:07 +02:00
Asger F
e848aa747b JS: Clarifying comment on commonStep 2025-06-11 10:24:21 +02:00
Tom Hvitved
3c9cbf186e Rust: Fix bad join in typeParametersEqualFromIndex
Before
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48@9c099swn was evaluated in 375 iterations totaling 154ms (delta sizes total: 0).
        16307861   ~1%    {5} r1 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypes/3#3b2e26a8#prev` ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Lhs.0, Lhs.2, Rhs.1

           37736   ~1%    {7} r2 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.0, Rhs.2, Rhs.3, _
                          {6}    | REWRITE WITH Tmp.6 := 0, TEST InOut.5 != Tmp.6 KEEPING 6
               0   ~0%    {7}    | SCAN OUTPUT In.0, In.2, In.3, In.4, In.1, _, In.5
               0   ~0%    {7}    | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.6 - Tmp.5)
               0   ~0%    {6}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev` ON FIRST 6 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.6

               0   ~0%    {8} r3 = JOIN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypes/3#3b2e26a8#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, _, Lhs.5, _
                          {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (Tmp.5 + In.6), Tmp.7 := 0, TEST Out.5 != Tmp.7 KEEPING 6
               0   ~0%    {6}    | SCAN OUTPUT In.2, In.3, In.5, In.0, In.1, In.4
               0   ~0%    {7}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.5, Lhs.4, Lhs.0, Lhs.1, Lhs.2
               0   ~0%    {6}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.3, Lhs.4, Lhs.5, Lhs.2, Lhs.6

        12808446   ~1%    {5} r4 = JOIN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypes/3#3b2e26a8#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.0, Lhs.1, Rhs.2

           22081   ~1%    {7} r5 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.0, Lhs.4, Rhs.2, Rhs.3, _
                          {6}    | REWRITE WITH Tmp.6 := 0, TEST InOut.5 != Tmp.6 KEEPING 6
               0   ~0%    {6}    | SCAN OUTPUT In.0, In.1, In.2, In.4, In.3, In.5
               0   ~0%    {8}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev` ON FIRST 5 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.4, Lhs.3, Lhs.5, Rhs.5, _
                          {8}    | REWRITE WITH Tmp.7 := 1, Out.7 := (InOut.5 - Tmp.7), TEST Out.7 = InOut.6
               0   ~0%    {6}    | SCAN OUTPUT In.0, In.1, In.2, In.4, In.3, In.5

           22081   ~1%    {8} r6 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.0, Lhs.1, Lhs.4, Rhs.2, Rhs.3, _
                          {7}    | REWRITE WITH Tmp.7 := 0, TEST InOut.6 = Tmp.7 KEEPING 7
           22081   ~0%    {7}    | SCAN OUTPUT In.2, In.5, _, In.3, In.0, In.1, In.4
           22081   ~0%    {7}    | REWRITE WITH Out.2 := 0
           22081   ~0%    {5}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.4, Lhs.5, Lhs.6
               0   ~0%    {6}    | JOIN WITH `project#TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789#3` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.0, Lhs.1, Lhs.4, _
               0   ~0%    {6}    | REWRITE WITH Out.5 := 0

           37736   ~1%    {8} r7 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.1, Lhs.3, Lhs.4, Lhs.0, Rhs.2, Rhs.3, _
                          {7}    | REWRITE WITH Tmp.7 := 0, TEST InOut.6 = Tmp.7 KEEPING 7
           37736   ~0%    {7}    | SCAN OUTPUT In.4, In.5, _, In.1, In.0, In.2, In.3
           37736   ~0%    {7}    | REWRITE WITH Out.2 := 0
           37736   ~1%    {5}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.4, Lhs.5, Lhs.6
               0   ~0%    {6}    | JOIN WITH `project#TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789#3` ON FIRST 2 OUTPUT Lhs.2, Lhs.4, Lhs.0, Lhs.1, Lhs.3, _
               0   ~0%    {6}    | REWRITE WITH Out.5 := 0

               0   ~0%    {6} r8 = r2 UNION r3 UNION r5 UNION r6 UNION r7
               0   ~0%    {6}    | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev`(FIRST 6)
                          return r8
```

After
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48@81728ywe was evaluated in 375 iterations totaling 2ms (delta sizes total: 0).
            0   ~0%    {6} r1 = JOIN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndexBase/5#56e8595e#reorder_0_4_1_2_3#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.4, Rhs.2, _
            0   ~0%    {6}    | REWRITE WITH Out.5 := 0

            0   ~0%    {6} r2 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndexBase/5#56e8595e#reorder_0_4_1_2_3#prev` ON FIRST 2 OUTPUT Lhs.0, Rhs.2, Rhs.3, Rhs.4, Lhs.2, _
            0   ~0%    {6}    | REWRITE WITH Out.5 := 0

        66609   ~1%    {3} r3 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` OUTPUT In.0, In.2, In.1
            0   ~0%    {9}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#reorder_0_4_1_2_3_5#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.1, Rhs.2, Rhs.3, Rhs.4, _, Rhs.5, _
                       {7}    | REWRITE WITH Tmp.6 := 1, Out.6 := (Tmp.6 + In.7), Tmp.8 := 0, TEST Out.6 != Tmp.8 KEEPING 7
            0   ~0%    {7}    | SCAN OUTPUT In.4, In.5, In.6, In.1, In.0, In.2, In.3
            0   ~0%    {6}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 4 OUTPUT Lhs.4, Lhs.6, Lhs.0, Lhs.1, Lhs.5, Lhs.2

            0   ~0%    {8} r4 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, _, In.5, _
                       {6}    | REWRITE WITH Tmp.5 := 1, Out.5 := (Tmp.5 + In.6), Tmp.7 := 0, TEST Out.5 != Tmp.7 KEEPING 6
            0   ~0%    {6}    | SCAN OUTPUT In.2, In.3, In.5, In.0, In.1, In.4
            0   ~0%    {7}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.5, Lhs.4, Lhs.0, Lhs.1, Lhs.2
            0   ~0%    {6}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.3, Lhs.4, Lhs.5, Lhs.2, Lhs.6

            0   ~0%    {6} r5 = r1 UNION r2 UNION r3 UNION r4
            0   ~0%    {6}    | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev`(FIRST 6)
                       return r5
```
2025-06-11 10:23:57 +02:00
Asger F
2aa5fa17f7 JS: Add comment and examples in FlowImpl doc 2025-06-11 10:21:24 +02:00
Tom Hvitved
79e1af04df Rust: Fix bad join in satisfiesConstraintTypeMention
Before
```
Pipeline standard for TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324@e8671rw7 was evaluated in 378 iterations totaling 313ms (delta sizes total: 168323).
          462477    ~1%    {7} r1 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev_delta` WITH TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.4, Lhs.3, Rhs.1, Rhs.2, Rhs.3
          993561    ~2%    {9}    | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.3, Rhs.4, Lhs.3, Lhs.4, Lhs.5, Lhs.6
          993561   ~38%    {7}    | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 5 OUTPUT Lhs.0, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.3
                           {7}    | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
          772102  ~427%    {6}    | SCAN OUTPUT In.3, In.4, In.5, In.2, In.6, In.1

           56885    ~1%    {4} r2 = SCAN TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#prev_delta OUTPUT In.3, In.0, In.1, In.2

               0    ~0%    {7} r3 = JOIN r2 WITH `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Rhs.4, Lhs.1, Lhs.2, Lhs.3, Rhs.3
               0    ~0%    {9}    | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.3, Rhs.4, Lhs.3, Lhs.4, Lhs.5, Lhs.6
               0    ~0%    {7}    | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 5 OUTPUT Lhs.0, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.3
                           {7}    | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
               0    ~0%    {6}    | SCAN OUTPUT In.2, In.3, In.4, In.5, In.6, In.1

          462477    ~1%    {8} r4 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev_delta` WITH TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.4, Lhs.0, Lhs.3, Rhs.1, Rhs.2, Rhs.3
          993561   ~39%    {9}    | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Rhs.4, Lhs.3, Lhs.1, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Rhs.3
           23413    ~1%    {8}    | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.3, Lhs.1, Lhs.2, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8
            2817    ~7%    {7}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Rhs.2
           11550    ~0%    {9}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, _, Lhs.6, Rhs.1
                           {7}    | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
            2397    ~1%    {11}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, _, _, In.4, In.6, _, _
                           {7}    | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
            2397    ~1%    {9}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
                           {7}    | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
            2397    ~1%    {6}    | SCAN OUTPUT In.1, In.2, In.3, In.0, In.5, In.4

           66727    ~0%    {6} r5 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.1, Rhs.2, Rhs.3
        19305359    ~0%    {9}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, Rhs.3, Rhs.4
         3454881    ~1%    {10}    | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 1 OUTPUT Lhs.0, Lhs.6, Lhs.8, Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.7
          753104    ~1%    {9}    | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a_01243#join_rhs` ON FIRST 4 OUTPUT Lhs.1, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.9, Rhs.4
           32040   ~18%    {9}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 2 OUTPUT Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, _, Rhs.2, Lhs.2
                           {7}    | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
           13192   ~54%    {11}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, _, _, In.5, In.6, _, _
                           {7}    | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
           13192   ~54%    {9}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
                           {7}    | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
           13192   ~55%    {6}    | SCAN OUTPUT In.1, In.2, In.3, In.4, In.5, In.0

               0    ~0%    {8} r6 = JOIN r2 WITH `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Rhs.4, Lhs.1, Lhs.2, Lhs.3, Lhs.0, Rhs.3
               0    ~0%    {9}    | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Rhs.4, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.1, Lhs.7, Rhs.3
               0    ~0%    {8}    | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.6, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.7, Lhs.8
               0    ~0%    {7}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 2 OUTPUT Lhs.5, Lhs.2, Lhs.3, Lhs.4, Lhs.6, Lhs.7, Rhs.2
               0    ~0%    {9}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, _, Lhs.6, Rhs.1
                           {7}    | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
               0    ~0%    {11}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, _, _, In.4, In.6, _, _
                           {7}    | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
               0    ~0%    {9}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
                           {7}    | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
               0    ~0%    {6}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, In.4

          787691  ~403%    {6} r7 = r1 UNION r3 UNION r4 UNION r5 UNION r6
          212766   ~54%    {6}    | AND NOT `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324#prev`(FIRST 6)
                           return r7
```

After
```
Pipeline standard for TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324@9c099xwn was evaluated in 380 iterations totaling 11ms (delta sizes total: 153004).
        768937    ~1%    {7} r1 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention0/9#c82a4f76#prev_delta` OUTPUT In.5, In.8, In.1, In.2, In.3, In.4, In.7
                         {7}    | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
        745524  ~423%    {6}    | SCAN OUTPUT In.2, In.3, In.4, In.5, In.6, In.1

         26916    ~0%    {9} r2 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention1/7#b265d17e#prev` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Rhs.2, Rhs.3, Rhs.4, Rhs.5, _, Rhs.6, Lhs.1
                         {7}    | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
          8530    ~1%    {11}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, _, _, In.5, In.6, _, _
                         {7}    | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
          8530    ~1%    {9}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
                         {7}    | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
          8530    ~1%    {6}    | SCAN OUTPUT In.1, In.2, In.3, In.4, In.5, In.0

         11763    ~1%    {9} r3 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention1/7#b265d17e#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, _, Lhs.6, Rhs.1
                         {7}    | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
          2461    ~1%    {11}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, _, _, In.4, In.6, _, _
                         {7}    | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
          2461    ~1%    {9}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
                         {7}    | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
          2461    ~1%    {6}    | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, In.4

        756515  ~396%    {6} r4 = r1 UNION r2 UNION r3
        155599    ~6%    {6}    | AND NOT `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324#prev`(FIRST 6)
                         return r4
```
2025-06-11 10:04:15 +02:00
Geoffrey White
ecac0dbe69 Rust: Accept consistency check failures. 2025-06-11 08:52:52 +01:00
Tom Hvitved
f9915e66a7 Rust: Fix bad join in satisfiesConcreteTypesFromIndex
Before

```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9@061312x0 was evaluated in 367 iterations totaling 3484ms (delta sizes total: 563408).
            66609   ~0%    {3} r1 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` OUTPUT In.1, In.2, In.0
        867138261   ~1%    {4}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1_210#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Rhs.2, Lhs.0, Lhs.1
            29320   ~0%    {5}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput::potentialInstantiationOf/3#1239e45f#reorder_0_2_1#prev` ON FIRST 2 OUTPUT Rhs.2, Lhs.3, Lhs.0, Lhs.2, Lhs.1
                           {5}    | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
            29320   ~1%    {4}    | SCAN OUTPUT In.4, In.3, In.2, In.0

            29320   ~0%    {5} r2 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Rhs.2, _
                           {4}    | REWRITE WITH Tmp.4 := 0, TEST InOut.3 != Tmp.4 KEEPING 4
            29320   ~0%    {5}    | SCAN OUTPUT In.0, In.2, In.1, _, In.3
            29320   ~0%    {5}    | REWRITE WITH Tmp.3 := 1, Out.3 := (InOut.4 - Tmp.3)
            29296   ~1%    {4}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.4

            29320   ~0%    {6} r3 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.1, Lhs.0, Lhs.3, Rhs.2, _
                           {5}    | REWRITE WITH Tmp.5 := 0, TEST InOut.4 = Tmp.5 KEEPING 5
                0   ~0%    {5}    | SCAN OUTPUT In.2, _, In.1, In.0, In.3
                0   ~0%    {5}    | REWRITE WITH Out.1 := 0
                0   ~0%    {4}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 3 OUTPUT Lhs.3, Lhs.4, Lhs.0, _
                0   ~0%    {4}    | REWRITE WITH Out.3 := 0

           563353   ~1%    {4} r4 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev_delta` OUTPUT In.0, In.2, In.1, In.3
           563353   ~1%    {6}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput::potentialInstantiationOf/3#1239e45f#reorder_0_2_1#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.1, _, Lhs.3, _
                           {4}    | REWRITE WITH Tmp.3 := 1, Out.3 := (Tmp.3 + In.4), Tmp.5 := 0, TEST Out.3 != Tmp.5 KEEPING 4
           563353   ~0%    {4}    | SCAN OUTPUT In.2, In.3, In.0, In.1

           258647   ~1%    {5} r5 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 2 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.1, Rhs.2
           102998   ~1%    {6}    | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.4, Lhs.1, Lhs.0, Lhs.3
            52485   ~1%    {6}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5

           258647   ~0%    {5} r6 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 2 OUTPUT Lhs.0, Rhs.2, Lhs.2, Lhs.3, Lhs.1
           259340   ~1%    {6}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.1, Rhs.2, Lhs.3, Lhs.0, Lhs.4
            16033   ~0%    {6}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.4, Lhs.5, Lhs.1
                           {6}    | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
            15992   ~1%    {6}    | SCAN OUTPUT In.3, In.1, In.5, In.2, In.0, In.4

            68477   ~1%    {6} r7 = r5 UNION r6
            68477   ~0%    {4}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.3, Lhs.4, Lhs.0, Lhs.5

           465635   ~0%    {3} r8 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput::potentialInstantiationOf/3#1239e45f#reorder_0_2_1#prev_delta` OUTPUT In.1, In.0, In.2

           465635   ~0%    {5} r9 = JOIN r8 WITH `_TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAc__#join_rhs` ON FIRST 1 OUTPUT Lhs.0, _, Rhs.2, Lhs.1, Lhs.2
           465635   ~1%    {5}    | REWRITE WITH Out.1 := 0

           465635   ~1%    {5} r10 = JOIN r9 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 3 OUTPUT Lhs.4, Lhs.0, _, Lhs.2, Lhs.3
           465635   ~1%    {5}    | REWRITE WITH Out.2 := 0

           275069   ~0%    {5} r11 = JOIN r8 WITH `_TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAc__#join_rhs#1` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.0, Rhs.1, Rhs.2
                0   ~0%    {7}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 3 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.0, Lhs.1, Rhs.3, _
                0   ~0%    {7}    | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.1 - Tmp.6), TEST Out.6 = InOut.5

                0   ~0%    {5} r12 = SCAN r11 OUTPUT In.4, In.0, In.1, In.2, In.3

           465635   ~1%    {5} r13 = r10 UNION r12
            94444   ~1%    {6}    | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.3, Lhs.2, Lhs.4, Lhs.0
                6  ~20%    {6}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5

           465635   ~0%    {5} r14 = JOIN r9 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, _, Lhs.3, Lhs.4
           465635   ~1%    {5}    | REWRITE WITH Out.2 := 0

                0   ~0%    {5} r15 = SCAN r11 OUTPUT In.0, In.2, In.1, In.3, In.4

           465635   ~1%    {5} r16 = r14 UNION r15
           465635   ~0%    {6}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1_021#join_rhs` ON FIRST 2 OUTPUT Lhs.3, Lhs.1, Rhs.2, Lhs.0, Lhs.2, Lhs.4
           465635   ~0%    {6}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.5, Lhs.2, Lhs.3, Lhs.4, Lhs.1, Lhs.0
                           {6}    | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
           465629   ~1%    {6}    | SCAN OUTPUT In.2, In.1, In.4, In.3, In.5, In.0

           465635   ~1%    {6} r17 = r13 UNION r16
           465635   ~1%    {4}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.4, Lhs.5, Lhs.0, Lhs.3

           563408   ~1%    {4} r18 = r2 UNION r3 UNION r7 UNION r17
           563408   ~1%    {4}    | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev`(FIRST 4)
                           return r18
```

After

```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9@e8671bx7 was evaluated in 376 iterations totaling 245ms (delta sizes total: 563353).
        563353   ~1%    {6} r1 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev_delta` OUTPUT In.0, In.1, In.2, _, In.3, _
        563353   ~1%    {4}    | REWRITE WITH Tmp.3 := 1, Out.3 := (Tmp.3 + In.4), Tmp.5 := 0, TEST Out.3 != Tmp.5 KEEPING 4

        259340   ~1%    {5} r2 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev` ON FIRST 4 OUTPUT Lhs.1, Rhs.5, Lhs.0, Lhs.2, Lhs.3
         52485   ~0%    {4}    | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Lhs.4

        259340   ~1%    {6} r3 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev` ON FIRST 4 OUTPUT Lhs.0, Rhs.4, Rhs.5, Lhs.1, Lhs.2, Lhs.3
         16033   ~0%    {5}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.4, Lhs.5
                        {5}    | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
         15992   ~0%    {4}    | SCAN OUTPUT In.2, In.0, In.3, In.4

        741397   ~1%    {7} r4 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _
        465635   ~1%    {6}    | REWRITE WITH Tmp.6 := 0, TEST InOut.3 = Tmp.6 KEEPING 6

        465635   ~1%    {5} r5 = SCAN r4 OUTPUT In.1, In.5, In.0, In.2, _
        465635   ~0%    {5}    | REWRITE WITH Out.4 := 0

        741397   ~1%    {7} r6 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _
        275762   ~1%    {6}    | REWRITE WITH Tmp.6 := 0, TEST InOut.3 != Tmp.6 KEEPING 6

             0   ~0%    {7} r7 = JOIN r6 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _
                        {7}    | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.3 - Tmp.6), TEST Out.6 = InOut.5
             0   ~0%    {5}    | SCAN OUTPUT In.1, In.4, In.0, In.2, In.3

        465635   ~0%    {5} r8 = r5 UNION r7
             6   ~0%    {4}    | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Lhs.4

         29310   ~0%    {5} r9 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#reorder_0_4_5_1_2_3#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Rhs.3, Rhs.4, Rhs.5

         29310   ~0%    {6} r10 = SCAN r9 OUTPUT In.0, In.1, In.2, In.3, In.4, _
                        {5}    | REWRITE WITH Tmp.5 := 0, TEST InOut.4 = Tmp.5 KEEPING 5
             0   ~0%    {5}    | SCAN OUTPUT In.2, In.1, In.0, In.3, _
             0   ~0%    {5}    | REWRITE WITH Out.4 := 0

         29310   ~0%    {6} r11 = SCAN r9 OUTPUT In.0, In.1, In.2, In.3, In.4, _
                        {5}    | REWRITE WITH Tmp.5 := 0, TEST InOut.4 != Tmp.5 KEEPING 5
         29310   ~1%    {6}    | SCAN OUTPUT In.0, In.2, In.3, _, In.1, In.4
         29310   ~1%    {6}    | REWRITE WITH Tmp.3 := 1, Out.3 := (InOut.5 - Tmp.3)
         29241   ~0%    {5}    | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 4 OUTPUT Lhs.1, Lhs.4, Lhs.0, Lhs.2, Lhs.5

         29241   ~0%    {5} r12 = r10 UNION r11
                        {5}    | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
         29241   ~1%    {4}    | SCAN OUTPUT In.2, In.0, In.3, In.4

        465635   ~0%    {6} r13 = SCAN r4 OUTPUT In.0, In.4, In.5, In.1, In.2, _
        465635   ~1%    {6}    | REWRITE WITH Out.5 := 0

             0   ~0%    {8} r14 = JOIN r6 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.3, _
                        {8}    | REWRITE WITH Tmp.7 := 1, Out.7 := (InOut.3 - Tmp.7), TEST Out.7 = InOut.6
             0   ~0%    {6}    | SCAN OUTPUT In.0, In.4, In.5, In.1, In.2, In.3

        465635   ~1%    {6} r15 = r13 UNION r14
        465635   ~0%    {5}    | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.4, Lhs.5
                        {5}    | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
        465629   ~1%    {4}    | SCAN OUTPUT In.2, In.0, In.3, In.4

        563353   ~1%    {4} r16 = r2 UNION r3 UNION r8 UNION r12 UNION r15
        563353   ~1%    {4}    | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev`(FIRST 4)
                        return r16
```
2025-06-11 09:15:17 +02:00
Tom Hvitved
bc60d033e5 Rust: Fix bad join in inferAccessType
Before
```
Pipeline standard for TypeInference::CallExprBaseMatching::inferAccessType/3#be4695a4@202c46xq was evaluated in 600 iterations totaling 2282ms (delta sizes total: 5827084).
        120407742    ~1%    {4} r1 = JOIN `TypeInference::CallExprBaseMatchingInput::Access.getTarget/0#dispred#29d66fd1#prev_delta` WITH `TypeInference::CallExprBaseMatchingInput::accessDeclarationPositionMatch/2#6c58c89d` CARTESIAN PRODUCT OUTPUT Lhs.1, Rhs.1, Rhs.0, Lhs.0
          6495868  ~109%    {4}    | JOIN WITH `TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f` ON FIRST 2 OUTPUT Rhs.3, Lhs.2, Lhs.3, Rhs.2
                            {4}    | AND NOT Type::TypeParameter#f85657da(FIRST 1)
          3049994   ~10%    {4}    | SCAN OUTPUT In.2, In.1, In.3, In.0

             7891    ~0%    {5} r2 = SCAN `TypeInference::CallExprBaseMatching::explicitTypeMatch/5#98ce2c39#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
             4445    ~3%    {9}    | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
                            {5}    | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
             4445    ~3%    {7}    | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
                            {5}    | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
             4445    ~5%    {4}    | SCAN OUTPUT In.1, In.0, In.3, In.2

          3553075    ~1%    {5} r3 = SCAN `TypeInference::CallExprBaseMatching::directTypeMatch/5#319f8680#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
          6860451   ~16%    {9}    | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
                            {5}    | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
          6860451   ~19%    {7}    | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
                            {5}    | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
          6211129   ~20%    {4}    | SCAN OUTPUT In.1, In.0, In.3, In.2

           115218    ~1%    {5} r4 = SCAN `TypeInference::CallExprBaseMatching::typeConstraintBaseTypeMatch/5#ebeb4216#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
           181668    ~2%    {9}    | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
                            {5}    | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
           181668    ~0%    {7}    | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
                            {5}    | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
           181668    ~0%    {4}    | SCAN OUTPUT In.1, In.0, In.3, In.2

          9447236   ~16%    {4} r5 = r1 UNION r2 UNION r3 UNION r4
          5902300    ~4%    {4}    | AND NOT `TypeInference::CallExprBaseMatching::inferAccessType/3#be4695a4#prev`(FIRST 4)
                            return r5
```

Afer
```
Pipeline standard for TypeInference::CallExprBaseMatching::inferAccessType/3#be4695a4@061316x0 was evaluated in 600 iterations totaling 1727ms (delta sizes total: 5918371).
         1323162    ~0%    {2} r1 = SCAN `TypeInference::CallExprBaseMatchingInput::Access.getTarget/0#dispred#29d66fd1#prev_delta` OUTPUT In.1, In.0
         5316637  ~152%    {4}    | JOIN WITH `_Type::TypeParameter#f85657da_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/__#join_rhs#1` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2, Rhs.3

            7891    ~0%    {5} r2 = SCAN `TypeInference::CallExprBaseMatching::explicitTypeMatch/5#98ce2c39#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
            4445    ~3%    {9}    | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
                           {5}    | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
            4445    ~3%    {7}    | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
                           {5}    | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
            4445    ~5%    {4}    | SCAN OUTPUT In.1, In.0, In.3, In.2

         3553075    ~1%    {5} r3 = SCAN `TypeInference::CallExprBaseMatching::directTypeMatch/5#319f8680#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
         6860451   ~16%    {9}    | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
                           {5}    | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
         6860451   ~19%    {7}    | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
                           {5}    | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
         6211129   ~20%    {4}    | SCAN OUTPUT In.1, In.0, In.3, In.2

          115218    ~1%    {5} r4 = SCAN `TypeInference::CallExprBaseMatching::typeConstraintBaseTypeMatch/5#ebeb4216#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
          181668    ~2%    {9}    | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
                           {5}    | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
          181668    ~0%    {7}    | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
                           {5}    | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
          181668    ~0%    {4}    | SCAN OUTPUT In.1, In.0, In.3, In.2

        11713879   ~62%    {4} r5 = r1 UNION r2 UNION r3 UNION r4
         6210333   ~10%    {4}    | AND NOT `TypeInference::CallExprBaseMatching::inferAccessType/3#be4695a4#prev`(FIRST 4)
                           return r5
```
2025-06-11 09:15:16 +02:00
Tom Hvitved
8c956647de Rust: Fix bad join in fileImport
Before
```
Evaluated relational algebra for predicate PathResolution::fileImport/2#d9e57816@c790f609 with tuple counts:
           241   ~0%    {3} r1 = JOIN `_Locatable::Locatable.getFile/0#dispred#f7e24934_PathResolution::isSourceFile/1#803de032#shared` WITH `FileSystem::Folder::Append<PathResolution::shouldAppend>::append/2#beb8f79a_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Lhs.1
           291   ~0%    {2}    | JOIN WITH `PathResolution::pathAttrImport/3#88463ffa_021#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2

         14978   ~8%    {2} r2 = SCAN `PathResolution::modImport0/3#03cccf2a` OUTPUT In.0, In.1
         14978   ~8%    {2}    | STREAM DEDUP

         14392   ~9%    {2} r3 = r2 AND NOT `PathResolution::modImportNested/3#991244df_0#antijoin_rhs`(FIRST 1)
         14392   ~0%    {3}    | JOIN WITH `PathResolution::modImport0/3#03cccf2a` ON FIRST 2 OUTPUT Lhs.1, Rhs.2, Lhs.0
         14355   ~0%    {4}    | JOIN WITH `PathResolution::fileModule/3#d6c6ceef#fbf_120#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.0, Lhs.1, Lhs.2

         14978   ~0%    {2} r4 = JOIN r2 WITH `PathResolution::modImport0/3#03cccf2a` ON FIRST 2 OUTPUT Lhs.1, Lhs.0
        329862   ~0%    {5}    | JOIN WITH `PathResolution::fileModule/3#d6c6ceef#fbf_102#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Lhs.1, Rhs.2, Lhs.0, Rhs.1
           577   ~3%    {4}    | JOIN WITH `PathResolution::modImportNestedLookup/3#6cc4b913#ffb` ON FIRST 3 OUTPUT Lhs.4, Lhs.3, Lhs.2, Lhs.0

         14932   ~0%    {4} r5 = r3 UNION r4
         14932   ~0%    {2}    | JOIN WITH `PathResolution::fileModule/3#d6c6ceef#fbf` ON FIRST 3 OUTPUT Lhs.0, Lhs.3
         14932   ~0%    {2}    | JOIN WITH `PathResolution::isSourceFile/1#803de032` ON FIRST 1 OUTPUT Lhs.1, Lhs.0

         15223   ~0%    {2} r6 = r1 UNION r5
                        return r6
```

Afer
```
Evaluated relational algebra for predicate PathResolution::fileImport/2#d9e57816@007bd81i with tuple counts:
          241   ~0%    {3} r1 = JOIN `_Locatable::Locatable.getFile/0#dispred#f7e24934_PathResolution::isSourceFile/1#803de032#shared` WITH `FileSystem::Folder::Append<PathResolution::shouldAppend>::append/2#beb8f79a_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Lhs.1
          291   ~0%    {2}    | JOIN WITH `PathResolution::pathAttrImport/3#88463ffa_021#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2

        14978   ~8%    {2} r2 = SCAN `PathResolution::modImport0/3#03cccf2a` OUTPUT In.0, In.1
        14978   ~8%    {2}    | STREAM DEDUP

        14392   ~9%    {2} r3 = r2 AND NOT `PathResolution::modImportNested/3#991244df_0#antijoin_rhs`(FIRST 1)
        14392   ~0%    {3}    | JOIN WITH `PathResolution::modImport0/3#03cccf2a` ON FIRST 2 OUTPUT Lhs.1, Rhs.2, Lhs.0

        14978   ~9%    {3} r4 = JOIN r2 WITH `PathResolution::modImport0/3#03cccf2a` ON FIRST 2 OUTPUT Lhs.0, Lhs.0, Lhs.1
          577   ~0%    {3}    | JOIN WITH `PathResolution::modImportNestedLookup/3#6cc4b913#ffb` ON FIRST 2 OUTPUT Lhs.2, Rhs.2, Lhs.0

        14969   ~1%    {3} r5 = r3 UNION r4
        14932   ~0%    {2}    | JOIN WITH `PathResolution::fileModule/3#d6c6ceef_120#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2
        14932   ~0%    {2}    | JOIN WITH `PathResolution::isSourceFile/1#803de032` ON FIRST 1 OUTPUT Lhs.1, Lhs.0

        15223   ~0%    {2} r6 = r1 UNION r5
                       return r6
```
2025-06-11 09:15:14 +02:00
Tom Hvitved
63aac1babb Rust: Fix bad join in getCanonicalPath
Before
```
Pipeline standard for PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6@5132b1w8 was evaluated in 107 iterations totaling 1217ms (delta sizes total: 870557).
           568160   ~1%    {2} r1 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::AssocItemNode.hasCanonicalPath/1#dispred#120fa1ad_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
           564597   ~1%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

            68670   ~1%    {2} r2 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::VariantItemNode.hasCanonicalPath/1#dispred#12012145_project#PathResolution::ItemNod__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
            68670   ~0%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#5` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

            49047   ~1%    {2} r3 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::StructItemNode.hasCanonicalPath/1#dispred#f482e99c_project#PathResolution::ItemNode__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
            49047   ~2%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#2` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

              229   ~0%    {2} r4 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::UnionItemNode.hasCanonicalPath/1#dispred#f67c4b73_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
              229   ~0%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#4` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

            12207   ~0%    {2} r5 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::EnumItemNode.hasCanonicalPath/1#dispred#03ce35b1_project#PathResolution::ItemNode.g__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
            12207   ~0%    {3}    | JOIN WITH `__PathResolution::EnumItemNode.getName/0#dispred#f21ce0ed_PathResolution::ItemNode.getCanonicalPathP__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

            26698   ~2%    {2} r6 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::ModuleItemNode.hasCanonicalPath/1#dispred#2fee2540_project#PathResolution::ItemNode__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
            26698   ~0%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#1` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

             6315   ~1%    {2} r7 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::TraitItemNode.hasCanonicalPath/1#dispred#824f98e3_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
             6315   ~1%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#3` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

           112374   ~0%    {3} r8 = JOIN `PathResolution::ImplItemNode.getCanonicalPathTraitPart/1#dispred#009a7fd0#prev_delta` WITH `_PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6_PathResolution::ImplItemNode.hasCanoni__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, _
           112374   ~3%    {3}    | REWRITE WITH Out.2 := 3

           872046   ~1%    {2} r9 = SCAN `PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6#prev_delta` OUTPUT In.1, In.0
        777662505   ~2%    {3}    | JOIN WITH `PathResolution::ImplItemNode.hasCanonicalPath/1#dispred#4e7c51c6_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
           150127   ~1%    {3}    | JOIN WITH `PathResolution::ImplItemNode.resolveSelfTy/0#dispred#cf157d04` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, _
           150127   ~0%    {3}    | REWRITE WITH Out.2 := 1

           262501   ~1%    {3} r10 = r8 UNION r9

           230996   ~1%    {5} r11 = JOIN r10 WITH `PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6` ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, _, _
           230996   ~0%    {5}    | REWRITE WITH Out.3 := 4, Out.4 := 0

                           {3} r12 = r10 AND NOT `PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6_0#antijoin_rhs`(FIRST 1)
            31487   ~0%    {5}    | SCAN OUTPUT In.0, In.1, In.2, _, _
            31487   ~1%    {5}    | REWRITE WITH Out.3 := 2, Out.4 := 0

           262483   ~0%    {5} r13 = r11 UNION r12
           262483   ~0%    {5}    | JOIN WITH PRIMITIVE range#bbb ON Lhs.4,Lhs.3,Lhs.2
           262483   ~0%    {3}    | SCAN OUTPUT In.3, In.0, In.1
           142807   ~1%    {3}    | JOIN WITH `__PathResolution::ImplItemNode.getCanonicalPathTraitPart/1#dispred#009a7fd0#prev_PathResolution::Imp__#join_rhs` ON FIRST 3 OUTPUT Lhs.1, Lhs.2, Rhs.3

           870570   ~1%    {3} r14 = r1 UNION r2 UNION r3 UNION r4 UNION r5 UNION r6 UNION r7 UNION r13
           870566   ~1%    {3}    | AND NOT `PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6#prev`(FIRST 3)
                           return r14
```

After
```
Pipeline standard for PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6@90aba2wd was evaluated in 100 iterations totaling 28ms (delta sizes total: 870531).
        568160   ~0%    {2} r1 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::AssocItemNode.hasCanonicalPath/1#dispred#120fa1ad_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
        564597   ~1%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

         68670   ~0%    {2} r2 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::VariantItemNode.hasCanonicalPath/1#dispred#12012145_project#PathResolution::ItemNod__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
         68670   ~1%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#5` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

         49047   ~0%    {2} r3 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::StructItemNode.hasCanonicalPath/1#dispred#f482e99c_project#PathResolution::ItemNode__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
         49047   ~1%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#2` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

           229   ~0%    {2} r4 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::UnionItemNode.hasCanonicalPath/1#dispred#f67c4b73_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
           229   ~0%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#4` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

         12207   ~1%    {2} r5 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::EnumItemNode.hasCanonicalPath/1#dispred#03ce35b1_project#PathResolution::ItemNode.g__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
         12207   ~0%    {3}    | JOIN WITH `__PathResolution::EnumItemNode.getName/0#dispred#f21ce0ed_PathResolution::ItemNode.getCanonicalPathP__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

         26698   ~0%    {2} r6 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::ModuleItemNode.hasCanonicalPath/1#dispred#2fee2540_project#PathResolution::ItemNode__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
         26698   ~4%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#1` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

          6315   ~1%    {2} r7 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::TraitItemNode.hasCanonicalPath/1#dispred#824f98e3_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
          6315   ~2%    {3}    | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#3` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2

        150127   ~0%    {3} r8 = JOIN `PathResolution::ImplItemNode.getSelfCanonicalPath/1#dispred#8ed81fbe#prev_delta` WITH `PathResolution::ImplItemNode.hasCanonicalPath/1#dispred#4e7c51c6` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, _
        150127   ~0%    {3}    | REWRITE WITH Out.2 := 1

        112374   ~1%    {3} r9 = JOIN `PathResolution::ImplItemNode.getCanonicalPathTraitPart/1#dispred#009a7fd0#prev_delta` WITH `_PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6_PathResolution::ImplItemNode.hasCanoni__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, _
        112374   ~0%    {3}    | REWRITE WITH Out.2 := 3

        262501   ~0%    {3} r10 = r8 UNION r9

        230996   ~1%    {5} r11 = JOIN r10 WITH `PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6` ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, _, _
        230996   ~1%    {5}    | REWRITE WITH Out.3 := 4, Out.4 := 0

                        {3} r12 = r10 AND NOT `PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6_0#antijoin_rhs`(FIRST 1)
         31487   ~0%    {5}    | SCAN OUTPUT In.0, In.1, In.2, _, _
         31487   ~0%    {5}    | REWRITE WITH Out.3 := 2, Out.4 := 0

        262483   ~1%    {5} r13 = r11 UNION r12
        262483   ~1%    {5}    | JOIN WITH PRIMITIVE range#bbb ON Lhs.4,Lhs.3,Lhs.2
        262483   ~0%    {3}    | SCAN OUTPUT In.3, In.0, In.1
        142772   ~0%    {3}    | JOIN WITH `__PathResolution::ImplItemNode.getCanonicalPathTraitPart/1#dispred#009a7fd0#prev_PathResolution::Imp__#join_rhs` ON FIRST 3 OUTPUT Lhs.1, Lhs.2, Rhs.3

        870535   ~1%    {3} r14 = r1 UNION r2 UNION r3 UNION r4 UNION r5 UNION r6 UNION r7 UNION r13
        870531   ~1%    {3}    | AND NOT `PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6#prev`(FIRST 3)
                        return r14
```
2025-06-11 09:15:13 +02:00
Simon Friis Vindum
01701de4a7 Rust: Implement type inference for ref expression as type equality 2025-06-11 09:09:22 +02:00
Tom Hvitved
3fed7f5397 Merge pull request #19714 from hvitved/rust/fix-bad-join
Rust: Fix bad join
2025-06-11 09:08:52 +02:00
Simon Friis Vindum
8f5d9d7702 Rust: Add type inference tests for borrowing 2025-06-11 08:40:15 +02:00
Ana Scolari
510bbac0e4 Create 2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md 2025-06-10 16:17:32 -07:00
Ana Scolari
857b51be58 Update ExecUnescaped.ql - causing FPs with hard coded strings
This query is generating False positives with hard coded strings declared within the function - issue reported by customer. We had a discussion on code_scanning channel on 6/5/25 and the team agreed upon reducing its precision to Medium.
2025-06-10 16:06:22 -07:00
Aditya Sharad
d659d40d58 Merge pull request #19701 from adityasharad/actions/bash-parsing-ranking-performance
Actions: Improve Bash parsing performance on command and string interpolations
2025-06-11 00:59:19 +05:30
REDMOND\brodes
7d479940e5 Crypto: Nop out signature operations for now until complete. Minor model update. Remove setting RSA bits as an RSA algorithm. Fix bug in hash algorithm. Add missing PKey encryption to cipher ops. Consolidate ctx initializers. Add unit tests, and alter unit test directory structure to allow for application to other APIs. Update expected files for unit tests (not all updated yet, a work in progress). 2025-06-10 13:37:17 -04:00
Tom Hvitved
64ab7c78c8 Merge pull request #19717 from hvitved/rust/use-get-arg-param
Rust: Use `get(An){Arg,Param}` helper predicates
2025-06-10 18:48:51 +02:00
Geoffrey White
e64d083fc1 Rust: Lets also output the total number of nodes to make understanding this easier. 2025-06-10 17:37:42 +01:00
Geoffrey White
50bf246add Rust: Adjust the taint reach metric for better stability. 2025-06-10 17:08:15 +01:00
Asger F
72cc439125 JS: Normalize a few more extensions 2025-06-10 17:36:56 +02:00
Jeroen Ketema
1bd6446f7e Merge pull request #19715 from jketema/neon-ir-test
C++: Add basic Aarch64 Neon IR test
2025-06-10 16:57:46 +02:00
Geoffrey White
652d32d4ff Merge pull request #19626 from geoffw0/futures
Rust: Model futures-io, rustls, futures-rustls
2025-06-10 15:23:43 +01:00
Michael Nebel
dc81f5a6b2 Merge pull request #19713 from michaelnebel/csharp/freezequalityinsecurityandquality
C#: Freeze quality queries in the security-and-quality suite.
2025-06-10 16:19:45 +02:00
Asger F
18f9133715 JS: Rename and clarify comment for trackFunctionType 2025-06-10 16:14:46 +02:00
Asger F
a6488cbad9 Update javascript/ql/lib/semmle/javascript/internal/NameResolution.qll
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com>
2025-06-10 16:06:42 +02:00
Jeroen Ketema
a4be27659b C++: Minor test case reformatting 2025-06-10 15:55:18 +02:00
Michael Nebel
99dc923f1f C#: Add cs/gethashcode-is-not-defined to the Code Quality suite. 2025-06-10 15:45:41 +02:00
Tom Hvitved
e41b4f4022 Rust: Use get(An){Arg,Param} helper predicates 2025-06-10 15:45:34 +02:00
Jeroen Ketema
7d1b5ce584 C++: Add basic Aarch64 Neon test 2025-06-10 15:34:06 +02:00
Paolo Tranquilli
8f0f2006a8 Merge pull request #19708 from github/redsun82/rust-getArg-getParam
Rust: add `Callable::getParam` and `CallExprBase::getArg` shortcuts
2025-06-10 15:31:05 +02:00
Tom Hvitved
209cfb78a3 Rust: Fix bad join
```
[2025-06-10 15:21:37] (83s) Tuple counts for TypeMention::PathTypeReprMention.aliasResolveTypeAt/1#dispred#ae16f47b#fbf#cpe#13/2@i5#5a5451wi after 57.7s:
                      205999      ~1028%     {3} r1 = JOIN `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_1_0_2#prev_delta` WITH `_TypeAlias::Generated::TypeAlias.getTypeRepr/0#dispred#5fd7e521_TypeMention::PathTypeReprMention#a35__#join_rhs#1` ON FIRST 2 OUTPUT Rhs.2, Lhs.2 'result', Rhs.3 'this'
                                             {3}    | AND NOT `project#TypeMention::pathGetTypeParameter/2#fd301eed#2`(FIRST 2)
                      204000      ~982%      {2}    | SCAN OUTPUT In.2 'this', In.1 'result'

                      5499        ~448%      {7} r2 = JOIN `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1#prev_delta` WITH `_GenericArgList::GenericArgList.getTypeArg/1#dispred#1c780027_PathSegment::Generated::PathSegment.ge__#join_rhs#1` ON FIRST 1 OUTPUT Rhs.1, Rhs.2 'this', Rhs.3, Lhs.1 'result', _, Lhs.2, _
                                             {5}    | REWRITE WITH Tmp.4 := "", Tmp.6 := "", Out.4 := InverseAppend(Tmp.4,In.5,Tmp.6) KEEPING 5
                      2500        ~398%      {5}    | SCAN OUTPUT In.0, In.2, In.4, In.1 'this', In.3 'result'
                      0           ~0%        {2}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1#prev` ON FIRST 3 OUTPUT Lhs.3 'this', Lhs.4 'result'

                      9000        ~489%      {7} r3 = JOIN `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1#prev_delta` WITH `_PathSegment::Generated::PathSegment.getGenericArgList/0#dispred#e072653b__Path::Generated::Path.get__#join_rhs#1` ON FIRST 1 OUTPUT Rhs.1, Rhs.2 'this', Rhs.3, Lhs.1, _, Lhs.2, _
                                             {5}    | REWRITE WITH Tmp.4 := "", Tmp.6 := "", Out.4 := InverseAppend(In.5,Tmp.4,Tmp.6) KEEPING 5
                      5000        ~411%      {5}    | SCAN OUTPUT In.4, In.0, In.1 'this', In.2, In.3
                      10461919500 ~610%      {6}    | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_1_0_2#prev` ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.1, Lhs.2 'this', Lhs.4, Rhs.2 'result'
                      500         ~0%        {5}    | JOIN WITH `GenericArgList::GenericArgList.getTypeArg/1#dispred#1c780027_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Rhs.2, Lhs.4, Lhs.3 'this', Lhs.5 'result'
                      0           ~0%        {2}    | JOIN WITH `TypeMention::pathGetTypeParameter/2#fd301eed` ON FIRST 3 OUTPUT Lhs.3 'this', Lhs.4 'result'

                      204000      ~982%      {2} r4 = r1 UNION r2 UNION r3
                      203964      ~982%      {2}    | AND NOT `TypeMention::PathTypeReprMention.aliasResolveTypeAt/1#dispred#ae16f47b#fbf#cpe#13#prev`(FIRST 2)
                                             return r4
```
2025-06-10 15:25:05 +02:00
Napalys Klicius
51b83dbce5 Merge pull request #19579 from Napalys/js/dom_property_access
JS: Improve `useless-expression` query to avoid duplicate alerts on compound expressions
2025-06-10 15:17:13 +02:00
Geoffrey White
fd2154d389 Merge branch 'main' into futures 2025-06-10 14:16:06 +01:00
Taus
e3d9d92f25 JavaScript: Fix duplicate comment 2025-06-10 12:59:03 +00:00
Taus
f08c2fa387 JavaScript: Move tsconfig files into extractor.tsconfig package
Also make the indentation in `CompilerOptions.java` more consistent.
2025-06-10 12:58:48 +00:00
Tom Hvitved
791369dd0e Merge pull request #19584 from hvitved/rust/type-inference-await
Rust: Type inference for `.await` expressions
2025-06-10 14:56:28 +02:00
Paolo Tranquilli
4ac4e44b50 Rust: accept test changes 2025-06-10 14:45:57 +02:00
Geoffrey White
918fa3684f Merge branch 'main' into futures 2025-06-10 13:24:09 +01:00
Kasper Svendsen
23e789b421 QL: Improve toString for overlay annotations 2025-06-10 14:18:05 +02:00
Paolo Tranquilli
0d036992e0 Merge branch 'main' into redsun82/mad 2025-06-10 13:39:10 +02:00
Tom Hvitved
3d395dde47 Address review comments 2025-06-10 13:38:31 +02:00
Napalys Klicius
d968dd0fa1 Removed <strong> usage and updated r?e[m|x] example 2025-06-10 13:34:24 +02:00
Michael Nebel
a15b9a8eae C#: Freeze quality queries in the security-and-quality suite. 2025-06-10 13:34:03 +02:00
Napalys Klicius
65b1275a19 Update javascript/ql/src/RegExp/DuplicateCharacterInCharacterClass.qhelp
Co-authored-by: Asger F <asgerf@github.com>
2025-06-10 13:26:08 +02:00
Napalys Klicius
e46581163a Update javascript/ql/lib/Expressions/ExprHasNoEffect.qll
Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com>
2025-06-10 13:23:31 +02:00
Napalys Klicius
496d8d44eb Update javascript/ql/lib/Expressions/ExprHasNoEffect.qll
Co-authored-by: Asger F <asgerf@github.com>
2025-06-10 13:19:48 +02:00
Napalys Klicius
e6f071ce46 Update javascript/ql/lib/Expressions/ExprHasNoEffect.qll
Co-authored-by: Asger F <asgerf@github.com>
2025-06-10 13:18:48 +02:00
Paolo Tranquilli
3562c48068 Merge branch 'main' into redsun82/rust-getArg-getParam 2025-06-10 13:15:37 +02:00
Paolo Tranquilli
3af10d2c6c Merge pull request #19710 from github/redsun82/rust-fix-crate-graph-test
Rust: fix crate graph test
2025-06-10 13:15:22 +02:00
Napalys Klicius
a0db250dc3 Update javascript/ql/test/query-tests/RegExp/DuplicateCharacterInCharacterClass/tst.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-10 12:50:07 +02:00
Tom Hvitved
c6efc05de1 Rust: Reimplement type inference for impl Traits and await expressions 2025-06-10 12:39:20 +02:00
Tom Hvitved
f2832712bc Rust: Add more type inference tests 2025-06-10 12:38:40 +02:00
Tom Hvitved
821f2fd681 Rust: Type inference for .await expressions 2025-06-10 12:38:39 +02:00
Tom Hvitved
e6109cfcf1 Rust: Add type inference tests for impl Trait 2025-06-10 12:38:38 +02:00
Tom Hvitved
c32e05cc8a Rust: Add async type inference tests 2025-06-10 12:38:37 +02:00
Tom Hvitved
79a8942b0f Merge pull request #19614 from hvitved/rust/path-resolution-extern-crate
Rust: Path resolution for `extern crate`s
2025-06-10 12:37:46 +02:00
Idriss Riouak
f8b192ce3d Merge pull request #19688 from jketema/mfp8
C++: Support the `__mfp8` floating point type
2025-06-10 12:37:05 +02:00
Paolo Tranquilli
2a160e0687 CI: rename codegen workflow to be more generic
Also remove the python setup stage as it shouldn't be necessary any more
seen that bazel uses a specific bundled one.
2025-06-10 12:33:30 +02:00
Paolo Tranquilli
52760b1e28 CI: use black instead of autopep8 2025-06-10 12:30:33 +02:00
Paolo Tranquilli
14d48e9d58 Add black pre-commit hook
This switched `codegen` from the `autopep8` formatting to the `black`
one, and applies it to `bulk_mad_generator.py` as well. We can enroll
more python scripts to it in the future.
2025-06-10 12:25:39 +02:00
Paolo Tranquilli
ca99add7d6 MaD generator: address review 2025-06-10 12:14:39 +02:00
Paolo Tranquilli
ecc35e5a07 MaD generator: run formatter 2025-06-10 12:11:00 +02:00
Napalys Klicius
d68f5ebddb Added quality tag to js/regex/duplicate-in-character-class 2025-06-10 12:10:33 +02:00
Napalys Klicius
417ca1aceb Enchanced js/regex/duplicate-in-character-class's qhelp 2025-06-10 12:10:25 +02:00
Paolo Tranquilli
6f25d7e35e Rust: fix crate graph test 2025-06-10 11:57:20 +02:00
Tamás Vajk
7a632e8a47 Merge pull request #19650 from tamasvajk/quality/string-concat-loop
Add `cs/string-concatenation-in-loop` to the quality suite
2025-06-10 11:49:24 +02:00
Napalys Klicius
42a880bf58 Improved test coverage for js/regex/duplicate-in-character-class 2025-06-10 11:07:22 +02:00
Napalys Klicius
c97da2eda5 Exclude expressions that are part of a conditional expression 2025-06-10 10:56:11 +02:00
Paolo Tranquilli
bcfc009228 Merge branch 'main' into redsun82/mad 2025-06-10 10:53:52 +02:00
Paolo Tranquilli
e6056f9dfc Update rust/ql/test/query-tests/security/CWE-770/main.rs
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-06-10 10:52:18 +02:00
Paolo Tranquilli
a405a12e93 Rust: add Callable::getParam and CallExprBase::getArg shortcuts 2025-06-10 09:51:26 +02:00
Paolo Tranquilli
902a421c23 Rust: fix docs with getArgList and getParamList 2025-06-10 09:47:15 +02:00
Paolo Tranquilli
02c11b10af Revert "Rust: rerun codegen"
This reverts commit f647b33166.
2025-06-10 09:43:35 +02:00
Paolo Tranquilli
b6aa6921b3 Revert "Rust: accept test changes"
This reverts commit 9c2fea914e.
2025-06-10 09:43:02 +02:00
Paolo Tranquilli
3fe6ba692a Revert "Rust: add Callable::getParam and CallExprBase::getArg shortcuts"
This reverts commit c70decbe86.
2025-06-10 09:42:28 +02:00
Napalys Klicius
b7f7092ab3 Added test cases for better test coverage 2025-06-10 09:37:40 +02:00
Paolo Tranquilli
48721dcde0 Merge branch 'main' into redsun82/rust-doc 2025-06-10 09:31:18 +02:00
Paolo Tranquilli
f647b33166 Rust: rerun codegen 2025-06-10 09:31:12 +02:00
Paolo Tranquilli
9c2fea914e Rust: accept test changes 2025-06-10 09:30:43 +02:00
Jeroen Ketema
d70282c322 C++: Update stats file 2025-06-09 23:42:52 +02:00
Jeroen Ketema
bff4213c62 C++: Add upgrade and downgrade scripts 2025-06-09 23:42:11 +02:00
Jeroen Ketema
f910906965 C++: Update expected test results 2025-06-09 23:42:09 +02:00
Jeroen Ketema
691e462501 C++: Support the __mfp8 floating point type 2025-06-09 23:42:07 +02:00
REDMOND\brodes
729467ccd6 Crypto: Separate out CTX parameter initialization, and add additional initializer subclasses. 2025-06-09 16:49:54 -04:00
Chuan-kai Lin
c1c0a705b9 Merge pull request #19704 from github/post-release-prep/codeql-cli-2.22.0
Post-release preparation for codeql-cli-2.22.0
2025-06-09 12:54:57 -07:00
REDMOND\brodes
4f2045bbdd Crypto: CtxFlow now uses an interface for additional steps. Add CTX step to handle paramgen. Remove redundant test. Overhaul of EVP update/initializer/final mechanics. Misc. updates for new API and refactoring EVPKeyGenOperation. Clean up of keygen_operaitons.ql. 2025-06-09 15:07:00 -04:00
github-actions[bot]
21463a9653 Post-release preparation for codeql-cli-2.22.0 2025-06-09 18:50:20 +00:00
Chuan-kai Lin
4d681f05bd Merge pull request #19703 from github/release-prep/2.22.0
Release preparation for version 2.22.0
2025-06-09 11:19:39 -07:00
github-actions[bot]
88ba02edf8 Release preparation for version 2.22.0 2025-06-09 18:14:51 +00:00
Geoffrey White
a9d5d8b2b3 Rust: Accept the new alert message in tests. 2025-06-09 19:14:14 +01:00
Geoffrey White
74ce4e8105 Update rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-09 19:10:39 +01:00
Geoffrey White
e7945e16cb Rust: Accept the query in suite listings. 2025-06-09 19:06:34 +01:00
Geoffrey White
9b0ee8fb9f Rust: Add security-severity tag and reduce precision to medium for now.
precis
2025-06-09 17:58:44 +01:00
Geoffrey White
b3330b5636 Rust: Allow parameter accesses as sources. 2025-06-09 17:58:42 +01:00
Geoffrey White
d3d0a533b5 Rust: Add test showing yet another spurious result. 2025-06-09 17:58:41 +01:00
Geoffrey White
858eec390d Rust: Exclude results where the source is a reference. 2025-06-09 17:58:40 +01:00
Geoffrey White
7bae451af3 Rust: Exclude results in macro invocations. 2025-06-09 17:58:38 +01:00
Geoffrey White
26f85585fd Rust: Add qhelp, examples, and examples as tests. 2025-06-09 17:58:37 +01:00
Aditya Sharad
e48a7da827 Actions: Add change note for Bash parsing fixes 2025-06-09 09:56:41 -07:00
Aditya Sharad
98186e3f0e Merge pull request #19700 from adityasharad/actions/validate-change-notes
CI: Expand list of packs/languages for change note validation
2025-06-09 22:13:30 +05:30
Aditya Sharad
2ecbecbd4b Actions: Add stress test for complex command and string interpolation
Anonymised version of a customer report that led to
performance bottlenecks in Bash parsing.
No results are expected from both query and library tests.
2025-06-09 09:29:15 -07:00
Aditya Sharad
848064e95a Actions: Order quoted strings by their ID, not text
In the Bash parser, we compute a mostly-unique ID for each
quoted string within a shell script block.
Quoted strings are then ranked and referred to individually.

Avoid a performance bottleneck by ranking quoted strings by their
ID, not by their source text.
I think this was the original intent of the code.

Ranking by their original text ends up evaluating multiple
possible orderings, which is slow on workflows that contain
multiple complex quoted strings, such as JSON payloads.
2025-06-09 09:15:45 -07:00
Aditya Sharad
fbe11cfca6 Actions: Refactor logic for identifying quoted strings
Add some doc comments and meaningful variable names.
2025-06-09 09:15:45 -07:00
Aditya Sharad
9f60335b66 CI: Expand list of packs/languages for change note validation 2025-06-09 08:48:16 -07:00
Geoffrey White
fe20fb403d Rust: More robust fix for closures. 2025-06-09 16:41:31 +01:00
Aditya Sharad
321513c89b Actions: Order command substitutions by their ID, not text
In the Bash parser, we compute a mostly-unique ID for each
command substitution within a shell script block.
Commands are then ranked and referred to individually.

Avoid a performance bottleneck by ranking commands by their
ID, not by their source text.
I think this was the original intent of the code.
Ranking by their original text ends up evaluating multiple
possible orderings, which is slow on workflows that contain
multiple complex command substitutions.
2025-06-09 08:39:58 -07:00
Aditya Sharad
39e710e805 Actions: Refactor logic for identifying command substitution
Extract helper predicates for `$(...)` command interpolation
and backtick-quoted commands.
Add some doc comments and meaningful variable names.
2025-06-09 08:37:40 -07:00
Chad Bentz
371a50e6c4 Merge branch 'main' into cwe-134 2025-06-09 11:22:40 -04:00
Jeroen Ketema
ef210b8f5e Merge pull request #19678 from jketema/swift-6.1.2
Swift: Update to Swift 6.1.2
2025-06-09 17:19:42 +02:00
Chuan-kai Lin
68d2c132b2 Merge pull request #19699 from github/cklin/rc-3.18-mergeback
Merge rc/3.18 back to main
2025-06-09 08:15:58 -07:00
Asger F
42f762a140 JS: Update test output now that 'satisfies' is a SourceNode 2025-06-09 16:22:30 +02:00
Chuan-kai Lin
631502e129 Merge branch 'main' into cklin/rc-3.18-mergeback 2025-06-09 07:19:40 -07:00
Mathew Payne
9d23677024 Merge branch 'main' into js-clientrests-axios 2025-06-09 14:18:54 +01:00
Jeroen Ketema
428b48dfe7 Merge pull request #19679 from jketema/stats
C++: Update stats file after changes to DCA source suite
2025-06-09 12:39:33 +02:00
Geoffrey White
21b4baeb42 Rust: Have the alert message cite the variable, so it's easier to understand whether the alert is correct. 2025-06-09 10:28:25 +01:00
Geoffrey White
79f8584efb Rust: Fix spurious results involving closures. 2025-06-09 10:25:48 +01:00
Geoffrey White
bf4ea02dd2 Rust: Implement the query. 2025-06-09 10:25:40 +01:00
Chad Bentz
53a6133e6f Add change-notes for csharp/java/swift 2025-06-06 12:23:59 -04:00
Paolo Tranquilli
d6d13b9164 MaD generator: use decompress terminology instead of extract 2025-06-06 17:36:05 +02:00
Chad Bentz
77e49f1f90 Merge branch 'main' into cwe-134 2025-06-06 11:16:10 -04:00
Paolo Tranquilli
f3e4f94e81 Rust: add documentation 2025-06-06 16:19:32 +02:00
Paolo Tranquilli
c70decbe86 Rust: add Callable::getParam and CallExprBase::getArg shortcuts 2025-06-06 16:18:16 +02:00
Paolo Tranquilli
779d06f47c Merge branch 'main' into redsun82/rust-doc 2025-06-06 14:25:37 +02:00
Owen Mansel-Chan
ef5e605cc4 Merge pull request #19386 from owen-mc/go/promote/html-template-escaping-bypass-xss
Go: promote `html-template-escaping-bypass-xss`
2025-06-06 12:36:27 +01:00
Jeroen Ketema
1f7a6ba538 Swift: Update LFS 2025-06-06 11:18:21 +02:00
Owen Mansel-Chan
5bfed770ef Merge pull request #19683 from github/dependabot/go_modules/go/extractor/extractor-dependencies-e08f8ad452
Bump the extractor-dependencies group in /go/extractor with 2 updates
2025-06-06 09:56:09 +01:00
Jeroen Ketema
86f425d2fc C++: Fix join-order problem after stats file update
Before the fix:
```
Pipeline standard for AVRule79::exprReleases/3#e849cdd3@f2995ebb was evaluated in 5 iterations totaling 168745ms (delta sizes total: 12583).
              85855    ~0%    {2} r1 = SCAN `AVRule79::exprReleases/3#e849cdd3#prev_delta` OUTPUT In.1, In.2

              85855    ~0%    {2} r2 = JOIN r1 WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             115767    ~6%    {2}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             333369   ~18%    {2}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             266264  ~204%    {2}    | JOIN WITH `Access::Access.getTarget/0#dispred#cf25c8aa` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
              16379   ~21%    {3}    | JOIN WITH `Function::Function.getParameter/1#dispred#200dcf26_201#join_rhs` ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Rhs.1

        13117819221    ~0%    {4} r3 = JOIN r2 WITH `Call::Call.getArgument/1#dispred#ada436ba_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1, Rhs.2
              10477    ~3%    {3}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5` ON FIRST 2 OUTPUT Lhs.0, Lhs.3, Lhs.2

        13117819221    ~1%    {4} r4 = JOIN r2 WITH `Call::Call.getArgument/1#dispred#ada436ba_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Rhs.2
        13022632157    ~1%    {5}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1, Lhs.0, Lhs.3
               3720   ~70%    {3}    | JOIN WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus` ON FIRST 2 OUTPUT Lhs.3, Lhs.4, Lhs.2

             115767    ~6%    {2} r5 = JOIN r1 WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             333367   ~20%    {3}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, _, Lhs.1
             333367   ~12%    {3}    | REWRITE WITH Out.1 := 85
                  4    ~0%    {2}    | JOIN WITH exprs ON FIRST 2 OUTPUT Lhs.0, Lhs.2
                  4  ~100%    {2}    | JOIN WITH `Expr::Expr.getEnclosingFunction/0#dispred#3960f06c` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

                  0    ~0%    {2} r6 = JOIN r5 WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

                  0    ~0%    {2} r7 = JOIN r5 WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus#swapped` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
                  0    ~0%    {2}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

                  0    ~0%    {2} r8 = r6 UNION r7
                  0    ~0%    {3}    | JOIN WITH `Call::Call.getQualifier/0#dispred#7d175544` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
                  0    ~0%    {3}    | JOIN WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1

              14197   ~18%    {3} r9 = r3 UNION r4 UNION r8
              12615    ~3%    {3}    | AND NOT `AVRule79::exprReleases/3#e849cdd3#prev`(FIRST 3)
                              return r9
```

After:
```
Pipeline standard for AVRule79::exprReleases/3#e849cdd3@13dead04 was evaluated in 5 iterations totaling 68ms (delta sizes total: 12551).
         85855    ~0%    {2} r1 = SCAN `AVRule79::exprReleases/3#e849cdd3#prev_delta` OUTPUT In.1, In.2

         85855    ~0%    {2} r2 = JOIN r1 WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        115767    ~6%    {2}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        333443   ~18%    {2}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        265872  ~204%    {2}    | JOIN WITH `Access::Access.getTarget/0#dispred#cf25c8aa` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
         16399   ~27%    {3}    | JOIN WITH `Function::Function.getParameter/1#dispred#200dcf26_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Rhs.2

         10489    ~1%    {3} r3 = JOIN r2 WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1

          1558   ~80%    {3} r4 = JOIN r2 WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus#swapped` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2
          2196    ~7%    {3}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1

         12685    ~3%    {3} r5 = r3 UNION r4
         12581    ~3%    {3}    | JOIN WITH `Call::Call.getArgument/1#dispred#ada436ba` ON FIRST 2 OUTPUT Lhs.0, Rhs.2, Lhs.2

        115767    ~6%    {2} r6 = JOIN r1 WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        333443   ~20%    {3}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, _, Lhs.1
        333443   ~12%    {3}    | REWRITE WITH Out.1 := 85
             4    ~0%    {2}    | JOIN WITH exprs ON FIRST 2 OUTPUT Lhs.0, Lhs.2
             4  ~100%    {2}    | JOIN WITH `Expr::Expr.getEnclosingFunction/0#dispred#3960f06c` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

             0    ~0%    {2} r7 = JOIN r6 WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

             0    ~0%    {2} r8 = JOIN r6 WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus#swapped` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             0    ~0%    {2}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

             0    ~0%    {2} r9 = r7 UNION r8
             0    ~0%    {3}    | JOIN WITH `Call::Call.getQualifier/0#dispred#7d175544` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
             0    ~0%    {3}    | JOIN WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1

         12581    ~3%    {3} r10 = r5 UNION r9
         12576    ~3%    {3}    | AND NOT `AVRule79::exprReleases/3#e849cdd3#prev`(FIRST 3)
                         return r10
```
2025-06-06 07:13:26 +02:00
dependabot[bot]
bbabf2c410 Bump the extractor-dependencies group in /go/extractor with 2 updates
Bumps the extractor-dependencies group in /go/extractor with 2 updates: [golang.org/x/mod](https://github.com/golang/mod) and [golang.org/x/tools](https://github.com/golang/tools).


Updates `golang.org/x/mod` from 0.24.0 to 0.25.0
- [Commits](https://github.com/golang/mod/compare/v0.24.0...v0.25.0)

Updates `golang.org/x/tools` from 0.33.0 to 0.34.0
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.33.0...v0.34.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-06 03:29:36 +00:00
REDMOND\brodes
98aae6a7bf Crypto: Add EVP key gen and signature operation (work in progress). Add initial signature tests (no expected files yet). Add new openssl .h stubs. Clean up of OperationBase and associated uses. Update test case stubs to be closer to the actual stubs. Fix unncessary instanceof check in signatures. 2025-06-05 16:43:58 -04:00
Owen Mansel-Chan
238a3021d0 Merge pull request #19673 from github/workflow/coverage/update
Update CSV framework coverage reports
2025-06-05 19:44:44 +01:00
Mrigank Pawagi
114b46824a update test 2025-06-05 15:56:35 +00:00
Chris Smowton
fbae3062d3 Merge pull request #19675 from github/smowton/fix/abstract-env
Actions: Make `Env` non-abstract
2025-06-05 16:50:11 +01:00
Geoffrey White
526620ca41 Rust: Add some helper predicates for finding enclosing blocks. 2025-06-05 16:30:28 +01:00
Geoffrey White
96dc34e36d Rust: Even more test cases (inspired by real world results). 2025-06-05 16:29:58 +01:00
Taus
b8772bc736 JavaScript: Add change note 2025-06-05 15:06:40 +00:00
Taus
281ccf7c11 JavaScript: Extract tsconfig.json also in basic mode
This is needed for the logic that skips files inside the directory
specified in the `tsconfig.json` `outDir` compiler option.
2025-06-05 15:01:05 +00:00
Taus
619256e037 JavaScript: Fix existing tests and test runner
Fixes two things:
- The basic test should no longer extract `tst.js` (as `tst.ts` is
  present)
- The `AutoBuild` mock did not populate `extractedFiles` correctly,
  which broke the logic that looks for TypeScript files with the same
  basename.
2025-06-05 14:59:40 +00:00
Taus
8829f7820a JavaScript: Don't extract files with TypeScript progenitors 2025-06-05 14:57:00 +00:00
Taus
14f50880e9 JavaScript: Don't extract files in tsconfig.json outDir 2025-06-05 14:56:59 +00:00
Jeroen Ketema
99ef4c7b38 Merge pull request #19533 from github/idrissrio/constexpr
C++: accept new test results after changes
2025-06-05 16:53:34 +02:00
Paolo Tranquilli
e1eb1f6345 Rust: address review
Also fix some minor things in `bulk_generate_mad.py`.
2025-06-05 16:03:40 +02:00
Jeroen Ketema
057d3ebfdf C++: Update stats file after changes to DCA source suite 2025-06-05 15:57:55 +02:00
Mrigank Pawagi
93c485fb13 apply proper formatting in comment 2025-06-05 13:26:38 +00:00
Jeroen Ketema
5b5d855808 Swift: Remove empty line from change note 2025-06-05 14:47:10 +02:00
Jeroen Ketema
3f89dd3c4e Swift: Update to Swift 6.1.2 2025-06-05 14:16:18 +02:00
Owen Mansel-Chan
ecd0291b6a Add change note for deprecation 2025-06-05 11:00:00 +01:00
Owen Mansel-Chan
75d9b298b2 Test helper predicates for TypeSpec 2025-06-05 10:52:01 +01:00
Owen Mansel-Chan
c4a8ac4980 Add helper predicates for TypeSpec 2025-06-05 10:51:39 +01:00
Mrigank Pawagi
434973f8e6 Update GlobalUseBeforeInit.ql 2025-06-05 09:48:37 +00:00
Geoffrey White
66c1e2cace Rust: Add test cases for implicit dereferences and more pointer/enum mixes (inspired by early real world results). 2025-06-05 10:37:30 +01:00
Geoffrey White
e2fb1d3892 Rust: Add test cases involving lifetimes + lifetime annotations. 2025-06-05 10:37:29 +01:00
Geoffrey White
ae19ecc674 Rust: Add test cases involving lifetimes + closures and async blocks. 2025-06-05 10:37:28 +01:00
Geoffrey White
43cb98ad15 Rust: Fix some warnings in the existing test. 2025-06-05 10:37:27 +01:00
Geoffrey White
8e8374b9bc Rust: Label source annotations in the test properly. 2025-06-05 10:37:26 +01:00
Geoffrey White
da4fbfb449 Rust: Placeholder new query. 2025-06-05 10:37:25 +01:00
Owen Mansel-Chan
8b9cc99158 Test helper predicates for FieldDecl 2025-06-05 10:35:34 +01:00
Owen Mansel-Chan
d9bc165c72 Add helper predicates for FieldDecl 2025-06-05 10:35:25 +01:00
Owen Mansel-Chan
82e8d3af8d Improve two class names 2025-06-05 10:34:53 +01:00
Chris Smowton
338d3834c4 Actions: Make Env non-abstract
`class Env` was previously abstract with no concrete descendants, so user queries like `any(Env e | ...)` would never produce results.

In the JS library the corresponding class derived from `YamlNode` and has concrete descendants representing workflow-, job- and step-level `env` nodes. However these are dubiously useful since you can always just use `any(Step s).getEnv()` to achieve the same result. Since `EnvImpl` already fully characterises an `env` node, I simply make the class concrete.
2025-06-05 10:21:24 +01:00
Paolo Tranquilli
6162cf5dbb Rust: accept test changes 2025-06-05 10:52:59 +02:00
GeekMasher
302097ec85 docs(js): Add AxiosInstanceRequest docs 2025-06-05 09:52:25 +01:00
Paolo Tranquilli
ec77eb3ec8 Rust: regenerate MaD models 2025-06-05 10:08:47 +02:00
Paolo Tranquilli
f4bbef9769 Rust: switch to DCA strategy for MaD bulk generation 2025-06-05 10:08:30 +02:00
Paolo Tranquilli
530b990dd5 MaD generator: some final minor tweaks 2025-06-05 10:08:01 +02:00
Paolo Tranquilli
ee7eb86a1d MaD: make bulk generator cleanup downloaded DBs 2025-06-05 09:31:24 +02:00
Paolo Tranquilli
4f47ee2e72 MaD: make bulk generator DCA strategy download DBs in parallel 2025-06-05 09:30:02 +02:00
Paolo Tranquilli
fbd50583fe MaD generator: move bulk generation config files one directory up 2025-06-05 08:50:48 +02:00
Paolo Tranquilli
31954fa794 MaD generator: make bulk generator executable 2025-06-05 08:49:15 +02:00
Paolo Tranquilli
d5c16d6092 MaD generator: reformat 2025-06-05 08:48:01 +02:00
Paolo Tranquilli
900a3b0992 MaD generator: only pick up last database on comparison DCAs 2025-06-05 08:47:45 +02:00
Paolo Tranquilli
31d1604337 Bulk model generator: switch from json to yml configuration files 2025-06-05 08:37:43 +02:00
github-actions[bot]
401911e185 Add changed framework coverage reports 2025-06-05 00:24:03 +00:00
Asger F
691fdb106e JS: Nicer jump-to-def for function declarations 2025-06-04 22:17:42 +02:00
Asger F
57fad7e6c9 JS: Add SatisfiesExpr 2025-06-04 22:17:40 +02:00
Asger F
79101fd121 JS: Add test with type casts 2025-06-04 22:17:39 +02:00
REDMOND\brodes
f952f901e4 Crypto: Update CtxFlow to flow from any "source ctx" which is any ctx that is an argument or a return. 2025-06-04 15:44:45 -04:00
REDMOND\brodes
33e239d667 Crypto: Collapse initializer qll's into operations. 2025-06-04 15:44:06 -04:00
REDMOND\brodes
952bc266b1 Crypto: Added Signature algorithm instance and consumer 2025-06-04 15:42:55 -04:00
REDMOND\brodes
39583abade Crypto: Update KnownAlgoirthmConstants to make a distinction between calls that return a known algorithm and calls that operate on a known algorithm. update KnownAlgorithmConstants to correct algType for signature algorithms. Update all instances and prior uses of the old mechanic to KnownAlgorithmConstants. 2025-06-04 15:41:24 -04:00
Tom Hvitved
721ffb11cf Rust: Path resolution for extern crates 2025-06-04 21:14:22 +02:00
Tom Hvitved
4fb4bfd6cf Rust: Add path resolution test for extern crate 2025-06-04 21:13:29 +02:00
Tom Hvitved
76c6d7104d Merge pull request #19669 from hvitved/rust/external-location-post-processing
Rust: Remove external locations in tests using post-processing
2025-06-04 16:52:40 +02:00
idrissrio
149c53bef6 C++: accept new test results after changes 2025-06-04 16:51:29 +02:00
Arthur Baars
189c16b7bc Merge pull request #19630 from github/aibaars/qldoc-ast
Rust: add documentation for AST nodes
2025-06-04 16:04:56 +02:00
Arthur Baars
39851bcab4 Rust: update expected output 2025-06-04 15:44:36 +02:00
Arthur Baars
e87878298e Rust: run codegen 2025-06-04 15:41:52 +02:00
Arthur Baars
7a13c981b8 Rust: address comments 2025-06-04 15:38:23 +02:00
Napalys Klicius
5419285091 Merge pull request #19544 from Napalys/js/quality/stream_pipe
JS: new `Quality` query - Unhandled errors in `.pipe()` chain
2025-06-04 15:34:41 +02:00
Jeroen Ketema
2e6794e16c Merge pull request #18931 from jketema/frontend-upgrade
C++: Update expected test results and compiler version documentation after frontend update
2025-06-04 14:34:53 +02:00
Jeroen Ketema
129f259f1a C++: Update supported compiler versions after frontend update 2025-06-04 14:03:44 +02:00
Jeroen Ketema
0e34ee18df C++: Update expected test results after frontend update 2025-06-04 14:03:43 +02:00
Tom Hvitved
aa0fc05df8 Rust: Remove external locations in tests using post-processing 2025-06-04 13:07:43 +02:00
Owen Mansel-Chan
e7e4286233 Merge pull request #19561 from owen-mc/go/mad/bigquery-sql-injection-sink
Go: Add BigQuery as a sink for SQLi queries #2
2025-06-04 11:36:18 +01:00
Asger F
853ba49212 Update javascript/ql/lib/semmle/javascript/internal/TypeResolution.qll
Co-authored-by: Napalys Klicius <napalys@github.com>
2025-06-04 10:17:25 +02:00
Paolo Tranquilli
5f474a7185 Rust: Use QL computed canonical paths in MaD Field tokens
Also regenerate all auto-generated models with latest extractor.
2025-06-04 09:43:45 +02:00
Nicolas Will
0ef17ba231 Merge pull request #19607 from trailofbits/openssl-base-classes
Quantum: Add base classes for OpenSSL EVP methods
2025-06-03 19:23:21 +02:00
Mathew Payne
8f2f7a934d Merge branch 'main' into js-clientrests-axios 2025-06-03 16:38:14 +01:00
GeekMasher
79a72fc15b fix(js): Update tests 2025-06-03 16:37:36 +01:00
GeekMasher
3b64bd48ab style(js): Update Formatting 2025-06-03 15:59:32 +01:00
GeekMasher
2eb5f10850 feat(js): Add Axios instance support change notes 2025-06-03 15:58:49 +01:00
GeekMasher
6a1cfb6aef feat(js): Add Axios Instance support and add tests 2025-06-03 15:55:23 +01:00
Owen Mansel-Chan
b2f310cda7 Add change note 2025-06-03 15:36:03 +01:00
GrosQuildu
60d9b6e338 update docs 2025-06-03 16:27:50 +02:00
GrosQuildu
eff6eb3cc2 remove redundant if/none 2025-06-03 16:27:50 +02:00
GrosQuildu
f04fa58c8b rm one-shot class 2025-06-03 16:27:50 +02:00
Paweł Płatek
328cf798bf Apply docs suggestions
Co-authored-by: Ben Rodes <benjaminrodes@gmail.com>
2025-06-03 16:27:50 +02:00
Paweł Płatek
f103e8be96 Update cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperationBase.qll
Co-authored-by: Ben Rodes <benjaminrodes@gmail.com>
2025-06-03 16:27:50 +02:00
GrosQuildu
af8702d6a8 fix openssl outputs 2025-06-03 16:27:50 +02:00
GrosQuildu
6d1b1d1a6e refactor EVP common classes
add initial work for openssl signatures

add basic C test files for ciphers and signatures

more signature classes, comments for evp base classes

more signature tests

fix super calls for input consumers

fix getOutputArtifact for tests

formatting

delete redundant test files

move algorithm methods to OpenSSLOperation

refactor ECKeyGenOperation for new EVP classes

formatting

fix getOutputArtifact

fix cipher and digest operation test results

mv openssl signature to another PR
2025-06-03 16:27:50 +02:00
Idriss Riouak
8fe2699a36 Merge pull request #19603 from github/idrissrio/comments-using
C++: Add support for getting literals in using declarations
2025-06-03 16:14:21 +02:00
idrissrio
10fb806601 C++: add change note for using declarations 2025-06-03 16:04:36 +02:00
idrissrio
4fd44e96ba C++: add test for getReferencedMember 2025-06-03 16:04:35 +02:00
idrissrio
e31f722d76 C++: Add support for getting referenced literals in using declarations 2025-06-03 16:04:30 +02:00
Owen Mansel-Chan
4711feb344 Add test for DefinedType.getBaseType 2025-06-03 14:50:05 +01:00
Owen Mansel-Chan
40000840c1 Fix definition of DefinedType.getBaseType 2025-06-03 14:50:03 +01:00
Owen Mansel-Chan
681f9af710 Fix MethodTypes test 2025-06-03 14:50:00 +01:00
Napalys Klicius
aac56e089a JavaScript: Fix false positive on Flow type annotations in ExprHasNoEffect 2025-06-03 15:26:22 +02:00
Napalys Klicius
46b5ded862 JS: Enhance void context propagation 2025-06-03 15:20:55 +02:00
Florin Coada
35691db373 Merge pull request #19643 from github/changedocs/2.21.4
Docs: Add changelog entry for CodeQL 2.21.4 release
2025-06-03 14:19:19 +01:00
Napalys Klicius
bf48b59874 JS: Removed exclusion of FunctionExpr from compound statements. 2025-06-03 15:12:26 +02:00
Michael Nebel
d2b8bd5760 C#: Remove explicit (trivial) type requirements on Debug.Assert methods. 2025-06-03 15:10:34 +02:00
Napalys Klicius
8521c53a40 Renamed test directory to match the query name
Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com>
2025-06-03 14:12:12 +02:00
Napalys Klicius
d1869941c2 Renamed UnhandledStreamPipe.ql to a better fitting name and ID
As a side effect of merge `security-and-quality` does not contain anymore related new query.

Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com>
2025-06-03 13:57:10 +02:00
Paolo Tranquilli
f48012a37c Merge pull request #19644 from github/redsun82/update-ripunzip
Ripunzip: update to 2.0.2
2025-06-03 13:51:34 +02:00
Napalys Klicius
f6e7059589 Merge branch 'main' into js/quality/stream_pipe 2025-06-03 13:48:41 +02:00
Napalys Klicius
8ba1f3f265 Update javascript/ql/src/Quality/UnhandledStreamPipe.qhelp
Co-authored-by: Asger F <asgerf@github.com>
2025-06-03 13:43:45 +02:00
Asger F
9ea4410592 Merge pull request #19587 from asgerf/js/angular2-client-side
JS: Mark AngularJS $location as client-side remote flow source
2025-06-03 13:40:01 +02:00
Michael Nebel
bc4ff598c3 C#: Add change-note. 2025-06-03 13:25:02 +02:00
Michael Nebel
77fa45050e C#: Add cs/dereferenced-value-is-always-null and cs/dereferenced-value-may-be-null to the Code Quality suites. 2025-06-03 13:25:01 +02:00
Michael Nebel
7a63c7d2a5 C#: Update test expected output. 2025-06-03 13:24:59 +02:00
Michael Nebel
36eab47ab4 C#: Do not assume that extension methods on nullable types do unsafe dereference. 2025-06-03 13:24:57 +02:00
Michael Nebel
0355ea8733 C#: Add some synthetic library extensions methods and tests for cs/dereferenced-value-is-always-null. 2025-06-03 13:24:56 +02:00
Michael Nebel
76c12a5c69 C#: Convert tests for cs/dereferenced-value-may-be-null to use inline expectations. 2025-06-03 13:24:54 +02:00
Michael Nebel
46c02e7fa8 C#: Convert tests for cs/dereferenced-value-is-always-null to use inline expectations. 2025-06-03 13:24:52 +02:00
Jeroen Ketema
5e84c71b69 Merge pull request #19652 from jketema/down-typo
C++: Fix typo in downgrade script
2025-06-03 12:55:28 +02:00
Jeroen Ketema
41bdaa3d3c C++: Fix typo in downgrade script 2025-06-03 12:25:46 +02:00
Arthur Baars
4de3817b16 Merge pull request #19616 from github/aibaars/rust-fix-stats
Rust: restrict line and file counts to include only extracted source files
2025-06-03 11:31:54 +02:00
Arthur Baars
348dc9969b Rust: remove stray space 2025-06-03 10:55:34 +02:00
Tamas Vajk
92541ffdd8 Add cs/string-concatenation-in-loop to the quality suite 2025-06-03 10:51:38 +02:00
Paolo Tranquilli
1110fea2a2 Rust: add upgrade/downgrade scripts for new tables 2025-06-03 10:41:32 +02:00
Paolo Tranquilli
04c9feed36 Rust: accept test changes 2025-06-03 10:41:31 +02:00
Paolo Tranquilli
667eed9b9b Rust: store in the DB if a library function or const had a body
When skipping bodies in library code, we lose the information whether a
body was originally present. This can be important, for example when
determining whether a trait method has a default implementation.

With this change that information can be recovered via the
`hasImplementation` predicate.
2025-06-03 10:41:31 +02:00
Paolo Tranquilli
77c40da51a Rust/Codegen: fix detached predicates 2025-06-03 10:41:31 +02:00
Paolo Tranquilli
78bb41e47b Merge branch 'main' into redsun82/rust-extract-libs 2025-06-03 10:34:11 +02:00
Tom Hvitved
ae4a425608 Merge pull request #19605 from hvitved/rust/jump-to-def-extensions
Rust: Extend jump-to-def to include paths and `mod file;` imports
2025-06-03 10:19:28 +02:00
Tom Hvitved
3781de7b92 Rust: Reorder columns in Definitions.ql test 2025-06-03 09:53:45 +02:00
Nicolas Will
7d7ea72516 Merge pull request #19632 from bdrodes/openssl_keyagreement_instances_and_consumers
Quantum: Add OpenSSL key agreement instances and consumers
2025-06-02 20:55:05 +02:00
Nicolas Will
7e7dfeb40b Merge branch 'main' into openssl_keyagreement_instances_and_consumers 2025-06-02 20:02:53 +02:00
REDMOND\brodes
8b770bfb4d Crypto: Remove old crypto stubs, now part of experimental/stubs. 2025-06-02 14:00:30 -04:00
Napalys Klicius
7993f7d8c8 Update qhelp example to more accurately demonstrate flagged cases 2025-06-02 19:08:33 +02:00
REDMOND\brodes
23b6c78a23 Crypto: Revert CODEOWNERS change and remove redundant cast. 2025-06-02 13:07:31 -04:00
Tom Hvitved
52aa7e3c7d Merge pull request #19624 from paldepind/type-inference-experiment
Rust: Refactor type equality
2025-06-02 19:06:18 +02:00
Napalys Klicius
bf2f19da56 Update UnhandledStreamPipe.ql
Address comments

Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com>
2025-06-02 19:02:48 +02:00
Paolo Tranquilli
bd2573a2b0 Ripunzip: fix macos archive 2025-06-02 18:20:29 +02:00
Nicolas Will
8b9e5b477c Merge pull request #19623 from trailofbits/fegge/quantum-signatures
Quantum: Added signature input nodes to signature verify operation nodes
2025-06-02 18:07:48 +02:00
Florin Coada
2e5ce06a27 Docs: Add changelog entry for CodeQL 2.21.4 release 2025-06-02 17:06:40 +01:00
Paolo Tranquilli
51ef76a3c4 Merge pull request #19642 from github/redsun82/rm-windows-2019
CI: remove deprecated `windows-2019` usage
2025-06-02 18:05:19 +02:00
Paolo Tranquilli
ddbe29a8e2 Ripunzip: update to 2.0.2 2025-06-02 18:04:57 +02:00
Napalys Klicius
ae74edb033 Update javascript/ql/src/Quality/UnhandledStreamPipe.ql
Co-authored-by: Asger F <asgerf@github.com>
2025-06-02 17:53:54 +02:00
Napalys Klicius
d43695c929 Update javascript/ql/src/Quality/UnhandledStreamPipe.qhelp
Co-authored-by: Asger F <asgerf@github.com>
2025-06-02 17:52:42 +02:00
Napalys Klicius
7198372ae5 Update javascript/ql/src/Quality/UnhandledStreamPipe.qhelp
Co-authored-by: Asger F <asgerf@github.com>
2025-06-02 17:52:41 +02:00
Napalys Klicius
abd446ae77 Update javascript/ql/src/Quality/UnhandledStreamPipe.ql
Co-authored-by: Asger F <asgerf@github.com>
2025-06-02 17:52:40 +02:00
Napalys Klicius
64f00fd0f2 Update javascript/ql/src/Quality/UnhandledStreamPipe.ql
Co-authored-by: Asger F <asgerf@github.com>
2025-06-02 17:52:34 +02:00
Joe Farebrother
38072c7863 Fix typo
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-02 16:42:27 +01:00
Napalys Klicius
3cbc4142f0 Update javascript/ql/src/Quality/UnhandledStreamPipe.ql
Co-authored-by: Asger F <asgerf@github.com>
2025-06-02 17:40:06 +02:00
Napalys Klicius
aed9e9c883 Merge pull request #19634 from Napalys/js/url_obj_propagation
JS: Add URL constructor taint tracking for request forgery
2025-06-02 17:32:44 +02:00
Paolo Tranquilli
baac2eecb0 Ripunzip: update default workflow versions 2025-06-02 17:30:34 +02:00
Paolo Tranquilli
b1afa6681c CI: remove deprecated windows-2019 usage 2025-06-02 17:26:42 +02:00
Nicolas Will
5a822462ad Merge branch 'main' into openssl_keyagreement_instances_and_consumers 2025-06-02 16:54:22 +02:00
Nicolas Will
806fc6ae6a Merge pull request #19564 from bdrodes/initial_openssl_tests
Quantum: Add initial qltests for OpenSSL modeling
2025-06-02 16:52:27 +02:00
Arthur Baars
ae0c547e89 Rust: fix CFG for MacroPat 2025-06-02 16:37:55 +02:00
REDMOND\brodes
f5d24c5a7b Crypto: Fix UnknownKeyAgreementType to OthernKeyAgreementType for JCA. 2025-06-02 10:11:53 -04:00
REDMOND\brodes
a473c96a9c Crypto: Move crypto test stubs under experimental/stubs and remove special CODEOWNERS assignments for crypto stubs. 2025-06-02 16:10:35 +02:00
REDMOND\brodes
6b267479be Crypto: Update crypto stubs location under 'crypto' and associate codeowners on any test/stubs/crypto. Minor fix to HashAlgorithmValueConsumer (remove library detector logic). 2025-06-02 16:10:35 +02:00
REDMOND\brodes
a9bdcc72eb Crypto: Move openssl stubs to a shared stubs location. Include openssl apache license and a readme for future stub creation. Modify existing test case to reference stubs location. 2025-06-02 16:10:35 +02:00
REDMOND\brodes
0de6647927 Crypto: Adding initial openssl tests, fixing a bug in hash modeling found through tests, and updating CODEOWNERS for quantum tests 2025-06-02 16:10:35 +02:00
Arthur Baars
5c21c01ad0 Update rust/ql/src/queries/summary/Stats.qll 2025-06-02 15:42:43 +02:00
Fredrik Dahlgren
d0739b21e5 Restricted signature input nodes to verify nodes 2025-06-02 15:37:33 +02:00
Paolo Tranquilli
dfc03cbad1 Merge branch 'main' into redsun82/rust-extract-libs 2025-06-02 15:33:53 +02:00
Joe Farebrother
57a0c7a1ab Performance fix - Use basic blocks instead of full cfg reachability. 2025-06-02 14:33:52 +01:00
Napalys Klicius
1f256ab71e Added change note 2025-06-02 14:59:43 +02:00
Napalys Klicius
bca1bc7153 JS: Enhance isDomProperty to check for getAPropertyRead on DOM nodes 2025-06-02 14:56:45 +02:00
Napalys Klicius
9b2ef8be10 JS: add test for DOM access where expression appears to have no side effects 2025-06-02 14:54:46 +02:00
Michael Nebel
21cb8b2172 Merge pull request #19638 from martincostello/dotnet-branding
Fix user-facing casing of NuGet
2025-06-02 14:06:35 +02:00
Taus
9fe031d8eb Merge pull request #19594 from sylwia-budzynska/pandas-sqli
Python: Add Pandas SQLi sinks
2025-06-02 13:40:14 +02:00
Napalys Klicius
c981c4fe30 Update javascript/ql/lib/change-notes/2025-05-30-url-package-taint-step.md
Co-authored-by: Asger F <asgerf@github.com>
2025-06-02 13:34:47 +02:00
Tom Hvitved
bf39058573 Merge pull request #19611 from hvitved/rust/path-resolution-std-prelude
Rust: Also take the `std` prelude into account when resolving paths
2025-06-02 13:04:57 +02:00
Paolo Tranquilli
2561f3c081 Merge pull request #19585 from github/redsun82/rust-skip-unexpanded-in-libraries
Rust: skip unexpanded stuff in library emission
2025-06-02 12:10:37 +02:00
Napalys Klicius
298ef9ab12 Now able to track error handler registration via instance properties 2025-06-02 11:01:41 +02:00
Martin Costello
77a6a2d442 Fix user-facing casing of NuGet
Fix user-facing strings to use "NuGet" instead of "Nuget" and "dotnet" instead of "Dotnet".
2025-06-02 09:30:16 +01:00
Paolo Tranquilli
fa3fcf0f95 Rust: skip all token trees in library mode 2025-06-02 09:32:39 +02:00
Paolo Tranquilli
7be44d2fe8 Merge branch 'main' into redsun82/rust-skip-unexpanded-in-libraries 2025-06-02 09:27:56 +02:00
Arthur Baars
943dd8e70c update output 2025-05-30 22:56:06 +02:00
Arthur Baars
c44a7c3036 Rust: codegen 2025-05-30 22:56:04 +02:00
Arthur Baars
0c8e886821 Rust: fix QLdoc examples 2025-05-30 22:55:50 +02:00
Napalys Klicius
0b6a747737 Added change note 2025-05-30 18:33:59 +02:00
Napalys Klicius
b9b62fa1c1 JS: Add URL from url package constructor taint step for request forgery detection 2025-05-30 18:32:02 +02:00
Napalys Klicius
19cc3e335f JS: Add test case for RequestForgery with url wrapped via package URL 2025-05-30 18:26:47 +02:00
Napalys Klicius
f843cc02f6 Fix false positives in stream pipe analysis by improving error handler tracking via property access. 2025-05-30 18:08:04 +02:00
REDMOND\brodes
cf015d18f1 Crypto: Add openssl key agreement instances and consumers (KEM and KEY_EXCH). Fix for raw algorithm names in all current instances. Update constants to include key agreement algorithms, previously missing. Note added in model for the possibility of ESDH. 2025-05-30 11:29:34 -04:00
Mathias Vorreiter Pedersen
f6231a37e1 Merge pull request #19627 from MathiasVP/generalize-bulk-generation
Bulk MAD generator: Support databases from DCA runs
2025-05-30 14:46:36 +01:00
REDMOND\brodes
69e3a20e24 Crypto: Update crypto stubs location under 'crypto' and associate codeowners on any test/stubs/crypto. Minor fix to HashAlgorithmValueConsumer (remove library detector logic). 2025-05-30 09:35:33 -04:00
Mathias Vorreiter Pedersen
7cb9024cc6 Bulk generator: Flip default values for summaries, sources, and sinks. 2025-05-30 13:33:24 +01:00
Mathias Vorreiter Pedersen
0f30644afd Bulk generator: Snake case things. 2025-05-30 13:26:53 +01:00
Mathias Vorreiter Pedersen
3444c986ec Bulk generator: Fix field name. 2025-05-30 13:25:12 +01:00
Mathias Vorreiter Pedersen
bdf411afbc Bulk generator: Make 'database_results' a map to simplify away the explicit sorting. 2025-05-30 13:09:55 +01:00
Mathias Vorreiter Pedersen
cdd869a970 Bulk generator: Autoformat. 2025-05-30 12:49:12 +01:00
Mathias Vorreiter Pedersen
3ddca32705 Update misc/scripts/models-as-data/bulk_generate_mad.py
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-05-30 12:48:50 +01:00
Mathias Vorreiter Pedersen
7c2612a6a1 Bulk generator: Specify a path to the PAT instead of the PAT itself. 2025-05-30 12:47:07 +01:00
Mathias Vorreiter Pedersen
1228080914 Bulk generator: Specify 'language' in the config file. 2025-05-30 12:40:21 +01:00
Mathias Vorreiter Pedersen
fc165db8ac Bulk generator: Specify 'with-summaries', 'with-sources', and 'with-sinks' in the config file. 2025-05-30 12:40:20 +01:00
Mathias Vorreiter Pedersen
7121f5c57e Bulk generator: Use the 'Project' type throughout the file. 2025-05-30 12:08:42 +01:00
Arthur Baars
0157c16008 Rust: delete empty expected file 2025-05-30 12:57:45 +02:00
Mathias Vorreiter Pedersen
7c89d6d6dd Bulk generator: Rename 'get_destination_for_project' to 'get_mad_destination_for_project'. 2025-05-30 11:49:48 +01:00
Mathias Vorreiter Pedersen
5d79a8de89 Update misc/scripts/models-as-data/bulk_generate_mad.py
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-05-30 11:48:30 +01:00
Mathias Vorreiter Pedersen
b640474a61 Bulk generator: Remove 'Phase' part of log message. 2025-05-30 11:43:30 +01:00
Mathias Vorreiter Pedersen
566bf431d7 Bulk generator: Rename 'github' to 'get_json_from_github'. 2025-05-30 11:42:15 +01:00
Mathias Vorreiter Pedersen
7ecf8c8ea2 Bulk generator: Format file and add a note at the top of the file specifying the formatting requirements. 2025-05-30 11:40:55 +01:00
Joe Farebrother
73f2770acb Fix handling for some wrappers + add test case 2025-05-30 11:24:06 +01:00
Arthur Baars
f0db47b571 Rust: run codegen 2025-05-30 11:51:35 +02:00
Arthur Baars
0dd0f9a22a Rust: add missing AST nodes to annotations.py 2025-05-30 11:46:27 +02:00
Arthur Baars
460984bee5 Rust: add documentation for AST nodes 2025-05-30 11:46:17 +02:00
Mathias Vorreiter Pedersen
cb938701a1 Bulk generator: Rename file since it is no longer Rust specific. 2025-05-29 18:14:24 +01:00
Mathias Vorreiter Pedersen
5051790e24 Bulk generator: Add DCA support. 2025-05-29 18:14:22 +01:00
Mathias Vorreiter Pedersen
e721fc07aa Bulk generator: Prepare for adding DCA support. This commits just generalizes the existing functionality to be independent of Rust and instead depend on the configuration file and the command-line arguments. 2025-05-29 18:14:21 +01:00
Mathias Vorreiter Pedersen
6ff2bebbc2 Bulk generator: Add command-line arguments. 2025-05-29 18:14:19 +01:00
Mathias Vorreiter Pedersen
b87ba31c43 Bulk generator: Get rid of the hardcoded project list and move it into a configuration file. 2025-05-29 18:14:18 +01:00
Mathias Vorreiter Pedersen
40d937a2eb Bulk generator: Some imports we will need. 2025-05-29 18:14:16 +01:00
Mathias Vorreiter Pedersen
cb0b566588 C++: Put autogenerated models in the same folder structure as Rust. 2025-05-29 18:14:15 +01:00
Geoffrey White
49dabdb8a5 Rust: Accept consistency test failures. 2025-05-29 17:51:44 +01:00
Geoffrey White
10f894b9a1 Rust: Model more methods. 2025-05-29 16:45:25 +01:00
Geoffrey White
4d51a15cc4 Rust: Add model variants for when the qualifier is expressed as an arg (reference). We shouldn't need these. 2025-05-29 16:45:23 +01:00
Geoffrey White
84c72f68af Rust: Add models for read methods. 2025-05-29 16:45:22 +01:00
Geoffrey White
13f6de9924 Rust: Add source / basic basic models. 2025-05-29 16:45:21 +01:00
Geoffrey White
b78d51e079 Rust: Fix a bug in InlineFlow.ql that was excluding some sinks. 2025-05-29 16:45:19 +01:00
Geoffrey White
a5e1702d4b Rust: Add tests for sources involving regular rustls as well. 2025-05-29 16:45:18 +01:00
Geoffrey White
544af7f7ca Rust: Add tests for sources involving futures-rustls and futures-io. 2025-05-29 16:45:17 +01:00
Arthur Baars
f5ea929d76 Merge pull request #19551 from github/redsun82/rust-all-features-by-default
Rust: use all features by default
2025-05-29 16:29:25 +02:00
Simon Friis Vindum
08277e4ecc Rust: Refactor type equality 2025-05-29 16:07:37 +02:00
Fredrik Dahlgren
5fe17abe31 Added signature input nodes to signature verify operation nodes 2025-05-29 13:27:11 +02:00
Simon Friis Vindum
437246f3c9 Merge pull request #19593 from paldepind/rust/operator-overloading
Rust: Type inference for operator overloading
2025-05-29 12:28:25 +02:00
Paolo Tranquilli
55791a6c75 Rust: fix typo
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-29 11:19:08 +02:00
Paolo Tranquilli
ca661c7877 Rust: use all features by default 2025-05-29 11:19:08 +02:00
Arthur Baars
55be5fbf9e Merge pull request #19588 from github/aibaars/rust-enable-attribute-macros
Rust: re-enable attribute macro expansion in library mode
2025-05-29 10:59:07 +02:00
Chuan-kai Lin
b4e614ac74 Merge pull request #19428 from github/cklin/check-diff-informed
QL tests: run with --check-diff-informed
2025-05-28 11:51:16 -07:00
Arthur Baars
62d0cf7e0d Rust: restrict line and file counts to include only extracted source files 2025-05-28 19:55:13 +02:00
Chuan-kai Lin
89ad2b4256 Merge branch 'main' into cklin/check-diff-informed 2025-05-28 10:47:47 -07:00
Arthur Baars
bfe3413445 Merge pull request #19612 from github/aibaars-patch-2
Rust: delete leftover log statement
2025-05-28 18:11:27 +02:00
REDMOND\brodes
b1ce44e434 Crypto: Move openssl stubs to a shared stubs location. Include openssl apache license and a readme for future stub creation. Modify existing test case to reference stubs location. 2025-05-28 12:05:18 -04:00
Napalys Klicius
d3b2a57fbf Fixed ql warning Expression can be replaced with a cast 2025-05-28 17:34:16 +02:00
Napalys Klicius
2e2b9a9d63 Make predicates private and clarify stream reference naming. 2025-05-28 17:23:55 +02:00
Paolo Tranquilli
06eeb10db8 Merge branch 'main' into redsun82/rust-extract-libs 2025-05-28 17:23:28 +02:00
Paolo Tranquilli
80a5dde240 Merge pull request #19613 from github/redsun82/rust-compression
Ruby, Rust: add zstd compression option (and fix compression in Rust)
2025-05-28 17:20:57 +02:00
Paolo Tranquilli
7d1a38f42a Merge pull request #19600 from github/redsun82/rust-new-macro-expansion-integration-test
Rust: add more macro expansion tests
2025-05-28 17:19:06 +02:00
Napalys Klicius
f8f5d8f561 Exclude .pipe detection which are in a test file. 2025-05-28 17:18:39 +02:00
Napalys Klicius
5bb29b6e33 Now flags only .pipe calls which have an error somewhere down the stream, but not on the source stream. 2025-05-28 17:17:43 +02:00
Tom Hvitved
3fa308e723 Rust: Also take the std prelude into account when resolving paths 2025-05-28 16:57:19 +02:00
Paolo Tranquilli
c8f5e26200 Rust: fix compression option description 2025-05-28 16:48:02 +02:00
Paolo Tranquilli
fd00ed502d Ruby: add compression integration test 2025-05-28 16:41:56 +02:00
Paolo Tranquilli
8248c50bdf Rust: add none compression integration test 2025-05-28 16:41:55 +02:00
Paolo Tranquilli
923a2854cb Ruby, Rust: add zstd compression option 2025-05-28 16:41:55 +02:00
Paolo Tranquilli
4a9e31ebd8 Shared: add zstd crate to tree-sitter-extractor dependencies 2025-05-28 16:41:55 +02:00
Paolo Tranquilli
a86dfe173e Rust: fix gzip compression 2025-05-28 16:41:54 +02:00
Simon Friis Vindum
6500ebf631 Rust: Fixes based on PR review 2025-05-28 16:01:28 +02:00
Arthur Baars
19283102da Rust: delete leftover log statement 2025-05-28 15:51:42 +02:00
Jeroen Ketema
7ccae93a12 Merge pull request #19606 from jketema/gnu-version
C++: Specify GNU version on min/max test
2025-05-28 15:05:27 +02:00
Kasper Svendsen
b291b0637e Warn about possible non-inlining across overlay frontier 2025-05-28 14:41:40 +02:00
Kasper Svendsen
5f65ea60d1 QL AST: Add overlay annotations 2025-05-28 14:41:40 +02:00
Jeroen Ketema
0796184573 C++: Specify GNU version on min/max test
The `<?` and `>?` operators where removed in g++ in version 4.3, and the
latest version of our our frontend enforces this through a version check.
Hence, to keep the test working, we not to explicitly specify a version.
2025-05-28 14:16:47 +02:00
Simon Friis Vindum
5160bc2b9a Rust: Define getNumberOfOperands in Operation class 2025-05-28 13:32:49 +02:00
Tom Hvitved
d74e95f5fe Rust: Extend jump-to-def to include paths and mod file; imports 2025-05-28 13:29:00 +02:00
Owen Mansel-Chan
164cfaf3e7 Merge pull request #19532 from owen-mc/go/make-test-version-independent
Go: Make type param test independent of standard library version
2025-05-28 11:30:13 +01:00
Owen Mansel-Chan
6f71e3b30e Merge pull request #19491 from owen-mc/go/add-test-flags
Go: Check more things while running tests
2025-05-28 10:12:05 +01:00
Tom Hvitved
78b9d8ff1d Merge pull request #19580 from hvitved/rust/path-resolution-prelude-in-core
Rust: Also include prelude path resolution in Core
2025-05-28 10:52:56 +02:00
REDMOND\brodes
41f008d4f3 Crypto: Adding initial openssl tests, fixing a bug in hash modeling found through tests, and updating CODEOWNERS for quantum tests 2025-05-27 15:23:53 -04:00
Henry Mercer
6b280efd29 Merge pull request #19602 from github/post-release-prep/codeql-cli-2.21.4
Post-release preparation for codeql-cli-2.21.4
2025-05-27 19:56:09 +01:00
github-actions[bot]
d2c6875eac Post-release preparation for codeql-cli-2.21.4 2025-05-27 18:16:21 +00:00
Henry Mercer
d72c766a49 Merge pull request #19601 from github/release-prep/2.21.4
Release preparation for version 2.21.4
2025-05-27 18:37:24 +01:00
github-actions[bot]
bfb91e95e3 Release preparation for version 2.21.4 2025-05-27 17:22:05 +00:00
Geoffrey White
5df50c0b14 Merge pull request #19470 from geoffw0/moresensitive
Rust: Recognize more sensitive data sources
2025-05-27 17:34:58 +01:00
Jeroen Ketema
596553233f Merge pull request #19599 from jketema/jketema/win
C++: Address comments from earlier Windows MaD PRs
2025-05-27 17:13:31 +02:00
Paolo Tranquilli
ece075c214 Rust: add more macro expansion tests 2025-05-27 16:57:23 +02:00
Jeroen Ketema
ae266546a6 C++: Minor test clean up 2025-05-27 16:57:23 +02:00
Jeroen Ketema
ae67948a67 C++: Fix formatting in model files 2025-05-27 16:55:26 +02:00
Michael B. Gale
8c39f617df Merge pull request #19598 from github/mbg/go/handle-empty-strings-in-proxy-vars
Go: Explicitly check whether proxy env vars are empty
2025-05-27 15:32:40 +01:00
Mathias Vorreiter Pedersen
e826b838b4 Merge pull request #19595 from MathiasVP/add-readfileex-flow-summary
C++: Add missing `ReadFileEx` flow summary
2025-05-27 15:22:06 +01:00
Michael B. Gale
c236084043 Go: Explicitly check whether proxy env vars are empty 2025-05-27 14:58:18 +01:00
Geoffrey White
a412ad2775 Merge pull request #19529 from geoffw0/pin
Rust: Model Pin
2025-05-27 14:03:08 +01:00
Joe Farebrother
f3a5608b06 Apply review suggestions - remove methodOfClass, fix qhelp typo; additionally add some more doc comments 2025-05-27 13:35:13 +01:00
Arthur Baars
d018c02a78 Merge pull request #19583 from github/aibaars/lib-as-source
Rust: add option to extract dependencies as source files
2025-05-27 14:10:58 +02:00
Simon Friis Vindum
d92d454941 Rust: Implement type inference for overloaded operators 2025-05-27 14:02:57 +02:00
Sylwia Budzynska
e66659276b Fix formatting 2025-05-27 13:51:03 +02:00
Michael Nebel
ef1ddd04ee Merge pull request #19520 from michaelnebel/csharp/missedreadonly
C#: Improve `cs/missed-readonly-modifier` and to code-quality suite.
2025-05-27 13:50:50 +02:00
Sylwia Budzynska
8a1c323a98 Change naming to PascalCase 2025-05-27 13:45:40 +02:00
Sylwia Budzynska
55c70a4cae Fix nitpicks 2025-05-27 13:44:21 +02:00
Mathias Vorreiter Pedersen
76c2d24a7e C++: Add summary for ReadFileEx and accept test changes. 2025-05-27 12:41:22 +01:00
Mathias Vorreiter Pedersen
c1ee56e4c1 C++: Add ReadFileEx tests with missing flow. 2025-05-27 12:41:20 +01:00
Simon Friis Vindum
6e9a4be2bc Rust: Add type inference test for overloaded operators 2025-05-27 13:38:57 +02:00
Mathias Vorreiter Pedersen
8595bd84a3 Merge pull request #19591 from MathiasVP/add-more-win32-flow-sources-2
C++: Add more Win32 flow sources
2025-05-27 12:38:19 +01:00
Simon Friis Vindum
254eabf44a Merge pull request #19557 from paldepind/rust/type-mention-consistency
Rust: Only include relevant AST nodes in TypeMention
2025-05-27 13:34:48 +02:00
Sylwia Budzynska
84228e0ec8 Add Pandas SQLi sinks 2025-05-27 13:10:39 +02:00
Arthur Baars
ac724d2671 Update rust/extractor/src/main.rs
Co-authored-by: Simon Friis Vindum <simonfv@gmail.com>
2025-05-27 13:08:20 +02:00
Geoffrey White
257d94905d Merge branch 'main' into pin 2025-05-27 11:46:07 +01:00
Mathias Vorreiter Pedersen
a05ddca9c9 Update cpp/ql/lib/ext/Windows.model.yml
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-05-27 11:45:35 +01:00
Mathias Vorreiter Pedersen
80229644b8 Update cpp/ql/lib/ext/Windows.model.yml
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-05-27 11:45:27 +01:00
Mathias Vorreiter Pedersen
e406f27bb3 Update cpp/ql/lib/ext/Windows.model.yml
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-05-27 11:45:18 +01:00
Simon Friis Vindum
52280625ee Rust: Add type inference inconsistency counts to the stats summary 2025-05-27 12:43:34 +02:00
Mathias Vorreiter Pedersen
fd9adc43c2 C++: Add change note. 2025-05-27 11:38:02 +01:00
Mathias Vorreiter Pedersen
5d8bb1b5b0 C++: Add more Windows sources. 2025-05-27 11:38:00 +01:00
Jeroen Ketema
b071a462f3 Merge pull request #19563 from jketema/jketema/win-flow
C++: Add Windows command line and environment models
2025-05-27 12:32:51 +02:00
Jeroen Ketema
4c9c8bc37f Merge pull request #19576 from jketema/swift-6.1.1
Swift: Update to Swift 6.1.1
2025-05-27 11:21:56 +02:00
Napalys Klicius
99ab144bde Merge pull request #19578 from Napalys/js/security_quality_suite
JS: Explicitly Filter Quality Queries for Inclusion in `Security-and-Quality`
2025-05-27 11:00:28 +02:00
Jeroen Ketema
f4636b9ef2 Swift: Update Swift resources 2025-05-27 10:56:52 +02:00
Arthur Baars
dc7958071a Rust: re-enable attribute macro expansion in library mode 2025-05-27 10:54:48 +02:00
Jeroen Ketema
329d451d4d Swift: Add change note 2025-05-27 10:53:57 +02:00
Jeroen Ketema
0f2d2b7697 Merge pull request #19582 from jketema/jketema/swift-type
Swift: Fix type string representation
2025-05-27 10:44:41 +02:00
Geoffrey White
c97173735c Merge pull request #19562 from geoffw0/operations3
Rust: Add more Operation subclasses
2025-05-27 09:26:35 +01:00
Geoffrey White
1e64f50c3c Apply suggestions from code review
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-05-27 08:51:00 +01:00
Asger F
076e4a49d5 JS: Mark AngularJS $location as client-side remote flow source 2025-05-27 09:47:43 +02:00
Napalys Klicius
5214cc0407 Excluded ngrx, datorama, angular, react and langchain from stream pipe query. 2025-05-27 09:45:37 +02:00
Napalys Klicius
1f6b3ad929 Update javascript/ql/src/codeql-suites/javascript-security-and-quality.qls
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2025-05-27 09:38:24 +02:00
Simon Friis Vindum
ba4950fb89 Rust: Accept test changes 2025-05-27 09:35:40 +02:00
Simon Friis Vindum
5278064407 Rust: Only include relevant AST nodes in TypeMention 2025-05-27 09:35:30 +02:00
Simon Friis Vindum
96cba8b8c2 Rust: Add inconsistency check for type mentions without a root type 2025-05-27 09:33:59 +02:00
Simon Friis Vindum
bf2cfab931 Merge pull request #19575 from paldepind/rust/function-call-method
Rust: Resolve function calls to traits methods
2025-05-27 09:28:36 +02:00
Paolo Tranquilli
c3af98b5cd Rust: skip unexpanded stuff in library emission
This will skip all unexpanded entities in library extraction, where we
only really care about expanded things. This means skipping:

* the token tree of macro calls
* the unexpanded AST of attribute macros

In the latter case, in order to replace the single `Item` with its
expansion (which is a `MacroItems` entity), we wrap the `MacroItems` in
a dummy `MacroCall` with null path.
2025-05-27 09:09:07 +02:00
Paolo Tranquilli
b99b25cc9c Merge pull request #19572 from github/redsun82/rust-macro
Rust: turn off macro expansion in code to be expanded by attribute macros
2025-05-27 08:29:20 +02:00
Arthur Baars
765afdbae0 Rust: add option to extract dependencies as source files 2025-05-26 18:21:35 +02:00
Jeroen Ketema
f17076e212 Swift: Update expected test results 2025-05-26 16:41:05 +02:00
Jeroen Ketema
b4d2fb45ab Swift: Fix type string representation 2025-05-26 16:22:20 +02:00
Simon Friis Vindum
0ce06e8818 Rust: Use member predicate from path resolution 2025-05-26 15:12:33 +02:00
Napalys Klicius
e964b175e6 Added maintainability and error-handling tags 2025-05-26 14:23:20 +02:00
Paolo Tranquilli
a749cf934a Rust: accept test changes 2025-05-26 14:15:56 +02:00
Tom Hvitved
ba7726462f Rust: Also include prelude path resolution in Core 2025-05-26 12:17:25 +02:00
Paolo Tranquilli
add3c941a2 Merge branch 'main' into redsun82/rust-macro 2025-05-26 11:47:58 +02:00
Napalys Klicius
37024ade85 JS: Move query suite selector logic to javascript-security-and-quality.qls 2025-05-26 11:00:48 +02:00
Paolo Tranquilli
1005994f34 Merge branch 'main' into redsun82/rust-extract-libs 2025-05-26 10:58:22 +02:00
Anders Schack-Mulligen
a519eabd4d Merge pull request #19571 from aschackmull/rangeanalysis/guards
Rangeanalysis: Simplify Guards integration.
2025-05-26 10:36:22 +02:00
Jeroen Ketema
27fd7c48fa Swift: Update macOS runner 2025-05-26 10:17:19 +02:00
Paolo Tranquilli
292cd34efe Rust: fix format 2025-05-26 10:11:55 +02:00
Tom Hvitved
fcfe0a27aa Merge pull request #19570 from hvitved/type-inference/simplify-type-path-repr
Type inference: Simplify internal representation of type paths
2025-05-26 10:05:50 +02:00
Paolo Tranquilli
e37a24a0d0 Rust: minor refactoring 2025-05-26 09:54:01 +02:00
Paolo Tranquilli
a946de48fd Merge branch 'main' into redsun82/rust-extract-libs 2025-05-26 09:00:31 +02:00
Jeroen Ketema
bb9c72f889 Swift: Update to Swift 6.1.1 2025-05-25 21:13:18 +02:00
Simon Friis Vindum
e778cbe768 Rust: Resolve function calls to traits methods 2025-05-24 10:25:46 +02:00
Simon Friis Vindum
e4d1b01361 Rust: Add type inference test with function call to trait method 2025-05-24 08:56:33 +02:00
Tom Hvitved
16690cc3cc Merge pull request #19506 from github/aibaars/rust-extract-libs 2025-05-24 06:09:50 +02:00
Arthur Baars
5b28ff1116 Merge branch 'main' into aibaars/rust-extract-libs 2025-05-23 22:05:29 +02:00
Jeroen Ketema
10f6e1ceb8 C++: Add change note 2025-05-23 19:17:17 +02:00
Jeroen Ketema
fbc9615287 C++: Update expected test results 2025-05-23 16:03:47 +02:00
Jeroen Ketema
a77ddd7532 C++: Add Windows command line and environment models 2025-05-23 15:56:09 +02:00
Jeroen Ketema
b800040c73 C++: Add tests for various local Windows dataflow sources 2025-05-23 15:55:02 +02:00
Joe Farebrother
c070d04231 Fix qhelp 2025-05-23 14:31:13 +01:00
Joe Farebrother
e933a27cd9 Add changenote 2025-05-23 14:25:38 +01:00
Joe Farebrother
b15fec0fb9 Fix qhelp and tests 2025-05-23 14:17:21 +01:00
Mathias Vorreiter Pedersen
0822ded899 Merge pull request #19569 from MathiasVP/fix-return-value-surces-in-mad
Shared/C++: Handle non-standard return values in MaD flow sources/sinks
2025-05-23 13:58:26 +01:00
Paolo Tranquilli
5c294617c5 Rust: update a comment 2025-05-23 14:43:18 +02:00
Anders Schack-Mulligen
5b21188e0d C#: Sync. 2025-05-23 14:17:21 +02:00
Joe Farebrother
44a678a3f4 remove redundant import 2025-05-23 13:16:13 +01:00
Joe Farebrother
06504f2cb6 Update tests 2025-05-23 13:04:56 +01:00
Tom Hvitved
c8ff69af9a Rust: Fix bad join 2025-05-23 13:57:19 +02:00
Napalys Klicius
000e69fd48 Replaced fuzzy NonNodeStream MaD to a ql predicate to deal easier with submodules 2025-05-23 13:55:40 +02:00
Anders Schack-Mulligen
62000319fe Rangeanalysis: Simplify Guards integration. 2025-05-23 13:39:53 +02:00
Tom Hvitved
05288d3952 Type inference: Simplify internal representation of type paths 2025-05-23 13:36:58 +02:00
Napalys Klicius
248f83c4db Added qhelp for UnhandledStreamPipe query 2025-05-23 13:35:36 +02:00
Anders Schack-Mulligen
1b2d23b23c Merge pull request #19567 from aschackmull/ssa/branchedge
SSA: Distinguish between has and controls branch edge.
2025-05-23 13:35:04 +02:00
Anders Schack-Mulligen
f4fb717a34 SSA: Add change note. 2025-05-23 12:49:01 +02:00
Mathias Vorreiter Pedersen
92e0b64307 Shared: Fix QLDoc. 2025-05-23 11:43:27 +01:00
yoff
909c1bbcd9 Merge pull request #19494 from neilmendum/actions/more-minimal-permission
actions: add some missing permissions
2025-05-23 12:42:10 +02:00
Anders Schack-Mulligen
893cb592b5 SSA: Elaborate qldoc a bit. 2025-05-23 12:35:30 +02:00
Napalys Klicius
c6db32ed73 Add exceptions for arktype, execa, and highland to prevent them from being flagged by unhandled pipe error query 2025-05-23 12:34:11 +02:00
Napalys Klicius
15ff7cb41a Added more test cases which common js libraries uses .pipe() 2025-05-23 12:30:49 +02:00
Mathias Vorreiter Pedersen
cf39103df3 C++: Accept test changes. 2025-05-23 11:19:25 +01:00
Mathias Vorreiter Pedersen
07c4eca4d8 C++: Implement the new predicate for C++. 2025-05-23 11:16:49 +01:00
Mathias Vorreiter Pedersen
69ea19cb8b Shared: Add a 'getReturnValueKind' predicate and use it in 'interpretOutput' and 'interpretInput' to handle non-standard return value input/output. This is needed to support C++'s ReturnValue[**] notation. 2025-05-23 11:16:29 +01:00
Paolo Tranquilli
01e22b7266 Rust: remove wrong comment 2025-05-23 12:01:50 +02:00
Paolo Tranquilli
5183d1610f Rust: enhance macro expansion integration test 2025-05-23 12:01:33 +02:00
Paolo Tranquilli
31b48e18e6 Rust: fix BadCtorInitialization test 2025-05-23 12:01:14 +02:00
Paolo Tranquilli
abf21ba767 Rust: skip macro expansion in unexpanded attribute macro AST 2025-05-23 12:01:00 +02:00
Paolo Tranquilli
32cece3a43 Rust: adapt BadCtorInitialization.ql to attribute macro expansion 2025-05-23 12:00:42 +02:00
Joe Farebrother
f27057a747 Update qhelp 2025-05-23 10:56:43 +01:00
Arthur Baars
23b4e5042f Rust: update expected output 2025-05-23 11:18:23 +02:00
Arthur Baars
b62d52ede0 Rust: prevent source files from being extracted in both source and library mode
When analysing a repository with multiple separate but related sub-projects there is a
risk that some source file are extracted in library mode as well as source  mode.

To prevent this we pre-fill 'processed_files' set with all source files, even though they have
not be processed yet, but are known to be processed later..

This prevents source file to be
2025-05-23 10:35:16 +02:00
Anders Schack-Mulligen
1d30103559 SSA: Distinguish between has and controls branch edge. 2025-05-23 09:56:22 +02:00
Michael Nebel
c046a306ba Merge pull request #19566 from github/workflow/coverage/update
Update CSV framework coverage reports
2025-05-23 08:45:06 +02:00
Arthur Baars
df99e06c81 Rust: temporarily disable attribute macro expansion in library mode 2025-05-23 07:47:31 +02:00
github-actions[bot]
372d1c68a4 Add changed framework coverage reports 2025-05-23 00:23:59 +00:00
Nicolas Will
47ffa3cedf Merge pull request #19553 from bdrodes/generic_constant_filtering
Crypto: Improve literal filtering for OpenSSL for algorithms and generic sources
2025-05-23 00:34:45 +02:00
Owen Mansel-Chan
fb92999f8a Add bigquery to frameworks.csv
Also fix up github.com/kanikanema/gorqlite
2025-05-22 22:02:20 +01:00
REDMOND\brodes
007683f06a Crypto: Simplifying constant comparisons. 2025-05-22 14:06:13 -04:00
REDMOND\brodes
28f48246fc Crypto: Adding signature constant support, and fixing key exchange and signature mapping for ED and X elliptic curve variants. 2025-05-22 13:13:35 -04:00
REDMOND\brodes
ca1d4e270a Crypto: Separating out an IntLiteral class so it is clearer that some constraints for generic input sources are heuristics to filter sources, and other constraints narrow the literals to a general type (ints). Also adding fixes in KnownAlgorithmConstants to classify some algorithms as key exchange and signature correctly, and added support for a signature constant wrapper. 2025-05-22 12:53:11 -04:00
Napalys Klicius
b10a9481f3 Fixed false positives from strapi and rxjs/testing as well as when one passes function as second arg to pipe 2025-05-22 18:50:02 +02:00
Napalys Klicius
e6ae8bbde4 Added test cases where second parameter passed to pipe is a function and some popular library ones 2025-05-22 18:50:01 +02:00
Napalys Klicius
ac24fdd348 Add predicate to detect non-stream-like usage in sources of pipe calls 2025-05-22 18:49:59 +02:00
Napalys Klicius
5b1af0c0bd Added detection of custom gulp-plumber sanitizer, thus one would not flag such instances. 2025-05-22 18:49:53 +02:00
Geoffrey White
9ac24c7f4f Merge branch 'main' into moresensitive 2025-05-22 16:11:12 +01:00
Geoffrey White
09dd00089b Merge pull request #19546 from geoffw0/logsinks
Rust: Models for log_err
2025-05-22 16:06:26 +01:00
REDMOND\brodes
570fdeb254 Crypto: Code Cleanup (+1 squashed commits)
Squashed commits:

[417734cc3c] Crypto: Fixing typo (+1 squashed commits)

Squashed commits:

[1ac3d5c7d4] Crypto: Fixing typo caused by AI auto complete.
2025-05-22 10:52:19 -04:00
REDMOND\brodes
a5b57d3694 Merge branch 'main' into generic_constant_filtering
# Conflicts:
#	cpp/ql/lib/experimental/quantum/Language.qll
#	cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll
#	cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll
2025-05-22 10:37:10 -04:00
REDMOND\brodes
09170e598c Crypto: Making generic literal filter more explicit that it is for filtering all constants, not just for algorithms. 2025-05-22 10:31:58 -04:00
Geoffrey White
dc280c6fb7 Rust: Add missing assignment class relations. 2025-05-22 15:23:29 +01:00
Owen Mansel-Chan
46a6b8ad07 Add change note 2025-05-22 15:21:51 +01:00
Owen Mansel-Chan
66bbaf2dc8 Add tests for cloud.google.com/go/bigquery.Client.Query 2025-05-22 15:16:12 +01:00
Owen Mansel-Chan
c0187aff73 Add model for cloud.google.com/go/bigquery.Client.Query 2025-05-22 15:15:54 +01:00
Owen Mansel-Chan
663c83d8c6 Merge pull request #19556 from owen-mc/java/pr/19512
Java: Fix SpringRequestMappingMethod URL Extraction #2
2025-05-22 15:08:31 +01:00
Owen Mansel-Chan
8b68d95231 Merge pull request #19560 from owen-mc/java/add-stringreplaceallwithnonregex-test
Java: Add test showing correct usage
2025-05-22 15:07:58 +01:00
Paolo Tranquilli
4995137145 Merge pull request #19550 from github/redsun82/git-ignore-db-upgrade-checks-files
DevEx: add temporary files created by some checks to `.gitignore`
2025-05-22 15:32:02 +02:00
Owen Mansel-Chan
79453cc103 Add test showing correct usage 2025-05-22 14:30:32 +01:00
Owen Mansel-Chan
476ada13db Improve QLDoc for SpringRequestMappingMethod.getAValue 2025-05-22 14:22:28 +01:00
Michael Nebel
4c818c00f3 Merge pull request #19480 from michaelnebel/csharp/updatemodels
C#: Re-generate .NET 9 Runtime models.
2025-05-22 15:04:53 +02:00
Paolo Tranquilli
38c5c65927 Merge pull request #19558 from jketema/swift-clarify
Swift: Clarify the tag in the Swift updating doc
2025-05-22 15:01:02 +02:00
Geoffrey White
b22ce5515f Rust: Make RefExpr an Operation. 2025-05-22 13:52:13 +01:00
Geoffrey White
b8f0e4d7e0 Rust: Use DerefExpr. 2025-05-22 13:52:08 +01:00
Geoffrey White
6c19cecb07 Rust: Add DerefExpr class. 2025-05-22 13:50:30 +01:00
Geoffrey White
fafdc1d181 Rust: Add BitwiseOperation library. 2025-05-22 13:50:29 +01:00
Geoffrey White
11480d29b7 Rust: Add ArithmeticOperation library. 2025-05-22 13:50:24 +01:00
Paolo Tranquilli
7e917c9c35 Rust: move body skipping logic to code generation 2025-05-22 14:44:42 +02:00
Jeroen Ketema
b8fe1a676a Swift: Clarify the tag in the Swift updating doc 2025-05-22 14:43:17 +02:00
Geoffrey White
d27596a0b2 Merge pull request #19535 from geoffw0/operations2
Rust: Add ComparisonOperation library.
2025-05-22 13:41:53 +01:00
Simon Friis Vindum
c4bbfbc865 Merge pull request #19555 from paldepind/rust/timpl
Rust: Remove unused impl type
2025-05-22 13:54:15 +02:00
Arthur Baars
a4788fd816 Rust: update expected output 2025-05-22 13:36:38 +02:00
Owen Mansel-Chan
45475c5c1d Add change note 2025-05-22 12:29:31 +01:00
Owen Mansel-Chan
59d4f039d8 Deprecate SpringRequestMappingMethod.getValue (which didn't work) 2025-05-22 12:29:29 +01:00
Owen Mansel-Chan
708bbe391e Add test for SpringRequestMappingMethod.getAValue 2025-05-22 12:22:34 +01:00
Owen Mansel-Chan
775338ebdd Rename getArrayValue to getAValue 2025-05-22 12:21:20 +01:00
Asger F
9202a1b084 Merge pull request #19516 from asgerf/js/npm-package-name-join
JS: More efficient nested package naming
2025-05-22 12:46:43 +02:00
Napalys Klicius
b1048719aa Added UnhandledStreamPipe to javascript-security-and-quality.qls and javascript-code-quality.qls 2025-05-22 12:42:56 +02:00
Napalys Klicius
09220fce84 Fixed issue where pipe calls from rxjs package would been identified as pipe calls on streams 2025-05-22 12:33:36 +02:00
Napalys Klicius
d7f86db76c Enhance PipeCall to exclude non-function and non-object arguments in pipe method detection 2025-05-22 12:31:27 +02:00
Napalys Klicius
4332de464a Eliminate false positives by detecting non-stream objects returned from pipe() calls based on accessed properties 2025-05-22 12:31:26 +02:00
Napalys Klicius
5710f0cf51 Add test cases for non-stream field accesses and methods before and after pipe operations 2025-05-22 12:31:19 +02:00
Geoffrey White
852203911a Rust: Equal -> Equals. 2025-05-22 11:13:56 +01:00
Arthur Baars
7e5f6523c5 Rust: disable ResolvePaths when extracting library source files 2025-05-22 11:35:54 +02:00
Tom Hvitved
76737cb53a Rust: Follow-up changes after rebase 2025-05-22 10:22:03 +02:00
Simon Friis Vindum
36f5e78a7e Rust: Remove unused impl type 2025-05-22 10:17:44 +02:00
Joe Farebrother
7b452a1611 Add case for wrappers 2025-05-22 09:01:15 +01:00
Arthur Baars
28be2086ad Rust: drop too noisy log statements 2025-05-22 09:53:43 +02:00
Arthur Baars
a6cd60f20e Rust: address comments 2025-05-22 09:53:41 +02:00
Arthur Baars
fa1a21b20d Rust: reduce log-level of diagnostics when extracting library files 2025-05-22 09:53:39 +02:00
Arthur Baars
2a93b2a499 Rust: integration-tests: update output 2025-05-22 09:53:37 +02:00
Arthur Baars
1eaa491f39 Rust: update integration tests 2025-05-22 09:53:36 +02:00
Arthur Baars
c69aa224c7 Rust: restrict to library files 2025-05-22 09:53:34 +02:00
Tom Hvitved
9ee0d2e6cf Rust: Exclude flow summary nodes from DataFlowStep.ql 2025-05-22 09:53:32 +02:00
Arthur Baars
f093c496d5 Rust: normalize file paths for PathResolutionConsistency.ql 2025-05-22 09:53:31 +02:00
Arthur Baars
81f0e4202a Rust: improve ExtractionConsistency.ql 2025-05-22 09:53:29 +02:00
Arthur Baars
76da2e41f7 Rust: drop crate_graph/modules.ql test 2025-05-22 09:53:28 +02:00
Arthur Baars
e90ab7b881 Rust: fix diagnostics tests 2025-05-22 09:53:27 +02:00
Arthur Baars
457632e10e Rust: update UncontrolledAllocationSize.expected 2025-05-22 09:53:24 +02:00
Arthur Baars
5ee7658921 Rust: update DataFlowStep.expected 2025-05-22 09:53:23 +02:00
Arthur Baars
3761099de9 Rust: drop Param::pat when extracting libraries 2025-05-22 09:53:21 +02:00
Arthur Baars
67846f1d50 fixup TestUtils 2025-05-22 09:53:18 +02:00
Arthur Baars
643059ed34 Rust: fix type-interence file paths 2025-05-22 09:53:13 +02:00
Arthur Baars
44a404571f Rust: fixes 2025-05-22 09:53:12 +02:00
Tom Hvitved
456a4b2be8 Rust: Make dataflow/modeled pass by not using #[derive(Clone)] 2025-05-22 09:53:09 +02:00
Arthur Baars
1269a2e8a0 Rust: fix extractor-tests 2025-05-22 09:53:08 +02:00
Tom Hvitved
8996f9e61c Rust: Follow-up work to make path resolution and type inference tests pass again 2025-05-22 09:53:03 +02:00
Arthur Baars
0bb0a70fb7 Rust: add upgrade/downgrade scripts 2025-05-22 09:52:11 +02:00
Arthur Baars
980cebeef8 Rust: fix QL code after removing Crate::getModule() 2025-05-22 09:52:08 +02:00
Arthur Baars
f05bed685d Rust: remove module data from Crate elements 2025-05-22 09:51:34 +02:00
Arthur Baars
dd5c487628 Rust: extract source files of depdendencies 2025-05-22 09:51:33 +02:00
Michael Nebel
bae16f07ff C#: Change note. 2025-05-22 08:42:37 +02:00
Tom Hvitved
cb59795474 Merge pull request #19134 from hvitved/rust/canonical-path
Rust: Compute canonical paths in QL
2025-05-22 08:38:31 +02:00
REDMOND\brodes
100045d4cb Crypto: optimizing out the "getPossibleNidFromLiteral" predicate, and now relying on the charpred of OpenSSLAlgorithmCandidateLiteral. 2025-05-21 18:25:29 -04:00
REDMOND\brodes
a36fd2cb31 Crypto: Advanced literal filtering for OpenSSL, used for both unknown and known algorithm literals to improve dataflow performance. 2025-05-21 18:15:44 -04:00
Owen Mansel-Chan
463a711552 Use reflection for interface nil check instead 2025-05-21 22:22:10 +01:00
Nicolas Will
bb4c6a316e Merge pull request #19552 from bdrodes/ben_refactoring
Crypto: Misc. refactoring and code clean up.
2025-05-21 22:24:12 +02:00
REDMOND\brodes
d75fc2e8ec Crypto: Further code cleanup 2025-05-21 15:25:04 -04:00
Ben Rodes
5370bb4e45 Merge branch 'main' into ben_refactoring 2025-05-21 15:07:53 -04:00
REDMOND\brodes
bbee2c9bdf Crypto: Misc. refactoring and code clean up. 2025-05-21 15:06:46 -04:00
Tom Hvitved
41e4adaf5d Merge pull request #19534 from hvitved/rust/type-inference-performance
Rust: Improve performance of type inference
2025-05-21 20:56:52 +02:00
Nicolas Will
9cc121f414 Merge pull request #19545 from bdrodes/missing_openssl_hash_algorithm_consumers
Quantum: Model missing OpenSSL EVP digest consumers
2025-05-21 19:03:06 +02:00
Nicolas Will
9637aeca5e Merge pull request #19547 from bdrodes/openssl_pkey_alg_value_consumers
Quantum: Add OpenSSL PKEY algorithm value consumers.
2025-05-21 19:00:36 +02:00
Geoffrey White
3551d4488f Merge branch 'main' into logsinks 2025-05-21 17:40:06 +01:00
Geoffrey White
355864dd93 Merge branch 'main' into pin 2025-05-21 17:24:00 +01:00
Nicolas Will
acb19627d6 Merge branch 'main' into missing_openssl_hash_algorithm_consumers 2025-05-21 18:01:28 +02:00
REDMOND\brodes
9f65cb8c4c Comment/doc cleanup 2025-05-21 11:51:25 -04:00
Simon Friis Vindum
1828d408b7 Merge pull request #19549 from paldepind/rust/type-inference-operators
Rust: Type inference for non-overloadable operators
2025-05-21 17:25:44 +02:00
Nicolas Will
48e484b438 Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-21 16:26:11 +02:00
Nicolas Will
7ee1bd61fb Merge pull request #19541 from bdrodes/openssl_ec_key_gen
Openssl ec key gen
2025-05-21 16:13:05 +02:00
Michael Nebel
008d5b7081 C#: Update test expected output. 2025-05-21 15:20:15 +02:00
Michael Nebel
19e9197874 C#: The field access should be on this for it to be compatible with readonly. 2025-05-21 15:19:26 +02:00
Michael Nebel
8108c72c17 C#: Exclude structs from being flagged in cs/missed-readonly-modifier. 2025-05-21 15:19:25 +02:00
Michael Nebel
28cd8a827a C#: Add more test examples for cs/missing-readonly-modifier. 2025-05-21 15:18:32 +02:00
Geoffrey White
f660bcdd25 Merge pull request #19446 from geoffw0/tokio
Rust: Model std::net and tokio `fs`, `io`, `net`
2025-05-21 13:42:33 +01:00
Paolo Tranquilli
be44c6ed45 DevEx: add temporary files created by some checks to .gitignore 2025-05-21 14:19:57 +02:00
Tom Hvitved
13861b81a8 Address review comments 2025-05-21 14:10:32 +02:00
Anders Schack-Mulligen
00c7bc1e70 Merge pull request #19505 from aschackmull/java/basicblock
Java: Use the shared BasicBlocks library.
2025-05-21 13:37:19 +02:00
Simon Friis Vindum
666726c935 Rust: Infer types for non-overloadable operators 2025-05-21 13:03:23 +02:00
Simon Friis Vindum
fafae89502 Rust: Add unit type 2025-05-21 13:03:22 +02:00
Simon Friis Vindum
0dcf15bf77 Rust: Add type inference tests for operators 2025-05-21 13:03:16 +02:00
Geoffrey White
4ebf3adfdf Rust: Address review comments. 2025-05-21 11:02:48 +01:00
Joe Farebrother
bedd44a287 Update query and add case for iter(self.__next__, None) 2025-05-21 11:02:24 +01:00
Napalys Klicius
03d1f9a7d3 Restrict pipe detection to calls with 1-2 arguments 2025-05-21 11:41:22 +02:00
Napalys Klicius
30f2815503 Fixed issue where a custom pipe method which returns non stream would be flagged by the query 2025-05-21 11:41:19 +02:00
Napalys Klicius
ef1bde554a Fixed issue where streams would not be tracked via chainable methods 2025-05-21 11:40:35 +02:00
Napalys Klicius
f39bf62fc6 test: Add edge cases for stream pipe error handling
Add tests for chained stream methods and non-stream pipe objects
2025-05-21 11:39:03 +02:00
Napalys Klicius
c27157f021 Add UnhandledStreamPipee Quality query and tests to detect missing error handlers in Node.js streams 2025-05-21 11:38:57 +02:00
Michael Nebel
3a1cd3f734 C#: Add cs/missed-readonly-modifier to the code-quality suite. 2025-05-21 11:34:40 +02:00
Michael Nebel
5941b3081c C#: Convert tests for cs/missed-readonly-modifier to inline expectatations. 2025-05-21 11:34:38 +02:00
Geoffrey White
053da5530f Rust: Accept test changes after merge with main. 2025-05-21 10:17:14 +01:00
Michael Nebel
2952c0d2b4 Merge pull request #19507 from michaelnebel/removehardcodedpassword
Exclude some queries from query suites by lowering their precision.
2025-05-21 11:13:14 +02:00
Geoffrey White
b89560878e Merge branch 'main' into logsinks 2025-05-21 09:22:25 +01:00
Geoffrey White
95289b8fc8 Merge branch 'main' into operations2 2025-05-21 09:18:51 +01:00
Geoffrey White
ea9531f3ea Merge branch 'main' into tokio 2025-05-21 09:17:45 +01:00
Paolo Tranquilli
789e881254 Merge pull request #19542 from github/redsun82/rust-ignore-target-in-qltest
Rust: ignore `target` in `qltest`
2025-05-21 09:32:48 +02:00
Tom Hvitved
93c8507ebc Rust: Run codegen 2025-05-21 09:22:09 +02:00
Tom Hvitved
b7f8b79f0e Rust: Calculate canonical paths in QL 2025-05-21 09:22:07 +02:00
Anders Schack-Mulligen
10efea1075 Java/Shared: Address review comments. 2025-05-21 09:01:47 +02:00
Anders Schack-Mulligen
3fde675d08 Java: Extend qldoc. 2025-05-21 09:01:47 +02:00
Anders Schack-Mulligen
a98d93b98b Java: Override dominates to reference the right type. 2025-05-21 09:01:46 +02:00
Anders Schack-Mulligen
6b830faa62 Java: Add change note. 2025-05-21 09:01:46 +02:00
Anders Schack-Mulligen
db01828717 Java: Deprecate redundant basic block predicates. 2025-05-21 09:01:46 +02:00
Anders Schack-Mulligen
13c5906e7e Shared: Refactor the shared BasicBlock lib slightly and cache the successor relation. 2025-05-21 09:01:45 +02:00
Anders Schack-Mulligen
f202586f5e Java: Use the shared BasicBlocks library. 2025-05-21 09:01:45 +02:00
REDMOND\brodes
6ffb049b75 Crypto: Adding alg value consumers for EVP PKEY for openssl. As part of the additional modeling, updated the generic dataflow source to match JCA with how "EC" is handled as a consumed algorithm for PKEY. 2025-05-20 14:18:33 -04:00
Geoffrey White
e96e39c3d3 Rust: Model log_err. 2025-05-20 17:51:15 +01:00
Geoffrey White
e5af459787 Rust: Correct what we're testing here. 2025-05-20 17:30:49 +01:00
REDMOND\brodes
d35fc64987 Crypto: Missing openssl EVP digest consumers. 2025-05-20 11:23:27 -04:00
Ben Rodes
efd9386d6e Update cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-20 10:58:19 -04:00
REDMOND\brodes
c3ed4549f4 Crypto: Changing fixed key size for the key gen operation for EC key gen to be none, and rely implicitly on the connected algorithm length. (+1 squashed commits) (+1 squashed commits)
Squashed commits:

[b7cd7baa42] Crypto: Modeled EC key gen for openssl. (+1 squashed commits)
2025-05-20 10:39:21 -04:00
REDMOND\brodes
b56472436e Crypto: Alterations to OpenSSL cipher algorithms to use new fixed keysize predicate. 2025-05-20 10:36:56 -04:00
Paolo Tranquilli
799c39bc9b Rust: ignore target in qltest
The target file created by `cargo check` was causing problems in
language tests.

We might want to also ignore `target` by default in the production
indexing, but I'll leave that for further discussion.
2025-05-20 16:30:05 +02:00
Geoffrey White
355e440fdf Rust: Make the new test cases work. 2025-05-20 15:25:14 +01:00
Geoffrey White
3b40a5875a Rust: Add test cases (generated by LLM). 2025-05-20 15:21:32 +01:00
Asger F
d644f80921 JS: Remove obsolete meta query 2025-05-20 16:20:49 +02:00
Simon Friis Vindum
c68579bd0d Merge pull request #19499 from paldepind/rust-bulk-model-generator
Rust: Bulk model generator
2025-05-20 15:30:16 +02:00
Tamás Vajk
1baf6d67fc Merge pull request #19536 from tamasvajk/test/sdk-version
C#: Update SDK version in integration test
2025-05-20 14:36:34 +02:00
Owen Mansel-Chan
83cd349531 Change variable name and add comment 2025-05-20 13:13:26 +01:00
Owen Mansel-Chan
47dac64301 fix previous commit 2025-05-20 13:13:25 +01:00
Owen Mansel-Chan
d5044fd072 Deal better with Windows paths 2025-05-20 13:13:24 +01:00
Owen Mansel-Chan
401c60654e Fix nil checks to stop creating unused labels
In go, an interface with value nil does not compare equal to nil. This
is known as "typed nils". So our existing nil checks weren't working,
which shows why we needed more nil checks inside the type switches. The
solution is to explicitly check for each type we care about.
2025-05-20 13:13:22 +01:00
Owen Mansel-Chan
d39e7c2066 Added named import to definitions test
This makes the test slightly more thorough.
2025-05-20 13:13:21 +01:00
Owen Mansel-Chan
14af9218b2 Check more things while running tests 2025-05-20 13:13:20 +01:00
Tamas Vajk
72730368f6 Update SDK version in integration test 2025-05-20 13:47:12 +02:00
Asger F
b698b4e5e2 JS: Add test for missing type flow through generics 2025-05-20 13:20:38 +02:00
Asger F
11607e5f62 JS: Update TRAP after extractor change 2025-05-20 13:20:36 +02:00
Asger F
9bcc62002d JS: Fix regression from global declare vars 2025-05-20 13:20:35 +02:00
Asger F
27979c6a2f JS: Add regression tests for declared globals 2025-05-20 13:20:34 +02:00
Asger F
b610e10122 JS: Accept change in handling of variable resolution in face of ambient declarations
This test enforced the opinion that ambient declarations should have no impact on data flow, which is no longer the case. For now I'm just updating the test output.
2025-05-20 13:20:33 +02:00
Asger F
22a41142de JS: Accept regression in overload resolution
Overload resolution has little impact on data flow analysis, because there we care about the concrete implementation of the function, which is the same for all overloads. It can affect the return type, which in turn can affect the call graph we generate, but we'll just have to accept this as overload resolution is too hard without negative recursion.
2025-05-20 13:20:31 +02:00
Asger F
de7d851195 JS: Update output of old HasUnderlyingType test 2025-05-20 13:20:30 +02:00
Asger F
bba872a3a4 JS: Make jump-to-def behave nicer 2025-05-20 13:20:28 +02:00
Asger F
b8dc1b3125 JS: Remove redundant casts 2025-05-20 13:20:27 +02:00
Asger F
fbafd6fff1 JS: Update to avoid deprecations after import resolution change 2025-05-20 13:20:26 +02:00
Asger F
e07a03619d JS: Mark type-annotated nodes as SourceNode 2025-05-20 13:20:24 +02:00
Asger F
6e82b6eb1f JS: Add failing test for assigning a non-SourceNode to a type annotated-value 2025-05-20 13:20:23 +02:00
Asger F
167f752301 JS: Also propagate through promise types 2025-05-20 13:20:21 +02:00
Asger F
500291dd54 JS: Hide shadowed inherited members 2025-05-20 13:20:20 +02:00
Asger F
f06b9a9b2b JS: Add call graph test with types 2025-05-20 13:20:19 +02:00
Asger F
307715a5cd JS: Use type resolution for CG augmentation 2025-05-20 13:20:17 +02:00
Asger F
57811edc44 JS: Some test updates 2025-05-20 13:20:16 +02:00
Asger F
989402d7b7 JS: Remove some dependencies on type extraction 2025-05-20 13:20:14 +02:00
Asger F
6ac35f1c66 JS: Use in MissingAwait 2025-05-20 13:20:13 +02:00
Asger F
4e44fdaa7b JS: Use hasUnderlyingStringOrAnyType in Nest model 2025-05-20 13:20:12 +02:00
Asger F
6fdd7feed4 JS: Use sanitizing primitive type in Nest model 2025-05-20 13:20:10 +02:00
Asger F
2d21074598 JS: Use sanitizing primitive types in ViewComponentInput 2025-05-20 13:20:09 +02:00
Asger F
9fd85c9688 JS: Update jQuery model 2025-05-20 13:20:07 +02:00
Asger F
cca48c09b9 JS: Use in TypeAnnotation.getClass and hasUnderlyingType predicates 2025-05-20 13:20:06 +02:00
Asger F
b923eac9be JS: Use underlying types in DataFlow::Node 2025-05-20 13:20:04 +02:00
Asger F
fc580a5f78 JS: Add TypeResolution.qll 2025-05-20 13:20:03 +02:00
Asger F
d61f576324 JS: Add UnderlyingTypes.qll 2025-05-20 13:20:01 +02:00
Asger F
1533e134a5 JS: Add NameResolution.qll 2025-05-20 13:20:00 +02:00
Asger F
1051136c07 JS: Add test 2025-05-20 13:19:58 +02:00
Asger F
4bfb0483a8 JS: Resolve JSDocLocalTypeAccess to a variable in scope 2025-05-20 13:19:57 +02:00
Asger F
9566265356 JS: Add helper for getting local type names 2025-05-20 13:19:56 +02:00
Asger F
4cd6f45572 JS: Avoid accidental recursion with API graphs 2025-05-20 13:19:54 +02:00
Asger F
b5a4fc0041 JS: Make Closure concepts based on AST instead 2025-05-20 13:19:52 +02:00
Asger F
50e4ac8298 JS: Do not ignore variables from ambient declarations 2025-05-20 13:19:51 +02:00
Asger F
9fc0b8c9cc JS: Add ImportSpecifier.getImportDeclaration() 2025-05-20 13:19:50 +02:00
Asger F
5064cd5d94 JS: Exclude externs from CallGraph meta-query 2025-05-20 13:19:48 +02:00
Geoffrey White
bfb15cd88f Rust: Accept changes to other tests. 2025-05-20 11:13:00 +01:00
Geoffrey White
204260e244 Rust: Uncomment calls to test functions. 2025-05-20 10:59:23 +01:00
Geoffrey White
bd004abeae Rust: Remove redundant import. 2025-05-20 10:35:41 +01:00
Geoffrey White
0feade467d Update rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-20 10:35:02 +01:00
Geoffrey White
2b65eebbc8 Rust: QLDoc. 2025-05-20 10:33:42 +01:00
Geoffrey White
ca1437adf1 Rust: Move the getGreaterOperand/getLesserOperand predicates into RelationalOperation. 2025-05-20 10:19:11 +01:00
Geoffrey White
bc4b69bb93 Rust: Add ComparisonOperation library. 2025-05-20 10:07:48 +01:00
Tom Hvitved
3fa4ea4da3 Rust: Improve performance of type inference 2025-05-20 10:23:18 +02:00
Paolo Tranquilli
860b3d76a8 Merge pull request #19525 from github/redsun82/go-win
Go: move to standard windows runner
2025-05-20 10:07:56 +02:00
Simon Friis Vindum
5f524ef39f Merge pull request #19372 from paldepind/rust-ti-implementing-type-method
Rust: Support non-universal `impl` blocks
2025-05-20 10:03:55 +02:00
Simon Friis Vindum
eb5d4efb26 Merge branch 'main' into rust-ti-implementing-type-method 2025-05-20 09:53:51 +02:00
Simon Friis Vindum
98c6783ed9 Rust: Rename predicate and inline predicate only used once 2025-05-20 09:20:35 +02:00
Owen Mansel-Chan
f6f6a5ccc6 Only list type params in test files
This will make the test results not depend on the version of the
standard library being used, which means we don't have to update it with
each new release.
2025-05-20 02:25:24 +01:00
Jon Janego
9d65b5f85c Merge pull request #19531 from github/changedocs-2.21.3
Changenotes for 2.21.3
2025-05-19 19:00:47 -05:00
Jon Janego
7570f503ce Escaping more problematic asterisks 2025-05-19 17:06:29 -05:00
Jon Janego
e5efe83243 Fixing upstream backticks around problematic characters so that the RST generator doesn't choke on asterisks 2025-05-19 17:03:23 -05:00
Jon Janego
759ad8adc1 Fixing Go 1.24 release accuracy. It went supported in 2.20.5 and docs were a late commit so this fixes it upstream. 2025-05-19 16:53:05 -05:00
Jon Janego
b9841dccfb Fixing more upstream typos 2025-05-19 16:45:08 -05:00
Jon Janego
3bd2f85a8e Fixing some upstream typos etc 2025-05-19 16:33:45 -05:00
Nicolas Will
a01d5e6fa7 Merge pull request #19528 from bdrodes/openssl_elliptic_curve_algorithm_instances_and_consumers
Crypto: Add OpenSSL elliptic curve algorithm instances and consumers
2025-05-19 23:12:30 +02:00
Geoffrey White
94b57ac9a9 Update rust/ql/test/library-tests/dataflow/modeled/main.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-19 21:49:02 +01:00
Ben Rodes
55119cf770 Merge branch 'main' into openssl_elliptic_curve_algorithm_instances_and_consumers 2025-05-19 15:50:00 -04:00
REDMOND\brodes
4309499c36 Switching to private imports. 2025-05-19 15:44:15 -04:00
Jon Janego
fce5b4d43e Changedocs for 2.21.3 2025-05-19 13:55:45 -05:00
Nicolas Will
878039926c Merge pull request #19521 from bdrodes/openssl_intermediate_digest_operations
Crypto: Model OpenSSL intermediate digest operations
2025-05-19 20:49:13 +02:00
Chad Bentz
8a81aa1762 Set CWE-134 from 9.3 to 7.3 CVSS score for memory safe languages
- Sync up to score given to javascript/ruby
2025-05-19 14:43:08 -04:00
REDMOND\brodes
03a6e134ba Crypto: Removed dead comment. 2025-05-19 13:51:42 -04:00
REDMOND\brodes
e5641eff23 Crypto: Typo fix 2025-05-19 13:50:41 -04:00
REDMOND\brodes
3e54e4d6b6 Crypto: Fixing typo. 2025-05-19 13:49:29 -04:00
REDMOND\brodes
d05d38f00c Crypto: Removing unused class field. 2025-05-19 13:48:15 -04:00
Geoffrey White
ebd75a118b Rust: Add models for std::Pin. 2025-05-19 18:38:50 +01:00
Geoffrey White
533aa7fc26 Rust: Add tests for std::Pin. 2025-05-19 18:38:20 +01:00
REDMOND\brodes
bbbdf89e46 Crypto: OpenSSL ellipitic curve algorithm instances and consumers. 2025-05-19 13:10:11 -04:00
REDMOND\brodes
e7535b3eff Crypto: Updating JCA to use new key size predicate returning int for elliptic curve. 2025-05-19 13:09:33 -04:00
Paolo Tranquilli
e6235a57e7 Merge pull request #19523 from jketema/swift-doc2
Swift: Mention Swift 6.1 support in the supported compilers doc
2025-05-19 17:37:16 +02:00
Paolo Tranquilli
7c70f5d8e4 Go: move to standard windows runner
Seems like `windows-latest-xl` is not available any more. This should unblock CI, but longer term we should consider doing what other languages do (i.e. run tests from the internal repo).
2025-05-19 17:24:58 +02:00
Jeroen Ketema
48e97a2e4a Swift: Mention Swift 6.1 support in the supported compilers doc 2025-05-19 16:59:08 +02:00
REDMOND\brodes
309ad461a5 Quantum/Crypto: Adding Random.qll for OpenSSL into the general imports for the OpenSSL.qll model. 2025-05-19 10:56:17 -04:00
REDMOND\brodes
74271e4a17 Quantum/Crypto: To avoid ambiguity, altered OpenSSL EVP_Update_Call and EVP_Final_Call used for ciphers to explicitly say "Cipher", e.g., EVP_Cipher_Update_Call. This is also consistent with the new analogous digest operations. 2025-05-19 10:44:39 -04:00
REDMOND\brodes
97124745ad Quantum/Crypto:Adding interemediate hashing to the openssl (e.g., modeling final and update digest separately). 2025-05-19 10:43:32 -04:00
Simon Friis Vindum
654d410485 Rust: Address PR feedback 2025-05-19 15:50:29 +02:00
Simon Friis Vindum
f4ff815253 Rust: Add additional type inference tests 2025-05-19 15:12:38 +02:00
Jeroen Ketema
dfbe08d14c Merge pull request #19518 from jketema/depr
C++/Swift: delete outdated deprecations
2025-05-19 14:39:13 +02:00
Mathias Vorreiter Pedersen
adb74105fd Merge pull request #19511 from MathiasVP/as-expr-array-aggregate-literal
C++: Make `node.asExpr() instanceof ArrayAggregateLiteral` satisfiable
2025-05-19 12:47:28 +01:00
Napalys Klicius
673655e093 added change notes 2025-05-19 13:29:40 +02:00
Napalys Klicius
703aec1990 cpp: removed now unused predicate commandLineArg 2025-05-19 13:27:26 +02:00
Napalys Klicius
c74321a2ee all: used Erik's script to delete outdated deprecations 2025-05-19 13:26:08 +02:00
Geoffrey White
b503b1ef6c Rust: Prefer getExpr() over getAstNode(). 2025-05-19 12:09:27 +01:00
Geoffrey White
4bbdc9a1cd Rust: Simplify SensitiveData.qll. 2025-05-19 12:08:53 +01:00
Geoffrey White
65456b5cf0 Merge branch 'main' into moresensitive 2025-05-19 11:54:46 +01:00
Asger F
317e61d370 JS: Update UnresolvableImports to handle nested packages 2025-05-19 12:53:19 +02:00
Asger F
1e8a49f311 JS: More efficient nested package naming 2025-05-19 12:53:18 +02:00
Jeroen Ketema
93517020ae Merge pull request #19515 from jketema/depr-rewrite
C++: Do not use deprecated `hasLocationInfo` in `FlowTestCommon`
2025-05-19 12:43:50 +02:00
Geoffrey White
d20a602aab Rust: Accept consistency check failures. 2025-05-19 11:07:37 +01:00
Geoffrey White
b58b2500ee Merge branch 'main' into tokio 2025-05-19 10:42:28 +01:00
Jeroen Ketema
757a4877e0 C++: Do not use deprecated hasLocationInfo in FlowTestCommon 2025-05-19 11:10:29 +02:00
Jeroen Ketema
df28e3bc8b Merge pull request #19510 from GeekMasher/cpp-wmain
C/CPP: Update FlowSources to add wmain
2025-05-19 10:33:35 +02:00
Mathew Payne
9d2b46e3cd Merge branch 'main' into cpp-wmain 2025-05-19 08:52:56 +01:00
Michael Nebel
dabeddb62d Add change-notes. 2025-05-19 09:26:49 +02:00
Michael Nebel
530025b7ae Update integration tests expected output. 2025-05-19 09:26:47 +02:00
Michael Nebel
03ecd24469 Lower the precision of a range of harcoded password queries to remove them from query suites. 2025-05-19 09:26:45 +02:00
sentient0being
f575d2f941 get array string url 2025-05-17 19:40:41 +08:00
Mathias Vorreiter Pedersen
ff11aaf2bb C++: Accept query test 'toString' improvements. 2025-05-16 21:01:55 +01:00
Mathias Vorreiter Pedersen
0eb55779fb C++: Add change note. 2025-05-16 20:30:21 +01:00
Mathias Vorreiter Pedersen
ced1d580df C++: Accept test changes. 2025-05-16 20:14:10 +01:00
Mathias Vorreiter Pedersen
8e005a65bf C++: Fix missing 'asExpr' for array aggregate literals. 2025-05-16 20:12:58 +01:00
Mathew Payne
bbce0d0c65 Update cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-05-16 18:55:00 +01:00
GeekMasher
94fe9b692f feat(cpp): Add change notes 2025-05-16 18:35:50 +01:00
Mathias Vorreiter Pedersen
d7e07b0b2d Merge pull request #19492 from MathiasVP/add-cpp-models
C++: Add summary models for `openssl` and `sqlite`
2025-05-16 18:33:56 +01:00
Mathew Payne
c79a724f5d feat(cpp): Update FlowSources to add wmain 2025-05-16 18:21:44 +01:00
Nicolas Will
30e2c44cdb Merge pull request #19509 from bdrodes/openssl_cipher_update
Quantum: Expand OpenSSL cipher modeling and fix JCA false reporting of intermediate calls
2025-05-16 18:54:26 +02:00
REDMOND\brodes
dbd66e64c6 Fixing bug in JCA cipher modeling. intermediate operations should not be key operations. 2025-05-16 11:23:42 -04:00
REDMOND\brodes
34f5e4e0c8 Adding cipher update modeling (model flow through update to final) 2025-05-16 11:23:19 -04:00
Jeroen Ketema
5db797ec88 Merge pull request #19508 from jketema/options
C++: Minor cleanup of qltest options
2025-05-16 15:46:35 +02:00
Mathias Vorreiter Pedersen
f82f1c84f3 C++: Accept test changes. 2025-05-16 14:14:46 +01:00
Jeroen Ketema
55f8cb7935 C++: Drop --clang_vector_types option
The types are already enabled through the specfied gcc version.
2025-05-16 15:12:06 +02:00
Jeroen Ketema
9d5a465e9d C++: Remove unused options file 2025-05-16 15:11:40 +02:00
Mathias Vorreiter Pedersen
1d31a38362 C++: Regenerate the models for OpenSSL and sqlite after excluding tests in model-generation (sqlite is unaffected). 2025-05-16 13:53:16 +01:00
Mathias Vorreiter Pedersen
03d6633d41 Merge pull request #19501 from MathiasVP/as-expr-class-aggregate-literal
C++: Make `node.asExpr() instanceof ClassAggregateLiteral` satisfiable
2025-05-16 13:49:03 +01:00
Taus
579cf4a65a Merge pull request #19424 from github/tausbn/python-extract-hidden-file-by-default
Python: Extract files in hidden dirs by default
2025-05-16 14:43:47 +02:00
Mathias Vorreiter Pedersen
3df647f205 C++: Add change note. 2025-05-16 13:37:07 +01:00
Mathias Vorreiter Pedersen
bebc077c9e C++: Accept test changes. 2025-05-16 13:37:02 +01:00
Mathias Vorreiter Pedersen
560ffc0e9b C++: Regenerate the models for OpenSSL and sqlite after model-generation changes. 2025-05-16 13:33:59 +01:00
Mathias Vorreiter Pedersen
d6beb2a6a0 C++: Don't generate models for stuff we have modeled in Ql by hand. 2025-05-16 13:33:54 +01:00
Mathias Vorreiter Pedersen
de31595cd2 C++: Add generated sqlite models. 2025-05-16 13:32:01 +01:00
Mathias Vorreiter Pedersen
0290b4369c C++: Add generated OpenSSL models. 2025-05-16 13:31:59 +01:00
Mathias Vorreiter Pedersen
cadcb202e2 Merge pull request #19500 from MathiasVP/always-apply-manual-models-when-resolving-calls
C++: Update static call target resolution semantics in dataflow
2025-05-16 13:28:01 +01:00
Simon Friis Vindum
41e76e20b5 Rust: Add models auto-generated in bulk 2025-05-16 14:08:16 +02:00
Simon Friis Vindum
fb8b79edbf Rust: Skip model generation for functions with semicolon in canonical path 2025-05-16 14:08:09 +02:00
Mathias Vorreiter Pedersen
ffc1c6264e Merge pull request #19498 from MathiasVP/exclude-test-directories
C++: Exclude tests in model generation
2025-05-16 13:02:51 +01:00
Taus
9ee3e4cdf3 Python: Update change note
Co-authored-by: yoff <yoff@github.com>
2025-05-16 13:50:22 +02:00
Simon Friis Vindum
d66c12b7a9 Rust: Add MaD bulk generation script 2025-05-16 13:38:24 +02:00
Mathias Vorreiter Pedersen
e11ab0f125 Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-16 12:06:25 +01:00
Michael Nebel
5e72b8bbed Merge pull request #19497 from michaelnebel/csharp/gethashcode
C#: Improve the query `cs/gethashcode-is-not-defined`.
2025-05-16 12:37:41 +02:00
Napalys Klicius
f6a8909bfe Merge pull request #19356 from Napalys/js/merge_classes
JS: Merge `ES6Class` to `FunctionStyleClass`
2025-05-16 10:31:33 +02:00
Tom Hvitved
40624b21f8 Merge pull request #19503 from hvitved/rust/fix-semantic-merge-conflict
Rust: Fix semantic merge conflict
2025-05-16 09:17:53 +02:00
Tom Hvitved
8521becbd5 Rust: Fix semantic merge conflict 2025-05-15 20:53:35 +02:00
Mathias Vorreiter Pedersen
d31ddad832 C++: Small refactoring. 2025-05-15 18:04:57 +01:00
Mathias Vorreiter Pedersen
f731d0e630 C++: Add change note. 2025-05-15 17:39:51 +01:00
Mathias Vorreiter Pedersen
c3c6bb6e60 C++: Accept test changes. 2025-05-15 17:23:35 +01:00
Mathias Vorreiter Pedersen
783560cff6 C++: Add a subclass of PostUpdateNodes and ensure that 'node.asExpr() instanceof ClassAggregateLiteral' holds for this new node subclass. 2025-05-15 17:23:32 +01:00
Mathias Vorreiter Pedersen
0f21075722 C++: Add a test that demonstrate missing asExpr for aggregate literals. 2025-05-15 17:18:55 +01:00
Nora Dimitrijević
8a1987ab71 Merge pull request #19448 from d10c/d10c/ruby-printast-order-fix
Ruby printAst: fix order for synth children of real parents
2025-05-15 18:17:01 +02:00
Taus
2158eaa34c Python: Fix a bug in glob regex creation
The previous version was tested on a version of the code where we had
temporarily removed the `glob.strip("/")` bit, and so the bug didn't
trigger then.

We now correctly remember if the glob ends in `/`, and add an extra part
in that case. This way, if the path ends with multiple slashes, they
effectively get consolidated into a single one, which results in the
correct semantics.
2025-05-15 15:34:11 +00:00
Aditya Sharad
f814849154 Merge pull request #19427 from felickz/unpinned-actions-tags-docs
Adding comprehensive docs for customizing `actions/unpinned-tag` query
2025-05-15 20:29:58 +05:30
Taus
c8cca126a1 Python: Bump extractor version 2025-05-15 14:59:33 +00:00
Taus
72ae633a64 Python: Update change note and extractor config
Removes the previously added extractor option and updates the change
note to explain how to use `paths-ignore` to exclude files in hidden
directories.
2025-05-15 14:58:32 +00:00
Taus
96558b53b8 Python: Update test
The second test case now sets the `paths-ignore` setting in the config
file in order to skip files in hidden directories.
2025-05-15 14:53:15 +00:00
Taus
98388be25c Python: Remove special casing of hidden files
If it is necessary to exclude hidden files, then adding
```
paths-ignore: ['**/.*/**']
```
to the relevant config file is recommended instead.
2025-05-15 14:49:17 +00:00
Taus
61719cf448 Python: Fix a bug in glob conversion
If you have a filter like `**/foo/**` set in the `paths-ignore` bit of
your config file, then currently the following happens:

- First, the CodeQL CLI observes that this string ends in `/**` and
  strips off the `**` leaving `**/foo/`
- Then the Python extractor strips off leading and trailing `/`
  characters and proceeds to convert `**/foo` into a regex that is
  matched against files to (potentially) extract.

The trouble with this is that it leaves us unable to distinguish
between, say, a file `foo.py` and a file `foo/bar.py`. In other words,
we have lost the ability to exclude only the _folder_ `foo` and not any
files that happen to start with `foo`.

To fix this, we instead make a note of whether the glob ends in a
forward slash or not, and adjust the regex correspondingly.
2025-05-15 14:48:06 +00:00
Mathias Vorreiter Pedersen
e75dcd27f5 C++: Accept test changes. 2025-05-15 15:28:13 +01:00
Mathias Vorreiter Pedersen
69a1a87aa4 C++: Update semantics of picking the static call target in dataflow. 2025-05-15 15:25:29 +01:00
Mathias Vorreiter Pedersen
c6df9505c0 C++: Add tests to exercise the upcoming behavior of function dispatch when there are model-generated summaries AND source definitions. 2025-05-15 15:05:17 +01:00
Tom Hvitved
60cc63f4d4 Merge pull request #19474 from hvitved/rust/builtins-resolution
Rust: Type inference and path resolution for builtins
2025-05-15 15:22:32 +02:00
Mathias Vorreiter Pedersen
e80c3b5c0b C++: Exclude tests (by matching paths) in model generation. 2025-05-15 13:24:32 +01:00
Michael Nebel
4d7901573a C#: Add change note. 2025-05-15 14:07:50 +02:00
Michael Nebel
3080dfafb6 C#: Update test expected output. 2025-05-15 14:04:40 +02:00
Michael Nebel
72d3814e08 C#: Include dictionary indexers and more methods in cs/gethashcode-is-not-defined. 2025-05-15 14:03:22 +02:00
Michael Nebel
4b2d323cb6 C#: Add some more test cases. 2025-05-15 13:48:51 +02:00
Michael Nebel
2c5d85e186 C#: Convert cs/gethashcode-is-not-defined to inline expectations tests. 2025-05-15 13:35:08 +02:00
Jeroen Ketema
51229a6b48 Merge pull request #19493 from jketema/delete-expr
C++: Fix IR edge case where there are no function calls taking an argument
2025-05-15 13:31:48 +02:00
Chris Smowton
084222ec58 Inline version-specific override code where there is now only one version 2025-05-15 12:13:14 +01:00
Chris Smowton
79171a9232 Fold v_1_5_0 and v_1_5_20 files forwards into v_1_6_0, dropping any that are overridden 2025-05-15 11:39:26 +01:00
Tom Hvitved
9d37597461 Address review comments 2025-05-14 20:50:40 +02:00
Neil Mendum
1a1c9b4ea4 actions: add some missing permissions 2025-05-14 17:28:54 +01:00
Nora Dimitrijević
96bdfbf76b Fix inefficient pattern: if-exists -> exists-or-not-exists 2025-05-14 15:36:45 +02:00
Paolo Tranquilli
e4b7b914b2 Merge pull request #19334 from github/redsun82/rust-expand-attr-macros
Rust: expand attribute macros
2025-05-14 15:35:58 +02:00
Owen Mansel-Chan
8f5a2a9e29 Merge pull request #19484 from owen-mc/go/minor-fix
Go: Remove redundant code in `IR::ExtractTupleElementInstruction.getResultType()` and expand tests
2025-05-14 13:49:38 +01:00
Jeroen Ketema
401281331f C++: Fix IR edge case where there are no function calls taking an argument 2025-05-14 13:44:29 +02:00
Jeroen Ketema
96bd9a96e5 C++: Add test case for IR edge case 2025-05-14 13:36:52 +02:00
Paolo Tranquilli
c2f2522262 Merge pull request #19490 from github/redsun82/swift-type-value-expr-cfg
Swift: add new `TypeValueExpr` to CFG
2025-05-14 13:24:50 +02:00
Michael Nebel
ef4c921b5a Merge pull request #19482 from michaelnebel/csharp/code-quality-call-to-gc
C#: Add `cs/call-to-gc` to the code quality suite.
2025-05-14 13:03:24 +02:00
Paolo Tranquilli
3d38d77d63 Rust: accept dummy test output 2025-05-14 11:41:17 +02:00
Paolo Tranquilli
4709eacbf8 Swift: add change note 2025-05-14 11:37:03 +02:00
yoff
3fa563b293 Merge pull request #19483 from yoff/ruby/more-capturedExitRead
Ruby: More captured exit read nodes
2025-05-14 11:35:04 +02:00
Paolo Tranquilli
2388dd06d4 Swift: add new TypeValueExpr to CFG 2025-05-14 11:16:44 +02:00
Michael Nebel
7531a95d22 Merge pull request #19271 from michaelnebel/csharp/uncontrolled-format-string
C#: Improve precision of `cs/uncontrolled-format-string`.
2025-05-14 10:39:38 +02:00
Michael Nebel
f9559060f1 C#: Add change note. 2025-05-14 10:37:28 +02:00
Michael Nebel
8603d76e2a C#: Update flowsummaries expected test file. 2025-05-14 10:28:22 +02:00
Michael Nebel
08b950eeeb C#: Update .NET 9 Runtime generated models. 2025-05-14 10:28:19 +02:00
Mathias Vorreiter Pedersen
e903d76fa0 Merge pull request #19443 from MathiasVP/generate-more-value-preserving-summaries-2
Shared: Generate more value-preserving flow summaries
2025-05-14 09:12:28 +01:00
Paolo Tranquilli
f5438390d5 Rust: enhance macro expansion testing 2025-05-14 10:01:44 +02:00
Chris Smowton
98ec3753fd Merge pull request #19489 from github/post-release-prep/codeql-cli-2.21.3
Post-release preparation for codeql-cli-2.21.3
2025-05-13 23:31:00 +01:00
github-actions[bot]
5f9dd75d7d Post-release preparation for codeql-cli-2.21.3 2025-05-13 21:49:43 +00:00
Chris Smowton
4bb829ebec Merge pull request #19488 from github/release-prep/2.21.3
Release preparation for version 2.21.3
2025-05-13 22:22:20 +01:00
github-actions[bot]
2de4a01c86 Release preparation for version 2.21.3 2025-05-13 21:14:27 +00:00
Chris Smowton
c6cc4c0e13 Merge pull request #19402 from smowton/smowton/admin/kotlin-2.2.0-support
Add support for Kotlin 2.2.0; drop Kotlin 1.5.x
2025-05-13 21:11:31 +01:00
Tom Hvitved
a02bf182c5 Rust: Type inference and path resolution for builtins 2025-05-13 21:29:32 +02:00
Tom Hvitved
9db38bcb23 Rust: Update path resolution tests 2025-05-13 21:26:50 +02:00
Chris Smowton
fecad025de Fix handling of X/jvm-default intermediate modes such as 'compatibility', the new default as of 2.2.0 2025-05-13 18:10:21 +01:00
Mathias Vorreiter Pedersen
fa7942393d Merge pull request #19477 from MathiasVP/fix-infinite-range-analysis-on-incomplete-ssa
C++: Fix infinite range analysis loop on invalid SSA
2025-05-13 16:59:11 +01:00
Paolo Tranquilli
3001d0bd1c Bazel: remove 2.0.0 rules_kotlin patching 2025-05-13 15:57:37 +01:00
yoff
3fcd46ec6c Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-13 16:57:32 +02:00
Owen Mansel-Chan
933e01b3d4 Remove redundant code
The case of a CallExpr is actually covered by the next disjunct.

Note that the CallExpr case had a subtle bug: `c.getTarget()` is not
defined when we are calling a variable. Better to use
`c.getCalleeType()`. But in this case we can just delete the code.
2025-05-13 15:55:20 +01:00
Owen Mansel-Chan
7da1ade835 Add tests for extracting tuples in f(g(...)) 2025-05-13 15:54:05 +01:00
Owen Mansel-Chan
b06491125e Expand test for Extract Tuple Instruction 2025-05-13 15:48:29 +01:00
Florin Coada
c608a9056b Merge pull request #19462 from github/changedocs/2.21.2
Update changelogs for CodeQL CLI 2.21.2
2025-05-13 15:23:35 +01:00
Paolo Tranquilli
a99556e021 Merge branch 'main' into redsun82/rust-expand-attr-macros 2025-05-13 16:21:29 +02:00
yoff
c70fd6a58c ruby: add change note 2025-05-13 16:18:33 +02:00
Tom Hvitved
d37787c4ae Rust: Add type inference tests for literals 2025-05-13 16:07:43 +02:00
Tom Hvitved
3fc9da7466 Merge pull request #19475 from hvitved/rust/literal-sub-classes
Rust: Add `LiteralExpr` sub classes
2025-05-13 16:06:53 +02:00
Asger F
169ae19015 Merge pull request #19391 from asgerf/js/typescript-path-resolution
JS: Overhaul import resolution
2025-05-13 15:46:38 +02:00
Chris Smowton
a2836f5aab Adjust integration test expectations 2025-05-13 14:42:19 +01:00
Chris Smowton
27222499d4 Update test expectation 2025-05-13 14:42:18 +01:00
Chris Smowton
fc1fd263df Fix plugin test to work with Kotlin 2.1.20 2025-05-13 14:42:17 +01:00
Chris Smowton
0d34837eaf Bump unit tests to use latest stable Kotlin 2025-05-13 14:42:16 +01:00
Chris Smowton
1afe67ab13 Accept Kotlin 2.1.20 test changes
These are mainly small changes in how source-locations are ascribed to synthetic expressions, plus three real changes:

- The comment extractor is performing better presumably due to improvements in the underlying representation
- *= /= and %= operations are once again extracted correctly; presumably their origin information has been fixed
- Reference to a static final Java field can lead to more constant propagation than before

The last one might be a minor nuisance to someone trying to find references to such a field.
2025-05-13 14:42:15 +01:00
Chris Smowton
34e0a7b23a Bump Kotlin version to keep integration test working 2025-05-13 14:42:13 +01:00
Chris Smowton
29d369f22f Don't try to decode a class from a .java file 2025-05-13 14:42:12 +01:00
Chris Smowton
0d21fa51f2 Change default version 2025-05-13 14:42:11 +01:00
Chris Smowton
3f23212d4e Update test expectation 2025-05-13 14:42:10 +01:00
Chris Smowton
2ad5e20e79 Change note 2025-05-13 14:42:09 +01:00
Chris Smowton
4cb1e7840f Update Kotlin doc table 2025-05-13 14:42:07 +01:00
Chris Smowton
a36fc30d44 Fix build for Kotlin 2.2.0 2025-05-13 14:42:06 +01:00
Chris Smowton
24feb51661 Fix Gradle config 2025-05-13 14:42:05 +01:00
Chris Smowton
163a403065 Add Kotlin 2.2.0-Beta1; drop Kotlin 1.5 2025-05-13 14:42:04 +01:00
Paolo Tranquilli
abea647bb1 Bazel: update rules_kotlin to 2.1.3 2025-05-13 14:42:03 +01:00
Chris Smowton
08aad90346 Add 2.2.0-Beta1 deps 2025-05-13 14:42:02 +01:00
Mathias Vorreiter Pedersen
f255fc2fd5 C++: Drive-by join order fix. Before:
```
Evaluated relational algebra for predicate SsaInternals::getDefImpl/1#1ed4f567@65628fbv with tuple counts:
          4935102  ~5%    {4} r1 = SCAN `SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f` OUTPUT In.2, In.3, In.0, In.1
        104274503  ~1%    {3}    | JOIN WITH `SsaInternals::DefImpl.hasIndexInBlock/2#dispred#30a6c29f_120#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.3, Lhs.2
          4921319  ~2%    {2}    | JOIN WITH `SsaInternals::DefImpl.getSourceVariable/0#dispred#72437659` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
                          return r1
```
After:
```
Evaluated relational algebra for predicate SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f_1230#join_rhs@b280fb5h with tuple counts:
        4935102  ~3%    {4} r1 = SCAN `SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f` OUTPUT In.1, In.2, In.3, In.0
                        return r1

Evaluated relational algebra for predicate SsaInternals::DefImpl.hasIndexInBlock/3#dispred#31d295aa_1230#join_rhs@2be655s4 with tuple counts:
        5634706  ~1%    {4} r1 = SCAN `SsaInternals::DefImpl.hasIndexInBlock/3#dispred#31d295aa` OUTPUT In.1, In.2, In.3, In.0
                        return r1

Evaluated relational algebra for predicate SsaInternals::getDefImpl/1#1ed4f567@8afa36uu with tuple counts:
        4921319  ~2%    {2} r1 = JOIN `SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f_1230#join_rhs` WITH `SsaInternals::DefImpl.hasIndexInBlock/3#dispred#31d295aa_1230#join_rhs` ON FIRST 3 OUTPUT Lhs.3, Rhs.3
                        return r1
```
2025-05-13 14:21:28 +01:00
yoff
774b1820c2 ruby: also insert capturedExitRead-nodes by exceptional exits 2025-05-13 15:11:00 +02:00
yoff
73bae1627b ruby: test for DeadStore and captured variables 2025-05-13 15:08:01 +02:00
Tom Hvitved
ae54c62001 Simplify using non-capturing groups 2025-05-13 15:06:43 +02:00
Michael Nebel
b8f85b3f29 C#: Update integration test expected output. 2025-05-13 14:50:23 +02:00
Asger F
aea676df3c Merge pull request #19445 from asgerf/js/summaries-with-fallback
JS: Generate flow summaries from summaryModels; only generate steps as a fallback
2025-05-13 14:49:38 +02:00
Michael Nebel
f5903eaf2d C#: Add cs/call-to-gc to the code quality suite. 2025-05-13 14:46:29 +02:00
Michael Nebel
fcecc5a3af Cpp: Update model generator implementation. 2025-05-13 13:44:44 +01:00
Michael Nebel
6712cce1d7 Rust: Update model generator implementation. 2025-05-13 13:44:43 +01:00
Michael Nebel
ee83ca9125 Java: Update model generator implementation and test expected output. 2025-05-13 13:44:42 +01:00
Michael Nebel
09dc3c88b3 C#: Update model generator implementation and test expected output. 2025-05-13 13:44:40 +01:00
Michael Nebel
a94cffa27e Shared: Adjust the printing of heuristic value summaries (and fix a minor issue with output printing in captureSink). 2025-05-13 13:44:39 +01:00
Michael Nebel
6c9f248fdb Shared: Avoid generating taint based heuristic summaries when a content sensitive summary can be generated. 2025-05-13 13:44:38 +01:00
Mathias Vorreiter Pedersen
0836f0b413 C++: Cache and fix join order in 'hasIncompleteSsa'. 2025-05-13 13:41:15 +01:00
Tom Hvitved
7494eac35c Address review comments 2025-05-13 14:26:09 +02:00
Michael Nebel
3449a34018 C#: Address review comments. 2025-05-13 14:20:06 +02:00
Geoffrey White
20a012d5f1 Merge pull request #19454 from geoffw0/deref
Rust: Add Operation class
2025-05-13 13:17:14 +01:00
yoff
1c863b1bd4 Merge pull request #19476 from yoff/ruby/DeadStoreOfLocal-precision-high
ruby: adjust precision of `rb/useless-assignment-to-local`
2025-05-13 13:56:22 +02:00
Mathias Vorreiter Pedersen
c3c18bdbd2 C++: Add change note. 2025-05-13 11:28:25 +01:00
Mathias Vorreiter Pedersen
9d2eb3d9b8 C++: Filter out instructions with incomplete SSA in range analysis. 2025-05-13 10:54:22 +01:00
Mathias Vorreiter Pedersen
510df38da2 C++: Add an 'hasIncompleteSsa' predicate to check whether a function has correctly modelled SSA information. 2025-05-13 10:54:20 +01:00
Simon Friis Vindum
4cc9c24940 Merge pull request #19452 from paldepind/shared-model-generator-script
Shared: Remove the language-specific model generator scripts
2025-05-13 10:17:37 +02:00
Geoffrey White
b3dc7a21b3 Apply suggestions from code review
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-05-13 09:06:25 +01:00
Geoffrey White
2b6e428c37 Merge pull request #19466 from geoffw0/web
Rust: Add tests for web frameworks as taint sources
2025-05-13 09:02:46 +01:00
Simon Friis Vindum
014e7dc4bc Shared: Remove change note for internal MaD generator 2025-05-13 09:50:07 +02:00
Simon Friis Vindum
14bdc1ab22 Shared: Minor tweaks to model generator script
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2025-05-13 09:31:50 +02:00
Michael Nebel
0c0e1d0c46 Merge pull request #19456 from 5idg5/5idg5-update-cs-stubs
Add new stubs definitions to System.Web
2025-05-13 08:56:06 +02:00
Sid Gawri
eb4711e884 Merge branch '5idg5-update-cs-stubs' of https://github.com/5idg5/codeql into 5idg5-update-cs-stubs 2025-05-12 17:41:32 -04:00
5idg5
6a5ce39930 Merge branch 'github:main' into 5idg5-update-cs-stubs 2025-05-12 17:39:33 -04:00
Michael Nebel
5faaa4f0f3 C#: Cleanup test options files. 2025-05-12 17:36:52 -04:00
Michael Nebel
05dc9b6d34 C#: Remove dependency to ASP.NET in the System.Web.cs stub file. 2025-05-12 17:36:10 -04:00
Michael Nebel
60d26e522e C#: Cleanup test options files. 2025-05-12 17:36:08 -04:00
Michael Nebel
82cf472f8a C#: Fix ASP tests. 2025-05-12 17:33:22 -04:00
Michael Nebel
ffd6b2677c C#: Cleanup test options files. 2025-05-12 17:33:21 -04:00
yoff
a50167812d ruby: adjust precision of rb/useless-assignment-to-local
from `medium` to `high`
2025-05-12 23:26:21 +02:00
Owen Mansel-Chan
c933ab4ae2 Apply suggestions from code review
Co-authored-by: Chris Smowton <smowton@github.com>
2025-05-12 16:24:56 -04:00
Mathias Vorreiter Pedersen
f1b4e05579 C++: Expose 'isBusyDef'. 2025-05-12 19:45:19 +01:00
Mathias Vorreiter Pedersen
e51cb478af C++: Expose 'MemoryLocation0'. 2025-05-12 19:43:19 +01:00
Tom Hvitved
cd01bd0e07 Rust: Add LiteralExpr sub classes 2025-05-12 20:35:00 +02:00
Nicolas Will
d3282a9470 Merge pull request #19469 from nicolaswill/quantum-experimental
Add CodeQL Quantum models and queries (Java, C++) to experimental
2025-05-12 19:25:34 +02:00
Geoffrey White
f04d6fd8c8 Rust: Accept minor test changes for the cleartext logging query. 2025-05-12 17:45:00 +01:00
Geoffrey White
a2944cdb61 Rust: Make usage of Impl more consistent with other Impl modules. 2025-05-12 16:48:06 +01:00
Geoffrey White
9160036e41 Rust: Rename OperationImpl -> Impl. 2025-05-12 16:45:41 +01:00
Geoffrey White
7c98fa87da Rust: One more bit of cleanup. 2025-05-12 16:34:08 +01:00
Geoffrey White
402a84f755 Update rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-05-12 16:17:26 +01:00
Geoffrey White
bf8cdffffa Update rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-05-12 16:06:33 +01:00
Geoffrey White
08fcf6114f Apply suggestions from code review
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
2025-05-12 16:01:52 +01:00
Geoffrey White
6678dc490a Merge pull request #19449 from geoffw0/alloc-size-sev
Rust: Update query severities
2025-05-12 15:57:02 +01:00
Geoffrey White
a69a56122f Merge pull request #19455 from geoffw0/quality
Rust: Use the new 'quality' tag.
2025-05-12 15:56:12 +01:00
Michael Nebel
a7ddfe2e89 C#: Address review comments. 2025-05-12 16:06:02 +02:00
Michael Nebel
6cc3c820b4 C#: Add change note. 2025-05-12 15:45:03 +02:00
Michael Nebel
c96003f265 C#: Update test expected output. 2025-05-12 15:45:01 +02:00
Michael Nebel
133e8d4897 C#: Include CompositeFormat.Parse as Format like method. 2025-05-12 15:44:59 +02:00
Michael Nebel
3838a7b0d6 C#: Add a testcase for CompositeFormat.Parse for cs/uncontrolled-format-string. 2025-05-12 15:44:58 +02:00
Michael Nebel
c16be43f15 C#: Convert cs/uncontrolled-format-string tests to use test inline expectations. 2025-05-12 15:44:56 +02:00
Nicolas Will
5334e90717 Make FlowAwareElement private 2025-05-12 14:58:04 +02:00
Nicolas Will
c66ec63333 Fix query compilation errors 2025-05-12 14:48:58 +02:00
Nicolas Will
8f36624171 Add AsymmetricAlgorithmNode, refactor and address feedback 2025-05-12 14:37:44 +02:00
Nicolas Will
ab3f62eed1 Add missing tags to PrintCBOMGraph.ql queries 2025-05-12 14:34:16 +02:00
Geoffrey White
682f59fc11 Rust: Make helper predicate private + autoformat. 2025-05-12 12:49:58 +01:00
Geoffrey White
ac5ec06736 Rust: Constrain SensitiveFieldAccess to avoid including unwanted parents. 2025-05-12 12:47:31 +01:00
Geoffrey White
b907cfe468 Rust: Add a few more test cases involving 'map'. 2025-05-12 12:31:01 +01:00
Geoffrey White
0a3275e0b3 Rust: One more test case. 2025-05-12 11:50:57 +01:00
Simon Friis Vindum
7bd1612b69 Rust: Use getStaticTarget in type inference test
This fixes a test failure where duplicated functions from extraction caused a bunch of spurious results to pop up
2025-05-12 12:47:48 +02:00
Simon Friis Vindum
bc8580159c Merge branch 'main' into rust-ti-implementing-type-method 2025-05-12 11:35:48 +02:00
Simon Friis Vindum
0cf60c4e2d Rust: Address comments on documentation 2025-05-12 11:07:46 +02:00
Asger F
891b2b8335 DataFlow: Support a bare Argument[n] as a valid output stack 2025-05-12 09:42:45 +02:00
Asger F
8fab235d66 DataFlow: Fix typo in a comment 2025-05-12 09:41:49 +02:00
Simon Friis Vindum
14ede4e0c5 Merge pull request #19440 from paldepind/rust-update-stdlib-models
Rust: Update generated models for core and std
2025-05-12 08:11:18 +02:00
Sid Gawri
4e3ac93f70 fix unit tests part 2 2025-05-09 16:24:42 -04:00
Sid Gawri
089ef1cae1 Merge branch 'main' of https://github.com/5idg5/codeql into 5idg5-update-cs-stubs 2025-05-09 15:35:11 -04:00
Geoffrey White
48b95f3a4e Rust: Move OperationImpl to internal/OperationImpl.qll. 2025-05-09 17:01:49 +01:00
Geoffrey White
d02d5c5baf Rust: Update cleartext logging test with new found results. 2025-05-09 14:33:26 +01:00
Nicolas Will
fbf3d7c195 Update CODEOWNERS to specify shared pack directory 2025-05-09 14:36:55 +02:00
Nicolas Will
cd59ce5b04 Rename shared pack to quantum from experimental 2025-05-09 14:36:12 +02:00
Geoffrey White
5f5d6f679a Rust: Understand sensitive enum variants calls. 2025-05-09 11:58:51 +01:00
Geoffrey White
0f36e1d625 Rust: Understand sensitive qualifier expressions. 2025-05-09 11:26:23 +01:00
Geoffrey White
a537197691 Rust: Understand sensitive field access expressions. 2025-05-09 11:04:38 +01:00
Geoffrey White
8825eefea6 Rust: More counterexamples for sensitive data as well. 2025-05-09 10:50:12 +01:00
Geoffrey White
87218cb6d7 Rust: Test more examples of sensitive data. 2025-05-09 10:50:11 +01:00
Mathias Vorreiter Pedersen
64371688d7 Shared: Fix QLDoc to make QL4QL happy. 2025-05-08 10:16:09 -04:00
Nicolas Will
64e40715ee Merge branch 'quantum-experimental' of https://github.com/nicolaswill/codeql into quantum-experimental 2025-05-08 16:11:15 +02:00
Nicolas Will
c6077947a7 Update cpp and java not_included_in_qls.expected 2025-05-08 16:10:28 +02:00
Nicolas Will
d0510bc672 Merge branch 'main' into quantum-experimental 2025-05-08 04:37:37 +02:00
Nicolas Will
529128cbde Add problem.severity for java analysis queries 2025-05-08 04:20:49 +02:00
Nicolas Will
a57f4a1022 Update Java analysis query metadata 2025-05-08 04:13:57 +02:00
Nicolas Will
e03f57da9b Update type name in experimental BrokenCrypto.ql 2025-05-08 04:03:10 +02:00
Nicolas Will
b8c3b43cc4 Fix KnownAsymmetricAlgorithm query id 2025-05-08 03:58:06 +02:00
Nicolas Will
b558e844ff Update slice query metadata and output tables 2025-05-08 03:56:20 +02:00
Nicolas Will
986c8e1aec Change Java inventory slices to @kind table 2025-05-08 03:24:04 +02:00
Nicolas Will
0c6e124b01 Delete development test query 2025-05-08 03:02:59 +02:00
Nicolas Will
1135fbe950 Fix EVP_Hash_Initializer typo 2025-05-08 02:58:43 +02:00
Nicolas Will
1d8a57e7da Fix EVP Cipher class, predicate, and comment typos 2025-05-08 02:56:52 +02:00
Nicolas Will
e956d041dc Format LibraryDetector.qll 2025-05-08 02:51:53 +02:00
Nicolas Will
a7ebe4a51a Fix typo in asymmetric inventory slice query id 2025-05-08 02:43:29 +02:00
Nicolas Will
0066f74d3f Delete development scripts 2025-05-08 02:40:56 +02:00
Nicolas Will
7339dd0077 Rename "Quantum" to "quantum" in dir structure 2025-05-08 02:39:40 +02:00
Nicolas Will
ac72abd3a6 Refactor directory structure (shared experimental) 2025-05-08 02:35:09 +02:00
Nicolas Will
c19291be88 Refactor 'cryptography' and 'Quantum' to 'quantum' 2025-05-08 01:38:53 +02:00
Nicolas Will
314f1ff93f Refactor Java directory structure 2025-05-08 00:28:32 +02:00
Nicolas Will
56670c66f1 Revert Python changes and delete implementation 2025-05-08 00:26:13 +02:00
Nicolas Will
f5a36566d1 Merge pull request #11 from nicolaswill/brodes/openssl_refactor
Brodes/openssl refactor
2025-05-07 23:10:53 +02:00
Geoffrey White
19f86fd67f Rust: Address confusing / typo'd paths. 2025-05-07 10:46:16 +01:00
Geoffrey White
49ff967465 Rust: Add a dataflow sources test for the Axum web fraemework. 2025-05-07 10:17:58 +01:00
Geoffrey White
e56519d959 Rust: Add a dataflow sources test for the Actix web fraemework. 2025-05-07 10:17:57 +01:00
Geoffrey White
310c02f1fb Rust: Add a dataflow sources test for the Poem web fraemework. 2025-05-07 10:17:56 +01:00
Owen Mansel-Chan
a857069345 Merge pull request #19464 from owen-mc/go/fix/extract-recv-alias-type
Go: fix database inconsistency when receiver has alias type
2025-05-06 15:08:42 -04:00
Owen Mansel-Chan
55efb113c2 Merge pull request #19463 from github/dependabot/go_modules/go/extractor/extractor-dependencies-e95546ca81
Bump golang.org/x/tools from 0.32.0 to 0.33.0 in /go/extractor in the extractor-dependencies group
2025-05-06 11:05:48 +01:00
Owen Mansel-Chan
c781f98bdc (unrelated tidy up) resolveTypeAlias not needed
`types.Unalias` already does the same thing
2025-05-06 05:45:06 -04:00
Owen Mansel-Chan
228c45aaf8 Look through aliases when identifying method receivers 2025-05-06 05:45:04 -04:00
dependabot[bot]
824271a84a 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.32.0 to 0.33.0
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.32.0...v0.33.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-06 03:58:02 +00:00
Sid Gawri
7231f53b6e revert system.net stubs 2025-05-05 21:59:37 -04:00
Sid Gawri
0691cd3e9a Merge branch 'main' of https://github.com/5idg5/codeql into 5idg5-update-cs-stubs 2025-05-05 21:55:29 -04:00
Simon Friis Vindum
06cfa9a89c Rust: Address format fixes suggested in review 2025-05-05 15:21:50 -04:00
Florin Coada
1533d7a4cc Update codeql-cli-2.21.2.rst 2025-05-05 11:30:15 -04:00
Florin Coada
c7026c03df Update changelogs for CodeQL CLI 2.21.2 and adjust query reporting for unversioned immutable actions 2025-05-05 11:13:42 -04:00
Arthur Baars
9b0854edb1 Merge pull request #19335 from github/aibaars/macro-stmts
Rust: make MacroStmts expressions
2025-05-03 11:22:15 +02:00
Sid Gawri
d600eb42cf add new stubs 2025-05-02 17:25:02 -04:00
REDMOND\brodes
4042081539 Missing files, should have been part of last commit. 2025-05-02 16:35:27 -04:00
REDMOND\brodes
0a0be41527 Intermediate progress towards getting hashing upgraded. Still need to handle the final and update mechanics, matching the JCA. Similarly need to update cipher to follow the JCA for update/final as well. 2025-05-02 16:33:52 -04:00
Nora Dimitrijević
e9d5515c3b Add change note 2025-05-02 15:47:34 -04:00
Nora Dimitrijević
83a619a532 Ruby printAst: order by line, synth index in synth parent, column, synth index in real parent
This prevents a bunch of unrelated movements in AstDesugar.ql
2025-05-02 15:33:04 -04:00
Nora Dimitrijević
b95092ef1c Ruby printAst: order by start line and column before synth index
This counteracts the movement of synth children away from the node from which they take their location, following the decision to take the index of synth children of real parents into account.
2025-05-02 15:33:02 -04:00
Nora Dimitrijević
2511f52161 Ruby printAst: fix order for synth children of real parents
Real parents can have synthesized children, so always assigning index 0 leads to nondeterminism in graph output.
2025-05-02 15:33:00 -04:00
Jeroen Ketema
aa80b83874 Merge pull request #19420 from github/jketema/swift-6.1-contructs
Swift: Support new Swift 6.1 AST elements
2025-05-02 20:13:20 +02:00
REDMOND\brodes
94632931ba Clean up 2025-05-02 14:11:10 -04:00
REDMOND\brodes
09d473674b Working refactor for cipher, padding, block mode. Still haven't completed connecting padding to algorithm instances if through a set padding interface. 2025-05-02 14:10:38 -04:00
REDMOND\brodes
7481de75cb Updating the model to infer implicit cipher key sizes. 2025-05-02 14:07:38 -04:00
REDMOND\brodes
c08525ad81 Additional cleanup 2025-05-02 14:07:13 -04:00
REDMOND\brodes
5694f029de Misc. cleanup 2025-05-02 14:03:50 -04:00
Geoffrey White
f59ef58c1f Rust: Update query suite list. 2025-05-02 17:47:48 +01:00
Geoffrey White
16ed8476ce Rust: Use the new 'quality' tag. 2025-05-02 17:24:13 +01:00
Geoffrey White
566b3dd8d9 Rust: Update code scanning queries list. 2025-05-02 17:13:14 +01:00
Geoffrey White
d0287e9496 Merge branch 'main' into alloc-size-sev 2025-05-02 17:08:05 +01:00
Geoffrey White
09dc7fc5c4 Rust: Autoformat. 2025-05-02 16:58:43 +01:00
Mathias Vorreiter Pedersen
bce5f2539f C++/C#/Java/Rust: Fixup tests. 2025-05-02 16:52:05 +01:00
Mathias Vorreiter Pedersen
37bc2bf5b3 Shared: Deduplicate flow summaries. 2025-05-02 16:51:15 +01:00
Geoffrey White
dc1b4fcf7a Rust: Unify getOperatorName() methods into Operation. 2025-05-02 16:46:51 +01:00
Geoffrey White
be2017621f Rust: Unify getAnOperand() methods into Operation. 2025-05-02 16:46:50 +01:00
Geoffrey White
060d5152c4 Rust: Add an Operation class above LogicalOperation, AssignmentOperation etc. 2025-05-02 16:46:44 +01:00
Arthur Baars
6bf50d8f86 Rust: add upgrade/downgrade scripts 2025-05-02 16:36:51 +02:00
Jeroen Ketema
5c4ca64264 Swift: Add change note 2025-05-02 16:29:42 +02:00
Taus
2ded42c285 Python: Update extractor tests 2025-05-02 14:27:46 +00:00
Taus
67d04d5477 Python: Add change note 2025-05-02 14:27:46 +00:00
Taus
605f2bff9c Python: Add integration test 2025-05-02 14:27:46 +00:00
Arthur Baars
bc35599f1a Rust: rename MacroStmts to MacroBlockExpr 2025-05-02 16:23:02 +02:00
Arthur Baars
869af58c9d Rust: add flow step for MacroStmts 2025-05-02 16:23:00 +02:00
Arthur Baars
9ca6706550 Rust: make MacroStmts a CFG Expr 2025-05-02 16:22:59 +02:00
Arthur Baars
4ca98ba816 Rust: test with format! macro in a block 2025-05-02 16:22:57 +02:00
Jeroen Ketema
95ac458d2a Swift: Add upgrade and downgrade scripts 2025-05-02 16:04:49 +02:00
Paolo Tranquilli
674800748b Rust: fix location emission 2025-05-02 15:24:31 +02:00
Mathias Vorreiter Pedersen
4d2f2b89e7 Shared/Java/C#/Rust/C++: Rename 'captureHeuristicFlow' to 'captureFlow'. 2025-05-02 14:02:41 +01:00
Mathias Vorreiter Pedersen
54f0eed2c6 Shared: Rename 'asLiftedTaintModel' to 'asLiftedModel'. 2025-05-02 13:54:58 +01:00
Jeroen Ketema
98384bf4c2 Swift: Support BuiltinFixedArrayType 2025-05-02 14:47:58 +02:00
Jeroen Ketema
c74fca929a Swift: Support TypeValueExpr and IntegerType 2025-05-02 14:47:56 +02:00
Jeroen Ketema
97d2ed8b3b Swift: Support UnsafeCastExpr 2025-05-02 14:47:55 +02:00
Tom Hvitved
ae2fd52543 Merge pull request #19431 from hvitved/rust/path-resolution-remove-visibility-check
Rust: Remove visibility check in path resolution
2025-05-02 14:44:14 +02:00
Taus
0c1b379ac1 Python: Extract files in hidden dirs by default
Changes the default behaviour of the Python extractor so files inside
hidden directories are extracted by default.

Also adds an extractor option, `skip_hidden_directories`, which can be
set to `true` in order to revert to the old behaviour.

Finally, I made the logic surrounding what is logged in various cases a
bit more obvious.

Technically this changes the behaviour of the extractor (in that hidden
excluded files will now be logged as `(excluded)`, but I think this
makes more sense anyway.
2025-05-02 12:44:05 +00:00
Tom Hvitved
07829e5231 Merge pull request #19421 from github/aibaars/rust-builtin-types
Rust: extract declarations of  builtin types
2025-05-02 14:43:47 +02:00
Napalys Klicius
d1e769ba54 Merge pull request #19422 from Napalys/js/shelljs
JS: Modeling of `ShellJS` functions
2025-05-02 14:18:44 +02:00
Napalys Klicius
30694c11d6 Removed code duplication 2025-05-02 13:44:07 +02:00
Asger F
b8be1bcee8 JS: Avoid duplication with constructor body 2025-05-02 13:44:03 +02:00
Paolo Tranquilli
557f468fc0 Merge branch 'main' into redsun82/rust-expand-attr-macros 2025-05-02 13:43:17 +02:00
Paolo Tranquilli
82736ea621 Rust: add diagnostics about item expansion not working properly 2025-05-02 13:43:00 +02:00
Napalys Klicius
871e93d9fe Update javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll
Co-authored-by: Asger F <asgerf@github.com>
2025-05-02 13:39:46 +02:00
Asger F
1f308ee47a JS: Explain use of monotonicAggregates 2025-05-02 13:22:27 +02:00
Asger F
5c9218fe5a JS: Add comment about 'path' heuristic 2025-05-02 13:22:25 +02:00
Simon Friis Vindum
c6d95ceeb0 Shared: Remove the language-specific model generator scripts 2025-05-02 13:21:10 +02:00
Paolo Tranquilli
00f4bfdd24 Rust: add some more supported libraries
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-05-02 13:20:02 +02:00
Paolo Tranquilli
e2a86aaf93 Rust: update supported libraries
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-05-02 13:18:56 +02:00
Simon Friis Vindum
3aed1c8696 Merge branch 'main' into rust-update-stdlib-models 2025-05-02 12:54:43 +02:00
Asger F
f3e0cfd947 Apply suggestions from code review
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com>
2025-05-02 12:41:29 +02:00
Geoffrey White
f64e86fe2e Rust: Add a library test for Operations. 2025-05-02 11:22:48 +01:00
Mathias Vorreiter Pedersen
d5bc95daeb Merge branch 'main' into generate-more-value-preserving-summaries-2 2025-05-02 10:51:11 +01:00
Asger F
16fc8c3d9e JS: Benign test updates 2025-05-02 11:09:19 +02:00
Michael Nebel
74669cb0cb Merge pull request #19382 from michaelnebel/shared/modelgenrefactor
Shared: Re-factor summary, source and sink model generators into separate modules.
2025-05-02 09:38:24 +02:00
Tamás Vajk
cb1c3736fe Merge pull request #19413 from tamasvajk/quality/query-suite-selector
Add code quality suite selector and use that in the code quality suites
2025-05-02 08:18:48 +02:00
Owen Mansel-Chan
9ba47eb655 Update query suite inclusion integration tests 2025-05-01 21:51:12 +01:00
Arthur Baars
778f46d5be Rust: adjust unit tests and expected output 2025-05-01 22:21:48 +02:00
Chad Bentz
d3aa2a130c Moved guidance to RST 2025-05-01 19:37:26 +00:00
Napalys Klicius
c430a36b4c Refactored merge StandardClassNode into ClassNode 2025-05-01 19:12:12 +02:00
Geoffrey White
93f8cea884 Rust: Add + clean up some QLDoc. 2025-05-01 17:11:34 +01:00
Napalys Klicius
f652686607 Merge pull request #19444 from Napalys/python/hdbcli
Python: modeling of `hdbcli`
2025-05-01 17:58:31 +02:00
Geoffrey White
c9ce6c0fb6 Rust: Demote rust/cleartext-logging to warning. 2025-05-01 16:42:41 +01:00
Geoffrey White
bd3155ef0c Rust: Promote rust/uncontrolled-allocation-size to warning. 2025-05-01 16:42:13 +01:00
Tom Hvitved
73fa381dbc Rust: Remove visibility check in path resolution 2025-05-01 17:14:49 +02:00
Tom Hvitved
40f80ff4e7 Merge pull request #19442 from hvitved/rust/clone-modeling
Rust: Strengthen modeling of the `Clone` trait
2025-05-01 17:11:42 +02:00
Owen Mansel-Chan
bef38a4dce Add change note 2025-05-01 16:06:32 +01:00
Owen Mansel-Chan
8283d30d94 Avoid deprecated function in qhelp examples in same folder 2025-05-01 16:06:31 +01:00
Owen Mansel-Chan
00cc430ac3 Make examples in qhelp shorter and more realistic 2025-05-01 16:06:29 +01:00
Owen Mansel-Chan
6e3b959f61 Reword qhelp slightly 2025-05-01 16:06:28 +01:00
Owen Mansel-Chan
f8791861c7 Add missing metadata 2025-05-01 16:06:19 +01:00
Jeroen Ketema
8ad6938a82 Merge pull request #19434 from jketema/array-barrier
C++: Limit flow through sinks and sources in `cpp/upcast-array-pointer-arithmetic`
2025-05-01 16:42:53 +02:00
Geoffrey White
3789c46791 Rust: Remove stray comment, accept changes to another test. 2025-05-01 15:40:32 +01:00
Owen Mansel-Chan
38dcc1cb84 Fix QLDoc 2025-05-01 15:40:17 +01:00
Owen Mansel-Chan
3b934b8898 Add comment on importance of Function.getACall() 2025-05-01 15:40:15 +01:00
Owen Mansel-Chan
e6c19b0cbd Modernize tests 2025-05-01 15:40:14 +01:00
Owen Mansel-Chan
cba0bec3c6 Rename files 2025-05-01 15:40:12 +01:00
Owen Mansel-Chan
3cce4ba437 Improve QLDocs 2025-05-01 15:40:10 +01:00
Owen Mansel-Chan
7f007e10c4 Minor refactor - removed unused argument 2025-05-01 15:40:09 +01:00
Owen Mansel-Chan
b90aba291e Refactor class for unescaped types 2025-05-01 15:40:07 +01:00
Owen Mansel-Chan
cbdbb0310b Tidy up test (remove duplicated main) 2025-05-01 15:40:06 +01:00
Owen Mansel-Chan
4e5a865337 Manually fix copilot's mistakes and get query working 2025-05-01 15:40:04 +01:00
Owen Mansel-Chan
ce4be6d04c Refactor to use flow state instead of 3 flow configs (copilot) 2025-05-01 15:40:03 +01:00
Owen Mansel-Chan
ca85f0bf7f Update query metadata 2025-05-01 15:39:57 +01:00
Owen Mansel-Chan
c2ebdf5266 Change query id to go/html-template-escaping-bypass-xss 2025-05-01 15:39:20 +01:00
Owen Mansel-Chan
1926ffd450 Convert XSS tests to use inline expectations 2025-05-01 15:39:19 +01:00
Owen Mansel-Chan
1530ac123c Update path in qlref and update test results 2025-05-01 15:39:17 +01:00
Owen Mansel-Chan
5bce70f78c Move files out of experimental (no changes) 2025-05-01 15:39:15 +01:00
yoff
d7e6e1dd66 Merge pull request #19432 from yoff/python/model-http-server-header-write
python: model `send_header` from `http.server`
2025-05-01 15:34:05 +02:00
Geoffrey White
e263116452 Rust: Model std::net and tokio::net. 2025-05-01 14:25:44 +01:00
Asger F
a44bdf3be2 JS: Generate summaries from summaryModel, and only generate steps as a fallback 2025-05-01 15:22:47 +02:00
Asger F
0fc1ae272e DataFlow: expose from FlowSummaries whether a summary is supported 2025-05-01 15:22:12 +02:00
Arthur Baars
8e8efedb42 Rust: adjust integration tests and expected output 2025-05-01 15:20:36 +02:00
Taus
481adcea0a Merge pull request #18449 from github/tausbn/misc-add-script-for-calculating-mrva-totals
Misc: Add script for calculating totals for a MRVA run
2025-05-01 15:17:19 +02:00
Asger F
ca5f8b0c1d JS: Move some code into ModelsAsData.qll 2025-05-01 15:17:07 +02:00
Owen Mansel-Chan
e0549483fd Merge pull request #19429 from owen-mc/fix-cwe-tags-missing-leading-zero
Fix cwe tags to include leading zero
2025-05-01 14:09:54 +01:00
Arthur Baars
53b2e9708c Rust: extract declarations of builtin types 2025-05-01 14:27:21 +02:00
Napalys Klicius
da7c0931b8 Added hdbcli to be part of supported-framework as well as change note 2025-05-01 14:18:08 +02:00
Napalys Klicius
e1fc0ca051 Added implementation hdbcli as part of PEP249::PEP249ModuleApiNode 2025-05-01 14:18:02 +02:00
Geoffrey White
038b8b5344 Rust: Add a missing model for std::io. 2025-05-01 13:04:18 +01:00
Geoffrey White
3104dba09e Rust: Fix some shortcomings in our models of Reqwest. 2025-05-01 13:04:17 +01:00
Geoffrey White
f4ae211019 Rust: Add models for tokio (fs). 2025-05-01 13:04:16 +01:00
Geoffrey White
7439b0c504 Rust: Add models for tokio (io). 2025-05-01 13:04:15 +01:00
Geoffrey White
627496df09 Rust: Add source tests for tokio (fs). 2025-05-01 13:04:13 +01:00
Geoffrey White
b2339ef0d9 Rust: Add some alternative sinks. 2025-05-01 13:04:12 +01:00
Geoffrey White
950812b463 Rust: Add further source tests for tcp streams. 2025-05-01 13:04:06 +01:00
Napalys Klicius
0325f368fe Added test case for hdbcli 2025-05-01 13:57:14 +02:00
Nick Rolfe
817237ce54 Merge pull request #19441 from github/nickrolfe/mergeback-2.21.2
Merge back 2.21.2 release branch
2025-05-01 11:55:29 +01:00
Simon Friis Vindum
a545361a55 Rust: Accept test changes 2025-05-01 12:36:01 +02:00
Napalys Klicius
6ba0dc20a3 Merge pull request #19439 from Napalys/js/fastify-all
JS: Modeling of `fastify`
2025-05-01 12:11:52 +02:00
Simon Friis Vindum
ecead2cafd Rust: Workaround for method existing both as source and as dependency 2025-05-01 12:00:18 +02:00
Simon Friis Vindum
3ee89899d9 Rust: Handle inherent implementations shadowing trait implementations 2025-05-01 12:00:17 +02:00
Simon Friis Vindum
4513106a35 Rust: Add type inference test for inherent implementation shadowing trait implementation 2025-05-01 12:00:13 +02:00
Simon Friis Vindum
e45b5c557d Rust: Implement type inference support for non-universal impl blocks 2025-05-01 11:59:15 +02:00
Simon Friis Vindum
22407cad44 Rust: Add type inference test for non-universal impl blocks 2025-05-01 11:58:09 +02:00
Owen Mansel-Chan
0863c87572 Add change notes 2025-05-01 10:33:24 +01:00
Napalys Klicius
68a9dd9f9e Address comments 2025-05-01 11:19:41 +02:00
Napalys Klicius
c7d764f666 Brought back FunctionStyleClass marked as deprecated 2025-05-01 11:16:04 +02:00
Napalys Klicius
d4b5ef6a66 Refactor process.env handling in CleartextLogging and IndirectCommandInjection modules to use ThreatModelSource 2025-05-01 11:14:15 +02:00
Napalys Klicius
33d8ffa83e Added test cases for shelljs.env 2025-05-01 11:11:29 +02:00
Napalys Klicius
602500e280 Added change note 2025-05-01 11:09:56 +02:00
Napalys Klicius
40d176a770 Added model for shelljs.env 2025-05-01 11:09:47 +02:00
Tom Hvitved
423e2dac91 Rust: Strenghten the modeling of the Clone trait 2025-05-01 10:54:52 +02:00
Simon Friis Vindum
499d224c2b Rust: Update generated models for core and std 2025-05-01 10:54:05 +02:00
Tom Hvitved
1770f568a2 Merge pull request #19367 from hvitved/rust/type-inference-try-expr
Rust: Type inference for `?` expressions
2025-05-01 10:27:49 +02:00
Nick Rolfe
20f7781d9f Merge pull request #19437 from adityasharad/docs/fix/2.21.0-escaping
Docs: Fix escaping in 2.21.0 changelog
2025-05-01 09:27:41 +01:00
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
Napalys Klicius
9bab59363c Fix class instance method detection in constructor receiver 2025-05-01 09:14:39 +02:00
Napalys Klicius
7430d0e5e0 Added failing test with method as field 2025-05-01 09:14:37 +02:00
Napalys Klicius
c0917434eb Removed code duplication 2025-05-01 09:14:36 +02:00
Napalys Klicius
fc7520e9e7 Added change note 2025-05-01 09:14:34 +02:00
Simon Friis Vindum
bab84d03d1 Merge pull request #19419 from paldepind/rust-precise-implicit-deref-borrow
Rust: Use type inference to insert implicit borrows and derefs
2025-05-01 08:41:37 +02:00
Aditya Sharad
36199b3f06 Docs: Fix escaping in 2.21.0 changelog
These break when the RST is processed.
Escape the backslashes and consistently add
inline code blocks.
2025-04-30 16:40:36 -07: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
Mathias Vorreiter Pedersen
d8eafbb9e2 C++: Fixup queries and accept test changes. 2025-04-30 20:34:35 +01:00
Mathias Vorreiter Pedersen
775197372c Rust: Fixup queries. 2025-04-30 20:34:33 +01:00
Mathias Vorreiter Pedersen
07641e48ab Java: Fixup queries and accept test changes. 2025-04-30 20:34:32 +01:00
Mathias Vorreiter Pedersen
cd47379700 C#: Fixup queries and accept test changes. 2025-04-30 20:34:30 +01:00
Mathias Vorreiter Pedersen
607a1e46da Shared: Generate value-preserving summaries when possible. 2025-04-30 20:34:27 +01:00
Jeroen Ketema
2ed48ae571 C++: Update expected test results after barrier introduction 2025-04-30 20:51:27 +02:00
Tom Hvitved
a3c26b4bfe Rust: Type inference for ? expressions 2025-04-30 20:35:11 +02:00
Tom Hvitved
88075c4c8c Rust: Make manual tweaks to Copilot generated code 2025-04-30 20:35:10 +02:00
Tom Hvitved
51e70d0c3b Rust: Add Copilot generated test for ? operator expressions 2025-04-30 20:35:09 +02:00
Jeroen Ketema
723778fa82 C++: Limit flow through sinks and sources in cpp/upcast-array-pointer-arithmetic 2025-04-30 20:31:12 +02:00
Jeroen Ketema
359aa02602 Merge pull request #19410 from jketema/header-variant
C++: Turn header variant tests that use PCH files into integration tests
2025-04-30 20:10:30 +02:00
yoff
e63b38c515 python: add change note 2025-04-30 20:05:55 +02:00
yoff
cf45e771f3 python: remove copied comment 2025-04-30 20:01:43 +02:00
yoff
531f2a15a4 python: model send_header from http.server 2025-04-30 19:58:14 +02:00
Chuan-kai Lin
5bc962c429 QL tests: run with --check-diff-informed 2025-04-30 10:55:58 -07:00
Jeroen Ketema
3423a1072a C++: Address review comments 2025-04-30 19:10:35 +02:00
Napalys Klicius
7fec3aec95 Renamed FunctionStyleClass class to StandardClassNode 2025-04-30 18:51:46 +02:00
Napalys Klicius
e9ee7134ef Refactor prototype reference retrieval in ClassNode and update expected test output 2025-04-30 18:51:39 +02:00
Owen Mansel-Chan
a9132c43d0 Fix incorrect CWE tags 2025-04-30 16:47:35 +01:00
Owen Mansel-Chan
cf614a596d Fix cwe tags to include leading zero 2025-04-30 16:43:03 +01:00
REDMOND\brodes
c80588cda1 Adding content to KnownSymmetricCipherAlgorithmql. 2025-04-30 11:41:28 -04:00
Simon Friis Vindum
c263d3faf9 Rust: Remove predicates unused after refactor 2025-04-30 17:39:22 +02:00
Tom Hvitved
302680cfb2 Merge pull request #19425 from hvitved/rust/type-inference-debug-predicates
Rust: Add type inference debug predicates
2025-04-30 17:03:05 +02:00
Nicolas Will
83617e099f Merge pull request #2 from nicolaswill/knewbury01/JCA-sample
Implement first stage cryptography modelling and queries
2025-04-30 16:39:56 +02:00
Paolo Tranquilli
6ecaf65132 Rust: fix downgrade script 2025-04-30 16:38:13 +02:00
Nicolas Will
27c7bf3047 Merge branch 'github:main' into crypto-test 2025-04-30 16:35:26 +02:00
Nicolas Will
2b1b90ccc4 Merge pull request #4 from nicolaswill/brodes/cipher_operation
Adding a sketch for a CipherOperation concept to model encryption/dec…
2025-04-30 16:32:20 +02:00
Nicolas Will
dd2f53f42e Merge pull request #10 from nicolaswill/brodes/key_agreement
Initial progress on key agreement.
2025-04-30 16:31:42 +02:00
Nicolas Will
9c87ad8293 Merge branch 'brodes/key_agreement' of https://github.com/nicolaswill/codeql into brodes/key_agreement 2025-04-30 16:28:35 +02:00
Nicolas Will
7f24a2557d Add modelling for JCA key gen cipher algorithm 2025-04-30 16:28:31 +02:00
Jeroen Ketema
edd18dc052 C++: Address review comment 2025-04-30 16:23:06 +02:00
Chad Bentz
2bef3c3604 Adding comprehensive docs for customizing query 2025-04-30 09:44:27 -04:00
Paolo Tranquilli
8ffe4d6593 Merge branch 'main' into redsun82/rust-expand-attr-macros 2025-04-30 15:25:32 +02:00
Paolo Tranquilli
ecd80fbc34 Rust: fix QL compilation errors 2025-04-30 15:25:01 +02:00
Jonas Jensen
c8e564b2ba Merge pull request #19416 from jbj/ruby-no-diff-informed-regex
Ruby: disable diff-informed mode on regex queries
2025-04-30 15:17:20 +02:00
Tom Hvitved
4f5b340278 Rust: Add type inference debug predicates 2025-04-30 15:12:58 +02:00
Tom Hvitved
389f15e670 Merge pull request #19362 from hvitved/rust/crate-extraction-workarounds
Rust: Crate graph extraction workarounds
2025-04-30 15:11:26 +02:00
Napalys Klicius
9624a413e4 Added change note 2025-04-30 14:57:00 +02:00
Napalys Klicius
71f1b82a56 Added support for fastify.all 2025-04-30 14:54:09 +02:00
Napalys Klicius
6d61766366 Added test case for fastify.all 2025-04-30 14:50:35 +02:00
Simon Friis Vindum
f584d22b53 Rust: Use type inference to insert implicit borrows and derefs 2025-04-30 14:43:51 +02:00
Asger F
8ebbfb198e Merge pull request #19412 from asgerf/js/promise-all
JS: Better type-tracking through Promise.all()
2025-04-30 14:19:12 +02:00
Jeroen Ketema
c7e4853c38 Merge pull request #19269 from jketema/non-second-level-limits
C++: Do not limit second level scopes to the top-level
2025-04-30 13:50:36 +02:00
Napalys Klicius
18cea2d6a5 Added support for shelljs.cmd and async-shelljs.asyncExec 2025-04-30 13:37:02 +02:00
Napalys Klicius
25d04f1cdd Added support for shelljs.which 2025-04-30 13:35:17 +02:00
Napalys Klicius
f6fae7ad60 Added test cases for cmd, which and asyncExec 2025-04-30 13:33:31 +02:00
Paolo Tranquilli
1c1ccdacb8 Merge pull request #19418 from github/redsun82/improve-codegen-codeql-requirement-message
Codegen: make missing `codeql` error clearer
2025-04-30 12:14:37 +02:00
Asger F
da5d799152 JS: Change note 2025-04-30 11:59:47 +02:00
Paolo Tranquilli
9958cc7784 Codegen: consider windows paths in local codeql binary heuristic 2025-04-30 11:43:03 +02:00
Paolo Tranquilli
ba89a5de6f Codegen: make missing codeql error clearer 2025-04-30 11:38:52 +02:00
Tom Hvitved
52bd99b852 Address review comments 2025-04-30 11:04:12 +02:00
Tom Hvitved
97532525d8 Rust: Crate graph extraction workarounds 2025-04-30 11:01:43 +02:00
Joe Farebrother
7106475033 Merge pull request #19411 from joefarebrother/python-qual-file-not-closed
Python: Improve performance of FileNotClosed query by using an explicit fastTC
2025-04-30 09:51:48 +01:00
Jonas Jensen
eb7cd3d221 Ruby: disable diff-informed mode on regex queries
These queries were failing in `codeql test run --check-diff-informed`
because they can select locations inside the regex. Until that can be
fixed, diff-informed mode is disabled for these queries.
2025-04-30 08:54:57 +02:00
Paolo Tranquilli
2c95f00432 Merge pull request #19414 from github/revert-19385-redsun82/update-rules-kotlin
Revert "Bazel: update `rules_kotlin` to 2.1.3"
2025-04-29 22:02:04 +02:00
Tom Hvitved
64145ab98a Merge pull request #19369 from hvitved/rust/crate-graph-self-param
Rust: Extract `SelfParam`s from crate graph
2025-04-29 21:23:27 +02:00
Napalys Klicius
6de38b1827 Merge pull request #19300 from Napalys/js/fastify
JS: Added support for `fastify.addHook`
2025-04-29 18:32:25 +02:00
Paolo Tranquilli
280ce058a9 Revert "Bazel: update rules_kotlin to 2.1.3" 2025-04-29 17:38:33 +02:00
Paolo Tranquilli
abbf753a09 Merge pull request #19385 from github/redsun82/update-rules-kotlin
Bazel: update `rules_kotlin` to 2.1.3
2025-04-29 16:54:28 +02:00
Tamas Vajk
e9e6d68a6e Use code-quality-selectors in Ruby suite 2025-04-29 16:23:33 +02:00
Tamas Vajk
fdeac95714 Use code-quality-selectors in Python suite 2025-04-29 16:23:22 +02:00
Tamas Vajk
d56c5225f6 Use code-quality-selectors in JS suite 2025-04-29 16:23:08 +02:00
Tamas Vajk
2515b06b2a Use code-quality-selectors in Go suite 2025-04-29 16:22:57 +02:00
Tamas Vajk
bb46ca7a64 Modify quality query suite selector for actions, cpp, rust and swift 2025-04-29 16:22:37 +02:00
Paolo Tranquilli
a7a887c828 Rust: separate attribute macro and macro call expansions 2025-04-29 16:18:40 +02:00
Tamas Vajk
425e020d6c Use code-quality-selectors in Java suite 2025-04-29 16:09:51 +02:00
Asger F
b0f73f1cbd JS: Update test output now that we import .d.ts files more liberally 2025-04-29 16:06:39 +02:00
Asger F
70a5ec5607 JS: Add package.json files in tests relying on node_modules
We don't extract node_modules folders by default so these tests aren't
that relevant anymore, and we no longer follow node_modules resolution
rules directly.

Instead, these imports are resolved based on the monorepo support which
simply requires a package.json file to exist. There is not a good enough
reason to support node_modules directly, so we're accepting some
minor regression in these tests.
2025-04-29 16:06:38 +02:00
Asger F
5de2c938d8 JS: Rename getTargetFile to getImportedFile and remove its deprecated name clash
'getTargetFile' was originally named to avoid the clash with 'getImportedFile' from a subclass. But we now just merge the two predicates.
2025-04-29 16:06:36 +02:00
Asger F
be5de9c080 JS: Update test output
path.resolve() and template expressions are now working.

Previously they could not be resolved because Import.getImportedPath() returned a PathExpr,
and these were not instances of PathExpr.
2025-04-29 16:06:35 +02:00
Tamas Vajk
ea9b95790b Use code-quality-selectors in C# suite 2025-04-29 16:02:46 +02:00
Tamas Vajk
e3a6681182 Add code quality suite selector 2025-04-29 16:02:21 +02:00
Michael Nebel
c9d01bc607 Shared: Sprinkle some predicate defaults and clean up. 2025-04-29 15:22:13 +02:00
Michael Nebel
a6b5645b13 Rust: Re-factor implementation to use the new model generator interface. 2025-04-29 15:22:11 +02:00
Michael Nebel
c16d913f8a C++: Re-factor implementation to use the new model generator interface. 2025-04-29 15:22:09 +02:00
Michael Nebel
2535055de0 Java: Re-factor implementation to use the new model generator interface. 2025-04-29 15:22:07 +02:00
Michael Nebel
0016fbfa21 C#: Re-factor implementation to use the new model generator interface. 2025-04-29 15:22:05 +02:00
Michael Nebel
bb6530fcf8 Shared: Make the summary, source and sink model generation a parameterized module. 2025-04-29 15:22:03 +02:00
Michael Nebel
b5c596b2ce Shared: Split model printing of summaries and sources/sinks into separate param modules. 2025-04-29 15:21:59 +02:00
Michael Nebel
f5a295c24e Merge pull request #19408 from michaelnebel/debug/removemodelgentag
C#/Java/Rust: Change the tag for the model generator debugging queries.
2025-04-29 15:21:18 +02:00
Asger F
eae1e1cb02 JS: Make API graphs rely on type-tracking steps in general 2025-04-29 15:08:19 +02:00
Asger F
e40b93b8a3 JS: Add type-tracking step through simple Promise.all() calls 2025-04-29 15:08:18 +02:00
Jeroen Ketema
7f9020282d C++: Turn header variant tests that use PCH files into integration tests
These tests currently test a code path in the extractor that only exists for
these tests. By turning them into integration tests, we actually use the
code path that normal database creation uses.
2025-04-29 14:51:34 +02:00
Joe Farebrother
299b3f7af4 Merge pull request #19325 from joefarebrother/python-qual-loop-var-capture
Python: Tweak LoopVariableCapture for performance
2025-04-29 13:49:09 +01:00
Joe Farebrother
acb9c20a76 Use explicit fastTC 2025-04-29 13:22:11 +01:00
Asger F
ed2a832a55 JS: Deprecate PathExpr and related classes 2025-04-29 13:23:47 +02:00
Asger F
fe055ad603 JS: Use PackageJsonEx instead of resolveMainModule 2025-04-29 13:23:45 +02:00
Asger F
c293f03b9e JS: Remove a dependency on getImportedPath()
To avoid negative recursion in some upcoming changes, we want to make sure the modeling of createRequire does not depend on getImportedPath().
2025-04-29 13:23:43 +02:00
Asger F
a195d074c9 JS: Resolve Angular2 templateUrl with ResolveExpr instead of PathExpr 2025-04-29 13:23:42 +02:00
Asger F
d724874969 JS: Implement babel-plugin-root-import as a PathMapping 2025-04-29 13:23:40 +02:00
Asger F
e4420f63fb JS: Move babel-root-import test
This moves the test for the babel `root-import` plugin into the new
unit test for import resolution, so we only have one set of tests to
maintain.

The actual implementation is added in the next commit.
2025-04-29 13:23:38 +02:00
Asger F
6725cb5b8c JS: Implement import resolution 2025-04-29 13:23:37 +02:00
Asger F
ed4864edf7 JS: Add two more helpers to FilePath class 2025-04-29 13:07:21 +02:00
Asger F
f542956f66 JS: Add internal extension of PackageJson class 2025-04-29 13:07:19 +02:00
Asger F
bb91df8145 JS: Add helper for doing path resolution with JS rules 2025-04-29 13:07:18 +02:00
Asger F
59e1cbcc7b JS: Add tsconfig class 2025-04-29 13:07:16 +02:00
Asger F
ef32a036b1 JS: Extract from methods from PathString into a non-abstract base class
The new class 'FilePath' has bindingset[this] so one just has to cast a string to that type and you can use its methods.
2025-04-29 13:07:15 +02:00
Asger F
17aa5220a6 JS: Add some helpers 2025-04-29 13:07:14 +02:00
Asger F
565cb434fc JS: Add test 2025-04-29 13:07:10 +02:00
Napalys Klicius
c8ee8dce98 Add test cases to verify correct call graph resolution with various JavaScript inheritance patterns 2025-04-29 13:04:07 +02:00
Asger F
359525b65a JS: Extract more tsconfig.json patterns 2025-04-29 12:46:49 +02:00
Asger F
8c0b0c4800 JS: Ensure json files are extracted properly in tests 2025-04-29 12:46:20 +02:00
Napalys Klicius
0a9a7911c2 Fixed issue where method calls weren't properly resolved when inheritance was implemented via prototype manipulation instead of ES6 class syntax. 2025-04-29 12:39:44 +02:00
Napalys Klicius
a015003bda Updated test case to resolve reflected calls 2025-04-29 12:37:03 +02:00
Napalys Klicius
4fbf8ca5cf Added test cases with inheritance 2025-04-29 12:36:30 +02:00
Michael Nebel
89fd9a4dd5 C#/Java/Rust: Change the tag for the model generator debugging queries. 2025-04-29 12:02:37 +02:00
Michael Nebel
e5d296180b Merge pull request #19396 from michaelnebel/csharp/equality-on-floats
C#: Add `cs/equality-on-floats` to the Code Quality suite.
2025-04-29 11:47:18 +02:00
Mathias Vorreiter Pedersen
daf953fabe Merge pull request #19404 from MathiasVP/cleanup-PropagateFlowConfig
Shared: Use `isSink/1` in `PropagateFlowConfig`
2025-04-29 10:30:01 +01:00
Nick Rolfe
d784473dcd Merge pull request #19400 from github/nickrolfe/rb-qhelp-tweak
Fix spelling/wording in qhelp for `rb/uninitialized-local-variable`
2025-04-29 09:43:58 +01:00
Tamás Vajk
1694050f37 Merge pull request #19390 from tamasvajk/test/cpp-python-query-suites
Add query suite inclusion tests for cpp, python
2025-04-29 10:26:40 +02:00
Asger F
ec9d15bb79 JS: Make shared Folder module visible 2025-04-29 09:42:25 +02:00
Asger F
2ce01bfb9a Add Folder::Resolve as a generalisation of Folder::Append 2025-04-29 09:42:23 +02:00
Asger F
eb059969e3 Move getAChildContainer one scope up 2025-04-29 09:42:22 +02:00
Asger F
6e64a22579 Merge pull request #19393 from asgerf/js/json-extractor-trailing-commas2
JS: Tolerate trailing commas in JSON objects
2025-04-29 09:40:38 +02:00
Tamás Vajk
e73031c688 Update cpp/ql/integration-tests/query-suite/not_included_in_qls.expected
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2025-04-29 08:45:02 +02:00
Tamas Vajk
a408e216ae Add query suite inclusion tests for cpp, python 2025-04-29 08:45:01 +02:00
Jeroen Ketema
966b7463ee Merge pull request #19397 from jketema/use-after-free
C++: Add use-after-free FP tests
2025-04-29 08:32:44 +02:00
REDMOND\brodes
ac798f2bc6 Cipher Algorithm Slices 2025-04-28 16:03:41 -04:00
REDMOND\brodes
ac3675bdac Typo fix 2025-04-28 16:00:41 -04:00
REDMOND\brodes
219476cee0 Adding KDF iteration count inventory filters. 2025-04-28 15:47:58 -04:00
REDMOND\brodes
ce3eabf05a Updating model to support slicing. 2025-04-28 14:56:28 -04:00
REDMOND\brodes
5a8bffac11 Removing old asymmetric algorithm slice 2025-04-28 14:56:08 -04:00
REDMOND\brodes
1fd7643ab3 Adding example slicing queries. 2025-04-28 14:54:38 -04:00
Mathias Vorreiter Pedersen
b91a2cc159 Shared: Use 'isSink/1' in 'PropagateFlowConfig'. 2025-04-28 17:36:37 +01:00
REDMOND\brodes
7b7ed61beb Adding an asymmetric algorithm slice. 2025-04-28 11:34:32 -04:00
REDMOND\brodes
fdd09a4dbf Adding a new means for determining if there is nonce reuse. 2025-04-28 11:34:16 -04:00
REDMOND\brodes
28ccc83346 Adding a means to distinguish asymmetric algorithms. 2025-04-28 11:33:37 -04:00
Nick Rolfe
50f7ee1158 Merge pull request #19401 from github/post-release-prep/codeql-cli-2.21.2
Post-release preparation for codeql-cli-2.21.2
2025-04-28 16:16:21 +01:00
github-actions[bot]
2e0699ab2b Post-release preparation for codeql-cli-2.21.2 2025-04-28 14:03:28 +00:00
Nick Rolfe
69bc12dd4f Fix spelling/wording in qhelp for rb/uninitialized-local-variable 2025-04-28 14:41:21 +01:00
Napalys Klicius
ee3a3bd9f5 Add support for prototype methods in class instance member resolution 2025-04-28 15:17:26 +02:00
Napalys Klicius
4705d30bac Add call graph tests for prototype methods injected on class 2025-04-28 15:12:24 +02: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
Napalys Klicius
c57172121e Update Nodes.qll
Applied suggestions

Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com>
2025-04-28 14:58:51 +02:00
Nick Rolfe
e3f33f192f Remove erroneously-committed query 2025-04-28 13:55:34 +01:00
Napalys Klicius
8b53f8f2a6 Fix, prevent addHook return values from being treated as XSS sinks 2025-04-28 14:22:51 +02:00
Napalys Klicius
b4c98b40a5 Merge pull request #19364 from Napalys/js/aws_creds
JS: Improved modeling of `aws-sdk`
2025-04-28 14:18:03 +02:00
Jeroen Ketema
0bb0b5c587 C++: Add use-after-free FP tests 2025-04-28 14:13:14 +02:00
Napalys Klicius
73309fb9dd Updated modeling of aws-sdk with MaD 2025-04-28 14:00:12 +02:00
Napalys Klicius
654177daa7 Fixed naming acronyms to be PascalCase 2025-04-28 14:00:12 +02:00
Napalys Klicius
f7f9fb823a Updated takesConfigurationObject with API graphs 2025-04-28 14:00:12 +02:00
Napalys Klicius
42d5b80e81 Added support for AWS.Credentials hardcoded credentials 2025-04-28 14:00:12 +02:00
Napalys Klicius
f69037c176 Added ability to detect direct write to global AWS.config 2025-04-28 14:00:12 +02:00
Napalys Klicius
05e4677fd1 Added ability to detect new AWS.ServiceName cases with hardcoded credentials 2025-04-28 14:00:12 +02:00
Napalys Klicius
e6450a17ec Added test cases for individual AWS services, direct modification of global credentials and AWS.Credentials 2025-04-28 14:00:12 +02: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
Michael Nebel
f9d8be1ef7 C#: Add change note. 2025-04-28 13:41:06 +02:00
Michael Nebel
8bc965641a C#: Update integration tests expected output. 2025-04-28 13:38:15 +02:00
Michael Nebel
318bfc6d73 C#: Add cs/equality-on-floats to the code-quality suite. 2025-04-28 13:32:34 +02:00
Mathias Vorreiter Pedersen
f6e7d79f62 Merge pull request #19383 from MathiasVP/add-missing-predicate-to-mad-generation
C++: Fix missing summaries in MaD generation
2025-04-28 11:58:05 +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
Michael Nebel
2d6457e4d3 C#: Set the precision of cs/equality-on-floats to high. 2025-04-28 11:45:12 +02:00
Mathias Vorreiter Pedersen
e942ec9964 C++: Fix annotations after #19311. 2025-04-28 10:39:11 +01:00
Mathias Vorreiter Pedersen
6466a5dbaf Merge branch 'main' into add-missing-predicate-to-mad-generation 2025-04-28 10:33:24 +01:00
Nick Rolfe
70a3fe3e33 Add YAML front matter to change note 2025-04-28 10:09:33 +01:00
Asger F
152d6f3c29 JS: Tolerate trailing comma in JSON objects 2025-04-28 10:56:48 +02:00
Asger F
6dd8114f00 JS: Add test with trailing comma in JSON object 2025-04-28 10:56:34 +02:00
Paolo Tranquilli
2d32c366d8 Rust: add missing expected files 2025-04-28 10:46:36 +02: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
4ac104060e Bazel: remove 2.0.0 rules_kotlin patching 2025-04-28 10:22:11 +02:00
Paolo Tranquilli
aafd7f8418 Merge branch 'main' into redsun82/update-rules-kotlin 2025-04-28 10:20:55 +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
Paolo Tranquilli
adeaceb7af Rust: accept test changes 2025-04-25 17:41:13 +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
Paolo Tranquilli
89a9ae8bf4 Bazel: update rules_kotlin to 2.1.3 2025-04-25 17:18:09 +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
Paolo Tranquilli
49cf1739a4 Rust: expand attribute macros 2025-04-25 16:16:49 +02:00
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
Mathias Vorreiter Pedersen
79c03100f8 C++: Accept test changes. 2025-04-25 12:29:38 +01:00
Mathias Vorreiter Pedersen
2f265395af C++: Add missing predicate to grab the parameter position of a return kind. 2025-04-25 12:19:25 +01:00
Mathias Vorreiter Pedersen
63b0dd68c9 C++: Add a test with missing summaries. 2025-04-25 12:18:42 +01:00
Jeroen Ketema
9396f0ee55 C++: Set defaultFieldFlowBranchLimit to 3 2025-04-25 13:10:42 +02:00
Jeroen Ketema
ac3c3ae13a C++: Do not limit second level scopes to the top-level 2025-04-25 13:10:40 +02: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
Tom Hvitved
7e205366ab Rust: Adjust clone modeling 2025-04-25 08:49:02 +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
Tom Hvitved
6df5a1ef80 Rust: Extract SelfParams from crate graph 2025-04-24 15:30:23 +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
Geoffrey White
38397195a2 Rust: Add further source test cases for tokio. 2025-04-24 11:37:44 +01:00
Geoffrey White
b57375aa91 Rust: Add source tests for tcp (std and tokio). 2025-04-24 11:25:36 +01:00
Geoffrey White
809dd20f9d Rust: Add source tests for tokio (file). 2025-04-24 11:22:52 +01:00
Geoffrey White
307424e87e Rust: Add source tests for tokio (stdin). 2025-04-24 11:14:36 +01:00
Geoffrey White
dcc488cb05 Rust: Clean up the sources test. 2025-04-24 11:10:59 +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
Napalys Klicius
6a284eeecb Merged ES6Class into FunctionStyleClass 2025-04-24 09:12:20 +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
Napalys
fdfdcc0d93 Undo unnecessary name tracking for request, response objects 2025-04-22 14:16:45 +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
Napalys Klicius
63402ea581 Merge pull request #2 from asgerf/js/fastify-addhook
JS: Add isMiddlewareSetup() hook to Routing model
2025-04-22 12:07:39 +02:00
Asger F
00661b62dc JS: Add isMiddlewareSetup() hook to Routing model 2025-04-22 12:00:02 +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
Joe Farebrother
6431228d37 Limit size of allowImplicitRead for performance 2025-04-16 09:40:01 +01: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
Nicolas Will
1958c192ec Reimplement EC, MAC, key creation logic + consumer 2025-04-15 23:00:12 -04: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
Napalys
5c3556da66 Add user-controlled property tracking and update code injection alerts in Fastify hooks 2025-04-15 09:41:52 +02:00
Napalys
9b194ea613 Added addHook to RouteSetup thus now it is recognized now as rouute handler 2025-04-15 09:37:13 +02:00
Napalys
c175081698 Added test cases for fastify.addHook 2025-04-15 09:33:41 +02:00
Napalys
f1a3293f4c Added change note 2025-04-15 09:27:51 +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
33c857ce9f Rust: update supported languages footnote 2025-04-11 12:01:24 +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
Paolo Tranquilli
df427f7de8 Rust: add supported frameworks file 2025-04-11 11:53:27 +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
Paolo Tranquilli
00f6d9b305 Rust: start preparing documentation changes 2025-04-10 17:35:27 +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
Nicolas Will
b9d0abda63 Move CipherOperation into KeyOperation, refactor
- KeyOperation and Algorithm now encompasses encryption, decryption, wrapping, unwrapping, signing, and verifying.
- Removed elliptic curve implementation from JCA.qll pending rewrite
- Removed JCAAlgorithmInstance abstraction from JCA.qll
- Cleaned up and removed JCA-specific naming from Model.qll
- Added and clarified documentation
2025-04-09 21:19:00 +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
REDMOND\brodes
a2fe19af38 Initial progress on key agreement. 2025-04-04 16:00:05 -04: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
Ben Rodes
69429a3e02 Merge pull request #9 from nicolaswill/brodes/elliptic_curves
Misc. modifications to support elliptic curves and hooking them up to…
2025-04-04 09:06:20 -04:00
REDMOND\brodes
697c9f0bb0 Elliptic curve AVCs are incorrect, but I'm not sure how to fix them generally. Putting in a stop gap to use 'isCipherAVC' for now. 2025-04-04 09:02:09 -04: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
REDMOND\brodes
66a60296b8 Merge branch 'brodes/cipher_operation' into brodes/elliptic_curves 2025-04-02 13:46:12 -04:00
Nicolas Will
50507586ac Refactor output artifact type 2025-04-02 19:44:57 +02: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
REDMOND\brodes
ac96649a02 Misc. modifications to support elliptic curves and hooking them up to keygeneration. 2025-04-01 16:15:49 -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
Nicolas Will
bec69ca106 Refactor consumer and generic source model 2025-03-26 13:27:32 +01:00
Nicolas Will
9cd0340d21 Remove rankdir=LR; from DOT output 2025-03-26 13:26:45 +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
Nicolas Will
e9c3e14fab Merge branch 'brodes/cipher_operation' of https://github.com/nicolaswill/codeql into brodes/cipher_operation 2025-03-22 08:01:06 +01:00
Nicolas Will
fb7c003398 Add initial MAC support for JCA, refactor hashes 2025-03-22 08:01:03 +01: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
REDMOND\brodes
9278a41578 Merge branch 'brodes/cipher_operation' of https://github.com/nicolaswill/codeql into brodes/cipher_operation 2025-03-20 16:28:43 -04:00
REDMOND\brodes
b695641362 Add signature to cipher operation 2025-03-20 16:27:20 -04:00
Nicolas Will
d18dac0c8e Add JCA key (generation) modelling 2025-03-20 21:26:18 +01: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
REDMOND\brodes
63aaebbea6 . 2025-03-19 18:30:06 -04: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
Nicolas Will
95607c5f31 Refactor instances and consumers + add JCA hashes 2025-03-18 22:05:00 +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
Simon Friis Vindum
81b28df089 Merge branch 'main' into rust-type-inference-tweaks 2025-03-17 13:18:45 +01: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
Michael B. Gale
284f612965 C#: Use StringBuilder for feed arguments in GetRestoreArgs 2025-03-14 14:06:48 +00:00
Michael B. Gale
b6c74fe306 C#: Narrow Exception to JsonException 2025-03-14 14:05:27 +00:00
Michael B. Gale
95605935fa C#: Fix .ToList() being called on null 2025-03-14 14:02:38 +00: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
Michael B. Gale
a8dde15a87 C#: Only provide feeds on command line if Dependabot proxy is enabled 2025-03-14 13:47:05 +00: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
Michael B. Gale
6b15f77168 C#: Fix test failures 2025-03-14 13:39:28 +00:00
Michael B. Gale
0db6a269e4 C#: Propagate explicit feeds to RestoreProjects 2025-03-14 13:39:27 +00:00
Michael B. Gale
726123c0cb C#: Allow specifying package feeds for dotnet restore as command line arguments 2025-03-14 13:39:26 +00:00
Michael B. Gale
11efb55aa1 C#: Parse environment variables to obtain list of registry URLs 2025-03-14 13:39:26 +00:00
Michael B. Gale
63d5517d7c C#: Add list of registries to DependabotProxy 2025-03-14 13:39:25 +00:00
Michael B. Gale
6b2f348c4c C#: Add CODEQL_PROXY_URLS environment variable 2025-03-14 13:39:23 +00:00
Napalys Klicius
70232a34f3 Merge pull request #19006 from Napalys/js/vue_tanstack_model
Js: Added support for `@tanstack/vue-query`
2025-03-14 14:36:35 +01:00
Napalys
4c77ee2f4f Added change note. 2025-03-14 14:27:14 +01:00
Napalys
933f3c6f77 Refactor Tanstack integration: remove Tanstack framework and added model as data for it instead. 2025-03-14 13:52:05 +01:00
Napalys
d40ef0ddae Changed from taint to value steps.
Co-authored-by: Asgerf <asgerf@github.com>
2025-03-14 13:48:15 +01:00
Napalys
1468e81c55 Ensure interface extends valid expr. 2025-03-14 13:41:37 +01:00
Anders Schack-Mulligen
474b8a5a31 Merge pull request #18942 from aschackmull/cpp/refactor-ssa
C++: Refactor SSA usage in data flow.
2025-03-14 13:31:32 +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
Simon Friis Vindum
60f96eee7e Merge pull request #19026 from paldepind/rust-expr-type-eq
Rust: Handle type equality for a few more expression types
2025-03-14 13:14:52 +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
Simon Friis Vindum
c17c0458dd Rust: Handle type equality for a few more expression types 2025-03-14 11:59:34 +01: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
Simon Friis Vindum
82304832e8 Rust: Add type inference examples 2025-03-14 11:13:16 +01:00
Michael Nebel
b3a1ff1fc3 C#: Add cs/non-short-circuit to the CCR suite. 2025-03-14 10:52:25 +01:00
Anders Schack-Mulligen
c2309442d5 C++: Accept qltest changes. 2025-03-14 10:51:28 +01:00
Mathias Vorreiter Pedersen
90774c03be C++: Remove yet another DefinitionExt reference. 2025-03-14 10:51:27 +01:00
Anders Schack-Mulligen
35687ea698 C++: Merge two cached stages. 2025-03-14 10:51:27 +01:00
Anders Schack-Mulligen
7bfd47a924 C++: Fix bad join order.
Before:

[2025-03-12 10:27:53] Evaluated non-recursive predicate SsaInternals::UseImpl.hasIndexInBlock/2#dispred#1e34a5af@e87543ui in 935ms (size: 8905695).
Evaluated relational algebra for predicate SsaInternals::UseImpl.hasIndexInBlock/2#dispred#1e34a5af@e87543ui with tuple counts:
                          {3} r1 = SsaInternals::DirectUseImpl#a58aae88 AND NOT `_ArithmeticOperation::PostfixCrementOperation#17623ada_Expr::UnaryOperation.getOperand/0#dispred#990__#antijoin_rhs`(FIRST 3)
         8579337   ~4%    {2}    | SCAN OUTPUT In.1, In.0
         8579337   ~0%    {2}    | JOIN WITH `Operand::Operand.getUse/0#dispred#427b49d0` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
         8579337   ~0%    {3}    | JOIN WITH `IRBlock::Cached::getInstruction/2#627f9c61_201#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2

           48215   ~2%    {2} r2 = SCAN SsaInternals::GlobalUse#9cd323b4 OUTPUT In.2, In.0
        35467318   ~3%    {2}    | JOIN WITH `SSAConstruction::getInstructionEnclosingIRFunction/1#5443f355_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

           48189   ~0%    {2} r3 = JOIN r2 WITH Instruction::ReturnInstruction#28bfb7eb ON FIRST 1 OUTPUT Lhs.0, Lhs.1

           12332   ~0%    {2} r4 = JOIN r2 WITH Instruction::UnreachedInstruction#774c7a34 ON FIRST 1 OUTPUT Lhs.0, Lhs.1

           60521   ~0%    {2} r5 = r3 UNION r4
           60521   ~2%    {3}    | JOIN WITH `IRBlock::Cached::getInstruction/2#627f9c61_201#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2

           39316   ~0%    {2} r6 = JOIN SsaInternals::FinalParameterUse#c1f84700_10#join_rhs WITH `Parameter::Parameter.getFunction/0#dispred#803faca2` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        43821265   ~0%    {2}    | JOIN WITH `Instruction::Instruction.getEnclosingFunction/0#dispred#cb8ccc56_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

           39194   ~0%    {2} r7 = JOIN r6 WITH Instruction::ReturnInstruction#28bfb7eb ON FIRST 1 OUTPUT Lhs.0, Lhs.1

           21255   ~2%    {2} r8 = JOIN r6 WITH Instruction::UnreachedInstruction#774c7a34 ON FIRST 1 OUTPUT Lhs.0, Lhs.1

           60449   ~0%    {2} r9 = r7 UNION r8
           60449   ~3%    {3}    | JOIN WITH `IRBlock::Cached::getInstruction/2#627f9c61_201#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2

         8784725   ~1%    {5} r10 = JOIN `_SsaInternals::DirectUseImpl#a58aae88_SsaInternals::DirectUseImpl.getBase/0#dispred#4b8c43d0_SsaInte__#shared` WITH `SsaInternals::DirectUseImpl.getBase/0#dispred#4b8c43d0` ON FIRST 1 OUTPUT Rhs.1, Lhs.0, Lhs.1, Lhs.2, Lhs.3
         8784725   ~0%    {5}    | JOIN WITH `cached_SSAConstruction::getInstructionAst/1#d0d95b50` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4
          210435   ~4%    {5}    | JOIN WITH `Expr::UnaryOperation.getOperand/0#dispred#990de484#bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4
          205388   ~0%    {4}    | JOIN WITH ArithmeticOperation::PostfixCrementOperation#17623ada ON FIRST 1 OUTPUT Lhs.4, Lhs.3, Lhs.2, Lhs.1
          205388   ~4%    {3}    | JOIN WITH `__IRBlock::Cached::getInstruction/2#627f9c61_201#join_rhs__ArithmeticOperation::PostfixCrementOperat__#join_rhs` ON FIRST 3 OUTPUT Rhs.4, Lhs.3, Rhs.3
          205388   ~0%    {3}    | JOIN WITH `Operand::Operand.getUse/0#dispred#427b49d0` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1
          205388   ~1%    {3}    | JOIN WITH `IRBlock::Cached::getInstruction/2#627f9c61_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Rhs.2

         8905695   ~0%    {3} r11 = r1 UNION r5 UNION r9 UNION r10
                          return r11

After:

[2025-03-12 11:12:48] Evaluated non-recursive predicate SsaInternals::hasReturnPosition/3#02f7eab8@bc405c4l in 3ms (size: 49368).
Evaluated relational algebra for predicate SsaInternals::hasReturnPosition/3#02f7eab8@bc405c4l with tuple counts:
        49368  ~3%    {1} r1 = Instruction::ReturnInstruction#28bfb7eb UNION Instruction::UnreachedInstruction#774c7a34
        49368  ~0%    {2}    | JOIN WITH `cached_SSAConstruction::getInstructionEnclosingIRFunction/1#5443f355` ON FIRST 1 OUTPUT Lhs.0, Rhs.1
        49368  ~2%    {3}    | JOIN WITH `IRBlock::Cached::getInstruction/2#627f9c61_201#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2
                      return r1

[2025-03-12 11:12:54] Evaluated non-recursive predicate SsaInternals::UseImpl.hasIndexInBlock/2#dispred#1e34a5af@6e30cduo in 549ms (size: 8905695).
Evaluated relational algebra for predicate SsaInternals::UseImpl.hasIndexInBlock/2#dispred#1e34a5af@6e30cduo with tuple counts:
          48215   ~2%    {2} r1 = SCAN SsaInternals::GlobalUse#9cd323b4 OUTPUT In.2, In.0
          60521   ~2%    {3}    | JOIN WITH `SsaInternals::hasReturnPosition/3#02f7eab8` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2

          50725   ~0%    {2} r2 = JOIN `IRFunctionBase::IRFunctionBase.getFunction/0#dispred#b024672e_10#join_rhs` WITH `Parameter::Parameter.getFunction/0#dispred#803faca2_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
          39231   ~2%    {2}    | JOIN WITH SsaInternals::FinalParameterUse#c1f84700_10#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1
          60449   ~3%    {3}    | JOIN WITH `SsaInternals::hasReturnPosition/3#02f7eab8` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2

                         {3} r3 = SsaInternals::DirectUseImpl#a58aae88 AND NOT `_ArithmeticOperation::PostfixCrementOperation#17623ada_Expr::UnaryOperation.getOperand/0#dispred#990__#antijoin_rhs`(FIRST 3)
        8579337   ~1%    {2}    | SCAN OUTPUT In.1, In.0
        8579337   ~0%    {2}    | JOIN WITH `Operand::Operand.getUse/0#dispred#427b49d0` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        8579337   ~1%    {3}    | JOIN WITH `IRBlock::Cached::getInstruction/2#627f9c61_201#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2

        8784725   ~0%    {5} r4 = JOIN `_SsaInternals::DirectUseImpl#a58aae88_SsaInternals::DirectUseImpl.getBase/0#dispred#4b8c43d0_SsaInte__#shared` WITH `SsaInternals::DirectUseImpl.getBase/0#dispred#4b8c43d0` ON FIRST 1 OUTPUT Rhs.1, Lhs.0, Lhs.1, Lhs.2, Lhs.3
        8784725   ~0%    {5}    | JOIN WITH `cached_SSAConstruction::getInstructionAst/1#d0d95b50` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4
         210435   ~0%    {5}    | JOIN WITH `Expr::UnaryOperation.getOperand/0#dispred#990de484#bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4
         205388   ~2%    {4}    | JOIN WITH ArithmeticOperation::PostfixCrementOperation#17623ada ON FIRST 1 OUTPUT Lhs.4, Lhs.3, Lhs.2, Lhs.1
         205388   ~0%    {3}    | JOIN WITH `__IRBlock::Cached::getInstruction/2#627f9c61_201#join_rhs__ArithmeticOperation::PostfixCrementOperat__#join_rhs` ON FIRST 3 OUTPUT Rhs.4, Lhs.3, Rhs.3
         205388   ~0%    {3}    | JOIN WITH `Operand::Operand.getUse/0#dispred#427b49d0` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1
         205388   ~0%    {3}    | JOIN WITH `IRBlock::Cached::getInstruction/2#627f9c61_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Rhs.2

        8905695   ~0%    {3} r5 = r1 UNION r2 UNION r3 UNION r4
                         return r5
2025-03-14 10:51:27 +01:00
Anders Schack-Mulligen
ba13d7fffe C++: Remove superfluous disjunct. 2025-03-14 10:51:26 +01:00
Anders Schack-Mulligen
ecb5e7ad07 C++: Fix spurious ExprNode fanout in DataFlowIntegration. 2025-03-14 10:51:26 +01:00
Anders Schack-Mulligen
b5a2f5d3ff C++: Remove useless ipa wrapper. 2025-03-14 10:51:25 +01:00
Anders Schack-Mulligen
4bd35b10fc C++: Delete dead code. 2025-03-14 10:51:25 +01:00
Anders Schack-Mulligen
6ba1d2ef14 C++: Replace DefinitionExt usage with Definition. 2025-03-14 10:51:24 +01:00
Anders Schack-Mulligen
9375e571b1 C++: Use SSA data flow integration module. 2025-03-14 10:51:24 +01:00
Anders Schack-Mulligen
c7ff2f55b5 C++: Remove yet another DefinitionExt reference. 2025-03-14 10:51:23 +01:00
Anders Schack-Mulligen
e01552c3f0 C++: Remove another DefinitionExt reference. 2025-03-14 10:51:23 +01:00
Anders Schack-Mulligen
c5755ba8d4 C++: Remove a DefinitionExt reference. 2025-03-14 10:51:23 +01:00
Anders Schack-Mulligen
0c17786ed0 C++: Delete unused predicate 2025-03-14 10:51:22 +01:00
Napalys
66737402c2 Updated test ouput with fixes from main. 2025-03-14 10:50:10 +01:00
Napalys Klicius
908f48a22f Merge branch 'main' into js/vue_tanstack_model 2025-03-14 10:45:42 +01:00
Asger F
9a8cb1a55b Merge pull request #19007 from asgerf/js/api-graph-awaited-return
JS: Fix bug in API graphs getPromised() missing async function returns
2025-03-14 10:36:16 +01:00
Simon Friis Vindum
4dbfda59cf Merge branch 'main' into rust-data-flow-split 2025-03-14 09:58:46 +01:00
Tom Hvitved
cf0b3b5727 Merge pull request #18632 from hvitved/rust/type-inference
Rust: Implement basic type inference in QL
2025-03-14 09:43:04 +01:00
Michael Nebel
a3ef137a8e Merge pull request #19014 from michaelnebel/csharp/ccr-useless-gethashcode-all
C#: Add `cs/useless-gethashcode-call` to the CCR suite.
2025-03-14 08:45:31 +01:00
Michael Nebel
563ffb8c27 Merge pull request #19010 from michaelnebel/csharp/useless-gethashcode-call
C#: Increase precision of `cs/useless-gethashcode-call`.
2025-03-14 08:44:38 +01:00
Jeroen Ketema
de2fb037d0 Merge pull request #18980 from LeStarch/jpl-c-basic-integral-types-fix
Fixing BasicIntTypes to allow C Standard Integers and 'bool'
2025-03-14 08:06:55 +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
M Starch
7b5d604607 Updating tests to allow new typedefs 2025-03-13 15:04:37 -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
Tom Hvitved
c3739d4f23 Address review comments 2025-03-13 21:10:48 +01:00
Óscar San José
fba7bcd127 Merge pull request #19021 from github/oscarsj-patch-2
Add paths to codeql-config.yml to avoid codeql analysis errors
2025-03-13 20:26:14 +01:00
M Starch
7f4905987e Addressing review comments
Reduced the category to minorAnalysis.  Handled bools via a instanceof with BoolType.  Formatted the query correctly.
2025-03-13 11:12:35 -07:00
Jon Janego
de5d3b6263 Update query-metadata-style-guide.md 2025-03-13 12:42:51 -05:00
Óscar San José
66a496fa82 Add paths to codeql-config.yml to avoid codeql analysis errors 2025-03-13 18:27:25 +01:00
Paolo Tranquilli
45db4ae7c6 Merge pull request #19018 from github/redsun82/rust-ql-test-log-fix
Rust: fix `qltest.sh` for some versions of macOS
2025-03-13 18:07:50 +01: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
Mathias Vorreiter Pedersen
d23c8fd662 Merge pull request #19001 from MathiasVP/add-uncertain-api-for-dataflow
C++: Refine `Node.asDefinition`
2025-03-13 09:35:53 -07:00
Simon Friis Vindum
fb718660d9 Rust: Generate more sinks and update query description 2025-03-13 17:35:32 +01:00
Mathias Vorreiter Pedersen
6f4e9ed136 Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-03-13 16:00:36 +00:00
Mathias Vorreiter Pedersen
0e5fa1b5eb Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-03-13 16:00:23 +00:00
Mathias Vorreiter Pedersen
470321e8b6 Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-03-13 16:00:15 +00:00
Mathias Vorreiter Pedersen
9cde2bb94d Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-03-13 15:59:57 +00:00
Mathias Vorreiter Pedersen
68b414d169 Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
2025-03-13 15:59:48 +00:00
Napalys Klicius
28d1152250 Merge pull request #19009 from Napalys/js/unescape
JS: Add support for `unescape`
2025-03-13 16:59:01 +01:00
Paolo Tranquilli
8cc39af190 Rust: fix qltest.sh for some versions of macOS
Turns out some version of macOS do not support the way `mktemp` was
being used. In any case it wasn't really necessary, see
https://github.com/github/codeql/pull/18918#discussion_r1979444850
(which I forgot to follow up on at the time after approval).
2025-03-13 16:54:27 +01:00
Taus
3d643c02be Merge pull request #18921 from github/tausbn/python-fix-unused-global-variable-in-forward-annotation-fp
Python: Add support for forward references in unused var query
2025-03-13 16:37:25 +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
Tom Hvitved
255f06b65a Rust: Update expected test output 2025-03-13 15:51:33 +01:00
Michael Nebel
e2699586db C#: Add cs/useless-gethashcode-call to the CCR suite. 2025-03-13 15:42:28 +01:00
Mathias Vorreiter Pedersen
0fe77154e1 C++: Add library change note. 2025-03-13 14:29:34 +00:00
Tom Hvitved
3bb89ea863 Rust: Move type inference/path resolution out of elements folder 2025-03-13 15:05:00 +01:00
Tom Hvitved
af91152f5c Address review comments 2025-03-13 15:04:59 +01: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
Michael Nebel
4681f28f92 Merge pull request #19005 from michaelnebel/csharp/local-not-disposed
C#: Revisit `cs/local-not-disposed` tests.
2025-03-13 14:04:48 +01:00
Owen Mansel-Chan
aed51644ba Convert to inline expectations test 2025-03-13 12:55:02 +00:00
Napalys
0df2069575 Added change note. 2025-03-13 13:47:46 +01:00
Napalys
de5c7efd63 Added test case for unescape. 2025-03-13 13:47:42 +01:00
Michael Nebel
dff66c7b28 C#: Add change-note. 2025-03-13 13:42:58 +01:00
Michael Nebel
36a524929f C#: Update tests and test expected output. 2025-03-13 13:38:13 +01:00
Tom Hvitved
78280af570 Rust: Use 'infer' instead of 'resolve' in type inference library 2025-03-13 13:34:43 +01:00
Michael Nebel
4b02198652 C#: Only consider calling GetHashCode on byte, sbyte, short, ushort and int as useless. 2025-03-13 13:32:22 +01:00
Michael Nebel
a6ec8b6a25 C#: Convert tests cs/useless-gethashcode-call to inline tests. 2025-03-13 13:31:20 +01:00
Tom Hvitved
2394f2fab8 Rust: Fix bug in path resolution library 2025-03-13 13:23:18 +01:00
Tom Hvitved
795ba25895 Rust: Add more consistency checks 2025-03-13 13:23:16 +01:00
Tom Hvitved
fcdffc4e73 Rust: Use type inference in path resolution test 2025-03-13 13:23:14 +01:00
Tom Hvitved
e8505ad33d Rust: Use type inference to resolve method calls and field accesses 2025-03-13 13:23:13 +01:00
Tom Hvitved
62d4e6fe3f Rust: Implement basic type inference in QL 2025-03-13 13:23:11 +01:00
Tom Hvitved
3a58611271 Shared: Add shared type inference library 2025-03-13 13:23:09 +01: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
Taus
f30ebf1571 Merge pull request #18871 from github/tausbn/python-modernise-special-method-signature-query
Python: Move min/maxParameter methods to `Function` class
2025-03-13 13:03:21 +01:00
Asger F
08ee51cbc4 JS: Move some promise-related store steps into PromiseFlow::storeStep
API graphs calls PromiseFlow::storeStep to propagate promises, which means it missed a store steps added elsewhere in the old promise library model.

We want API graphs to rely on type-tracking steps in general, like in Ruby, but for now just fixing the bug.
2025-03-13 12:53:04 +01:00
Tom Hvitved
1636abb81b Merge pull request #18985 from hvitved/rust/immediate-child
Rust/Swift: Add `get(Immediate)Child` predicate
2025-03-13 12:50:53 +01:00
Napalys
5dff23de6b Added change note. 2025-03-13 12:45:27 +01:00
Napalys
3640e5e425 Added model for tanstack-react useQueries 2025-03-13 12:45:26 +01:00
Napalys
03330ef24d Added test cases for tanstack-react useQueries. 2025-03-13 12:45:25 +01:00
Napalys
6c9aa0e872 Added modeling of tanstack-vue useQueries. 2025-03-13 12:45:23 +01:00
Napalys
4917d64ce7 Added test cases for tanstack-vue useQueries. 2025-03-13 12:45:05 +01:00
Napalys
0c0158899e Added tanstack-vue useQuery modeling 2025-03-13 12:25:07 +01:00
Napalys
7712ca368a Added useQuery tanstack-vue test case 2025-03-13 12:25:05 +01:00
Asger F
89410d07b3 JS: Add failing test 2025-03-13 11:59:23 +01:00
Geoffrey White
1aa223652f Merge pull request #18977 from geoffw0/sourcesinkdoc
Rust: Source and sink doc / tidy up
2025-03-13 10:53:44 +00:00
Simon Friis Vindum
3c644144b1 Rust: Extract data flow node and content into separate files 2025-03-13 11:22:04 +01:00
Michael Nebel
b1edd9294b C#: Add some more test cases to cs/local-not-disposed. 2025-03-13 11:19:37 +01:00
Tom Hvitved
dd21dab055 Swift: Add get(Immediate)Child predicate 2025-03-13 11:13:04 +01:00
Tom Hvitved
8777bc42c7 Rust: Add get(Immediate)Child predicate 2025-03-13 11:13:01 +01:00
Michael Nebel
209b9c6114 C#: Re-factor to use inline expectation tests instead. 2025-03-13 11:11:23 +01:00
Michael Nebel
40375a0387 C#: Use stubs for the cs/local-not-disposed tests. 2025-03-13 10:47:45 +01:00
Michael Nebel
5eb9a535a4 C#: Remove disposal test for library code as we are no longer doing CIL extraction or data flow. 2025-03-13 10:45:00 +01:00
Michael Nebel
72c7024c8b Merge pull request #18999 from michaelnebel/csharp/ccr-constant-condition
C#: Add cs/constant-condition to the CCR suite.
2025-03-13 10:02:00 +01:00
Arthur Baars
fa79dbc89a Merge pull request #18228 from github/aibaars/crate-graph
Rust: extract crate graph
2025-03-13 10:00:48 +01:00
Simon Friis Vindum
4de69c70a8 Rust: Add cleartext transmission query 2025-03-13 08:45:36 +01:00
Andrew Eisenberg
e05b172c88 Merge pull request #19002 from github/aeisenberg/actions-security-and-quality
Update actions query suites
2025-03-12 13:43:49 -07:00
yoff
10a9b78bc5 Merge pull request #18738 from github/tausbn/python-fix-match-pruning-logic
Python: Don't prune any `MatchLiteralPattern`s
2025-03-12 20:01:26 +01:00
Andrew Eisenberg
02051ff7b1 Update the security experimental suite 2025-03-12 11:46:03 -07:00
Andrew Eisenberg
cd63e7cf54 Fix the actions-security-and-quality.qls suite
It was not using the proper selectors. It is now the same as
other quality suites in other languages.
2025-03-12 11:43:59 -07:00
Mathias Vorreiter Pedersen
aeb1acba97 C++: Use the new API in queries. 2025-03-12 17:09:05 +00:00
Mathias Vorreiter Pedersen
66e8b2d7e5 C++: Add an 'asDefinition' overload to check if a definition is certain or not. 2025-03-12 17:07:07 +00:00
Geoffrey White
0df652b297 Rust: Autoformat. 2025-03-12 16:38:00 +00:00
Geoffrey White
64b57679bf Rust: ... one more fix. 2025-03-12 16:32:53 +00:00
Geoffrey White
ee6455a7b1 Rust: ... and extend QuerySink to complete the above. 2025-03-12 16:23:41 +00:00
Geoffrey White
56f6a67d5f Rust: Add sinks for rust/regex-injection to stats. 2025-03-12 16:08:33 +00:00
Geoffrey White
f8112945a8 Merge branch 'main' into sourcesinkdoc 2025-03-12 16:04:56 +00:00
Geoffrey White
df4f117a7c Rust: QLDoc formatting. 2025-03-12 15:59:44 +00:00
Napalys Klicius
40903a9643 Merge pull request #18975 from Napalys/js/tanstack_angular
JS: Update Angular Client Request's with API graph and `Tanstack` Angular modeling
2025-03-12 15:30:26 +01:00
yoff
a5101bdae6 Merge pull request #18855 from Kwstubbs/ssrf_documentation
Python: Add more documentation in regards to SSRF
2025-03-12 15:27:01 +01:00
Michael Nebel
b76527fa84 C#: Add cs/constant-condition to the CCR suite. 2025-03-12 14:55:20 +01:00
Michael Nebel
e79cb443da Merge pull request #18976 from michaelnebel/csharp/constant-condition
C#: Increase precision of `cs/constant-condition`.
2025-03-12 14:42:15 +01:00
Napalys
f867e0fae8 Added angular-query so when it is released it would be still modeled. 2025-03-12 14:00:44 +01:00
Napalys Klicius
bf24f7794f Update javascript/ql/lib/change-notes/2025-03-11-tanstack-angular.md
Co-authored-by: Asger F <asgerf@github.com>
2025-03-12 13:58:09 +01:00
Napalys Klicius
86bd3b8d26 Merge pull request #18986 from Napalys/js/remove_dedundant_stats
JS: Removed auto generated stats file
2025-03-12 12:51:26 +01:00
Napalys
8a8defd48f Removed redundant stats file genarated from check-db-upgrades-javascript 2025-03-12 11:57:27 +01:00
Napalys
09986bc26c Added change note. 2025-03-12 11:54:57 +01:00
Napalys
770920e738 Add new model configuration for @tanstack/angular-query-experimental. 2025-03-12 11:54:55 +01:00
Napalys
184d23df46 Add test cases for @tanstack/angular-query-experimental injectQuery 2025-03-12 11:54:53 +01:00
Asger F
b4016c144b Merge pull request #18973 from asgerf/js/vue-fix
JS: Fix attributes nodes missing an enclosing callable
2025-03-12 11:23:25 +01:00
Arthur Baars
b2e0eaf664 Merge pull request #18965 from JarLob/docs
Minor example workflow fix
2025-03-12 11:17:42 +01:00
Michael Nebel
42f86a8234 Update csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql
Co-authored-by: Tom Hvitved <hvitved@github.com>
2025-03-12 11:13:25 +01:00
Chris Smowton
312f201ce0 Merge pull request #18836 from smowton/smowton/admin/maven-download-failure-test
Java: Add integration test for failure to download a particular Maven version
2025-03-12 10:11:14 +00:00
Tom Hvitved
902b2ff641 Merge pull request #18983 from hvitved/ruby/synth-global-test
Ruby: Add `SyntheticGlobal` test
2025-03-12 10:57:42 +01:00
Chris Smowton
4205d5ecea Change note 2025-03-12 09:21:09 +00:00
Chris Smowton
c43b2b167f Fix test on Windows 2025-03-12 09:21:08 +00:00
Chris Smowton
0c99ae2800 Add Win32 Maven command 2025-03-12 09:21:07 +00:00
Chris Smowton
cd0aebefa4 Add integration test for failure to download a particular Maven version 2025-03-12 09:21:06 +00:00
Óscar San José
ca6f3ffa43 Merge pull request #18742 from github/oscarsj/add-actions-analysis
Add actions to codeql analysis workflow
2025-03-12 10:11:58 +01:00
Napalys Klicius
eddd724ea0 Merge pull request #18981 from Napalys/js/db_stats_fix
JS: Update database.stats
2025-03-12 09:24:09 +01:00
Tom Hvitved
a574c9f276 Ruby: Add SyntheticGlobal test 2025-03-12 09:22:41 +01:00
Michael Nebel
9e8339db6d Merge pull request #18961 from michaelnebel/csharp/ccr-local-not-disposed
C#: Add `cs/local-not-disposed` to the CCR suite.
2025-03-12 09:18:40 +01:00
Michael Nebel
4a3e463918 Merge pull request #18950 from michaelnebel/csharp/localnotdisposed
C#: Exclude Task from cs/local-not-disposed.
2025-03-12 09:17:22 +01:00
Napalys
979a5b4587 Updated stats file with intersection, subtraction and quoted_string. 2025-03-12 09:02:53 +01:00
Simon Friis Vindum
b3601b1ac2 Merge pull request #18946 from paldepind/rust-regex-injection
Rust: Add regular expression injection query
2025-03-12 08:15:54 +01:00
M Starch
f01737a4c0 Fixing BasicIntTypes to allow C Standard Integers and 'bool'
The purpose of this check is to ensure that all integral types used by the code point to some fixed size type (e.g. an unsigned 8-bit integer). However; the previous implementation only allowed JPL style typedefs (i.e. U8) and ignored C standard integer types (i.e. uint8_t). This causes the query to false-positive when a typedef resolves to a C standard int type.

'bool' has also be allowed as part of the exclusions list as it represents distinct values 'true' and 'false' in C++ code.
2025-03-11 14:56:57 -07:00
Jami
269f9fa7c9 Merge pull request #18978 from jcogs33/jcogs33/java/rename-springframework-stubs-dir
Java: rename springframework stubs directory from 5.3.8 to 5.8.x
2025-03-11 16:39:30 -04:00
Jami Cogswell
e17486a9d8 Java: rename springframework stubs directory from 5.3.8 to 5.8.x 2025-03-11 15:20:58 -04:00
REDMOND\brodes
8a7671dc2a Adding block mode models to openssl. 2025-03-11 15:20:05 -04:00
REDMOND\brodes
71eae39feb Adding missing block modes. 2025-03-11 15:19:42 -04:00
REDMOND\brodes
c98e6d7c56 Adding a stub EVP_CIpher_Operation for EVP_PKEY, this probably should be made into it's own class, hence it is a stub with comments. 2025-03-11 14:49:07 -04:00
REDMOND\brodes
a9458ba762 Formatting, removing dead comments, 2025-03-11 14:48:38 -04:00
REDMOND\brodes
d988afd4a4 Adding an EVP_AASYM_CIPHER_fetch getter. 2025-03-11 14:47:10 -04:00
REDMOND\brodes
7757279908 Adding a KDF algorithm getter. 2025-03-11 14:46:36 -04:00
Jami
ea9b0462bf Merge pull request #18793 from jcogs33/jcogs33/java/spring-boot-actuators-promo
Java: Promote Spring Boot Actuators query from experimental
2025-03-11 14:42:14 -04:00
REDMOND\brodes
44b1e921d6 commenting out hash size for now, TODO 2025-03-11 14:10:04 -04:00
REDMOND\brodes
085e8d40fd Hash nodes have instances. 2025-03-11 14:06:36 -04:00
REDMOND\brodes
f69b057893 Updating OpenSSLKnownAlgorithmConstants.qll (a few bugs) and also enforcing that known key sizes are on the normalized name (need to re-visit for GOST). 2025-03-11 13:35:44 -04:00
REDMOND\brodes
ae574f7cf2 Resolving hash and cipher types for openssl not using literals but KnownOpenSSLAlgorithmConstant. 2025-03-11 13:35:02 -04:00
Remco Vermeulen
da720b8b6e Merge pull request #18966 from github/rvermeulen/add-missing-dependency
Add missing dependency
2025-03-11 09:43:45 -07:00
Geoffrey White
daa57a9cb5 Merge pull request #18952 from geoffw0/unusedvarfix
Rust: Improve rust/unused-variable and rust/unused-value
2025-03-11 15:52:42 +00:00
Asger F
356b9e68c3 JS: Change note 2025-03-11 16:51:51 +01:00
Asger F
8599ab2503 JS: Fix attributes nodes missing an enclosing callable 2025-03-11 16:47:48 +01:00
Geoffrey White
044d0a13f0 Rust: Include WeakSensitiveDataHashing sinks as well. 2025-03-11 15:41:38 +00:00
Geoffrey White
4924a0faf3 Rust: Introduce a QuerySink class, common to all query sinks. 2025-03-11 15:41:37 +00:00
Geoffrey White
dc7d7f121e Rust: Clarify doc on FlowSink, FlowSource. 2025-03-11 15:41:35 +00:00
Michael Nebel
371a72ecec C#: Move Bad test into other file to avoid sync-files breakage. 2025-03-11 14:54:13 +01:00
Michael Nebel
1286420d39 C#: Add change-note. 2025-03-11 14:42:51 +01:00
Michael Nebel
120af3611a C#: Update test expected output. 2025-03-11 14:39:09 +01:00
Michael Nebel
150aa5d1cf C#: Include normal switch/case statements in the white list and allow the use of wildcards when there is a condition. 2025-03-11 14:37:56 +01:00
Michael Nebel
c15137e992 C#: Update test expected output. 2025-03-11 14:36:34 +01:00
Michael Nebel
f42ae48ffa C#: Add some switch case examples. 2025-03-11 14:35:04 +01:00
Asger F
087c555796 Merge pull request #18670 from asgerf/js/test-suite
JS: Update test suite to use post-processed inline expectations
2025-03-11 13:58:01 +01:00
Michael Nebel
4451e55bba C#: Convert cs/constant-condition tests to inline expectation tests. 2025-03-11 13:35:05 +01:00
Asger F
6499e5458b JS: Restore line lost in merge
'Accept incoming changes' in vscode somehow deleted this line.
2025-03-11 13:19:29 +01:00
Asger F
e8c5e4d006 Merge branch 'main' into js/test-suite 2025-03-11 13:17:08 +01:00
Arthur Baars
3991dc3aa3 Rust: improve performance of Crate::toString 2025-03-11 12:57:16 +01:00
Napalys Klicius
a4f2264f17 Merge pull request #18899 from Napalys/js/ecma-2024-regex
JS: Add ECMAScript 2024 `v` Flag Operators for Regex Parsing
2025-03-11 12:50:44 +01:00
Simon Friis Vindum
1e0b78ebd3 Rust: Update regex injection description
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-03-11 12:47:12 +01:00
Michael Nebel
744936fbd7 C#: Add cs/local-not-disposed to the CCR suite. 2025-03-11 12:46:16 +01:00
Arthur Baars
66ab3a8002 Rust: add Locatable::fromSource 2025-03-11 12:32:56 +01:00
Napalys
c001435258 Refactor Angular2 API to use httpClientApiNode for HttpClient method calls 2025-03-11 12:32:24 +01:00
Owen Mansel-Chan
22b36a86ce Merge pull request #18940 from owen-mc/go/unhandled-close-writable-handle
Go: Add test for FP in `go/unhandled-writable-file-close`
2025-03-11 11:13:36 +00:00
Napalys Klicius
a900f2cea4 Update javascript/ql/lib/change-notes/2025-03-03-regex-v.md
Co-authored-by: Asger F <asgerf@github.com>
2025-03-11 11:57:28 +01:00
Óscar San José
8b33dcd018 Merge branch 'main' into oscarsj/add-actions-analysis 2025-03-11 11:51:24 +01:00
Geoffrey White
5c394a9371 Correct modelgenerator exclusion for the security-experimental-selectors.yml suite helper. 2025-03-11 08:53:47 +00:00
Napalys Klicius
3191b2c6fc Update javascript/extractor/src/com/semmle/js/parser/RegExpParser.java
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com>
2025-03-11 09:40:24 +01:00
Napalys Klicius
7c9edff33c Merge pull request #18964 from Napalys/js/mark_down_table
JS: Refactor `markdown-table` library modeling
2025-03-11 09:02:56 +01:00
Asger F
b583e52a87 Merge pull request #18962 from asgerf/js/local-type-indirection
JS: Unfold local type aliases in getAnUnderlyingType
2025-03-11 08:54:03 +01:00
Napalys
08c07f815f Improved documentation, removed union fram change note. 2025-03-11 08:30:17 +01:00
Napalys Klicius
1ad8b4677d Update javascript/ql/lib/change-notes/2025-03-10-js-refactor-markdown-table.md
Co-authored-by: Asger F <asgerf@github.com>
2025-03-11 08:07:49 +01:00
Remco Vermeulen
8f603251d7 Add missing dependency
The query pack has suites that rely on the `codeql/suite-helpers` pack, but doesn't include it as a dependency.
This will cause error when resolving suites referring the Actions query pack.
2025-03-10 18:31:01 -07: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
Erik Krogh Kristensen
e6884cf705 Merge pull request #18959 from erik-krogh/faster-routing
JS: ensure the result from getPathFromFork is unique (to avoid a blowup)
2025-03-10 21:45:14 +01:00
Jaroslav Lobačevski
fa35d6c3ac Minor example workflow fix 2025-03-10 20:43:16 +00:00
REDMOND\brodes
f72efa638a Uncommenting out generic dataflow 2025-03-10 16:12:53 -04:00
REDMOND\brodes
c83cb533ce Adding an instantiation of the additional flow step class to automatically apply to generic dataflow. Flow step passthrough comes from the algorithm to getter flow passthroughs. 2025-03-10 15:56:01 -04:00
Asger F
73c0a93fc4 Merge pull request #18963 from asgerf/js/disable-tainted-nodes
JS: Remove TaintedNodes.ql from default meta query suite
2025-03-10 20:49:46 +01:00
REDMOND\brodes
036035b6a2 Adding modeling for OpenSSL random number generation. 2025-03-10 15:04:19 -04:00
Napalys
4a365857f1 Added change note. 2025-03-10 19:40:41 +01:00
Napalys
13c701948a Refactor Markdown taint steps and update expected results for reflected XSS tests 2025-03-10 19:27:36 +01:00
REDMOND\brodes
fe52351aed Stubbing out hash operation node, borrowing from cipher operaiton node 2025-03-10 14:10:55 -04:00
Geoffrey White
7717f92ec6 Rust: Clean up the test (it turns out a nested UnusedVariable.qlref is not needed) and accept consistency check changes. 2025-03-10 17:59:19 +00:00
REDMOND\brodes
73368ea59a Adding hashes to openssl library import 2025-03-10 13:27:39 -04:00
Paolo Tranquilli
d1876251ee Merge pull request #18918 from github/redsun82/rust-tweak-qltest-logs
Rust: tweak qltest logs
2025-03-10 17:47:30 +01:00
REDMOND\brodes
0672027822 Tracing new notion of known getters, which now includes direct getters for cipher and hash. Removed a redundant hash qll, and fixed misplacement of has type in model. 2025-03-10 11:46:26 -04:00
REDMOND\brodes
451808616e Getting rid of commented out code. 2025-03-10 11:35:16 -04:00
REDMOND\brodes
bd07b8a4c7 Making getter flow through 'copy' more general (copy can appear in any part of the call name now. 2025-03-10 11:34:26 -04:00
REDMOND\brodes
6a4659fc7e Updating known constants for OpenSSL to handle direct algorithm getters from older versions of openssl (e.g., EVP_md5()) 2025-03-10 11:33:46 -04:00
REDMOND\brodes
3316d6135d Ctx flow comments. 2025-03-10 11:32:14 -04:00
Simon Friis Vindum
b48fd99913 Rust: Applying suggestions to documentation 2025-03-10 16:30:52 +01:00
Erik Krogh Kristensen
b945466b9f Merge pull request #18892 from asgerf/js/membership-regexp-test
JS: Sharpen up EnumerationRegExp
2025-03-10 16:21:54 +01:00
Asger F
4d02993efa JS: Remove TaintedNodes.ql from default meta query suite 2025-03-10 16:15:13 +01:00
Asger F
f7d2abf3e3 JS: Unfold local type aliases in getAnUnderlyingType 2025-03-10 16:09:16 +01:00
Asger F
91e9b23cf7 JS: Add test showing FN source 2025-03-10 16:08:55 +01:00
REDMOND\brodes
d99812a10d Adding GOSTHash to THashType. 2025-03-10 09:59:28 -04:00
Simon Friis Vindum
5c83644360 Rust: Use CWE 20 for regex injection query 2025-03-10 14:52:25 +01:00
Paolo Tranquilli
79e06153ed Merge pull request #18813 from github/redsun82/rust-turn-off-ra-resolution
Rust: add flag to turn off extractor path resolution
2025-03-10 14:52:07 +01:00
Asger F
08c9f6fa1e Merge pull request #18798 from erik-krogh/ts58
JS: upgrade TypeScript to 5.8
2025-03-10 14:48:03 +01:00
Simon Friis Vindum
0e965f7616 Rust: Accept changes 2025-03-10 14:39:37 +01:00
Michael Nebel
ca553bf1a2 Merge pull request #18932 from michaelnebel/csharp/ismatchingconstantunknowtype
C#: Special handling of unknown types in `isMatchingConstant`.
2025-03-10 14:37:27 +01:00
Asger F
0f201d2070 JS: Line number changes in redos test case 2025-03-10 14:36:49 +01:00
Asger F
d84368eb54 Merge pull request #18858 from Napalys/js/react-relay
JS: React-relay support
2025-03-10 14:33:23 +01:00
Asger F
75ed0d0b46 JS: Remove duplicate '$ Alert' in libxml test 2025-03-10 14:23:44 +01:00
Asger F
6a47678b60 JS: Fix broken alert comment in HeterogenousComparison 2025-03-10 14:23:43 +01:00
Asger F
c88eac486a JS: Remove stray $ Alert comment inside a doc comment 2025-03-10 14:23:42 +01:00
Asger F
0df893e280 JS: Remove blank lines and add trailing newline 2025-03-10 14:23:40 +01:00
Asger F
6fe3a368eb JS: Remove blank line and add trailing newline to file 2025-03-10 14:23:39 +01:00
Asger F
b9dd594d69 JS: Remove blank lines 2025-03-10 14:23:38 +01:00
Asger F
f7532c09e6 JS: Remove blank line 2025-03-10 14:23:37 +01:00
Asger F
122f68e525 Update javascript/ql/test/query-tests/Security/CWE-400/ReDoS/polynomial-redos.js
Co-authored-by: Napalys Klicius <napalys@github.com>
2025-03-10 14:22:22 +01:00
Asger F
8ee5b237e2 Update javascript/ql/test/query-tests/Security/CWE-730/server-crash.js
Co-authored-by: Napalys Klicius <napalys@github.com>
2025-03-10 14:21:46 +01:00
Asger F
92dfdc8194 Update javascript/ql/test/query-tests/Security/CWE-116/IncompleteSanitization/UnsafeHtmlExpansion.js
Co-authored-by: Napalys Klicius <napalys@github.com>
2025-03-10 14:19:33 +01:00
Asger F
21d42bcd21 Update javascript/ql/test/query-tests/Security/CWE-079/ExceptionXss/exception-xss.js
Co-authored-by: Napalys Klicius <napalys@github.com>
2025-03-10 14:19:01 +01:00
Asger F
dad4838d3b Update javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/tst.js
Co-authored-by: Napalys Klicius <napalys@github.com>
2025-03-10 14:18:42 +01:00
Asger F
017f458534 Update javascript/ql/test/query-tests/Security/CWE-078/UselessUseOfCat/uselesscat.js
Co-authored-by: Napalys Klicius <napalys@github.com>
2025-03-10 14:18:22 +01:00
Asger F
24c9b2ef9b Update javascript/ql/test/query-tests/Security/CWE-078/UselessUseOfCat/uselesscat.js
Co-authored-by: Napalys Klicius <napalys@github.com>
2025-03-10 14:18:02 +01:00
Jami
ad63dd946c Apply suggestions from docs review
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
2025-03-10 09:01:04 -04:00
Napalys
9c8e0a5537 Applied changes from comments.
Co-authored-by: Asgerf <asgerf@github.com>
2025-03-10 13:29:05 +01:00
Michael Nebel
21aa62c18c C#: Address review comments. 2025-03-10 13:28:20 +01:00
Simon Friis Vindum
344fea2128 Rust: Enable local threat models in tests and use active threat models for regex query 2025-03-10 13:23:20 +01:00
Michael Nebel
a16c2c80f7 C#: Add change-note. 2025-03-10 13:03:01 +01:00
erik-krogh
b70643b1a1 ensure the result from getPathFromFork is unique (to avoid a blowup) 2025-03-10 12:53:51 +01:00
Michael Nebel
26f0f7f6da Update csharp/ql/test/query-tests/API Abuse/NoDisposeCallOnLocalIDisposable/NoDisposeCallOnLocalIDisposable.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-03-10 12:40:25 +01:00
Napalys
d077d6807a Applied changes from comments
Co-authored-by: Asgerf <asgerf@github.com>
2025-03-10 12:24:45 +01:00
Mathias Vorreiter Pedersen
1aa1829804 Merge pull request #18955 from MathiasVP/share-more-indirect-operands-and-instructions
C++: Share indirect dataflow nodes across `CopyValue` instructions
2025-03-10 04:14:33 -07:00
Geoffrey White
bb39955a24 Rust: Move the undefined_macros test cases to their own subdirectory. 2025-03-10 11:09:33 +00:00
Geoffrey White
aa35e82fc1 Rust: Add a test exposing the function scope limitation. 2025-03-10 10:39:25 +00:00
Napalys
f48eab903f Add RegExpSubtraction class to support subtraction terms in regex 2025-03-10 11:18:10 +01:00
Napalys
8cbc0aea05 Add RegExpQuotedString class to support quoted string escapes in regex 2025-03-10 11:18:03 +01:00
Michael Nebel
13226edbeb C#: Add change-note. 2025-03-10 10:54:20 +01:00
Arthur Baars
9814aef71f Address review comment 2025-03-10 10:31:31 +01:00
Arthur Baars
f17f3758ed Rust: update expected output 2025-03-10 10:19:12 +01:00
Arthur Baars
5855a12b03 Rust: fix crate graph after rust-analyzer upgrade 2025-03-10 10:16:28 +01:00
Arthur Baars
58d7933d4f Run: misc/bazel/3rdparty/update_cargo_deps.sh 2025-03-10 10:16:27 +01:00
Arthur Baars
845f002124 Rust: add file for root modules of crates 2025-03-10 10:16:26 +01:00
Arthur Baars
8961a22a71 Rust: crate_graph: extract only public items 2025-03-10 10:16:24 +01:00
Arthur Baars
ff321194b7 Rust: improve modules test case 2025-03-10 10:16:23 +01:00
Arthur Baars
e5b039702a Rust: update integration tests 2025-03-10 10:16:22 +01:00
Arthur Baars
fce637fc3a Rust: add some tests for the crate graph 2025-03-10 10:16:21 +01:00
Arthur Baars
8ec8824cb7 Rust: implement Crate::toString 2025-03-10 10:16:20 +01:00
Arthur Baars
9bba666929 Rust: QL Test: exclude crate graph related elements 2025-03-10 10:16:19 +01:00
Arthur Baars
c601adfc65 Rust: add ExtractionStep::CrateGraph 2025-03-10 10:16:18 +01:00
Arthur Baars
98a40967d2 Rust: ignore crate graph elements from summary stats and AST no-location checks
These elements depend on the version of the standard libraries and platform, and
in addition no location information is extracted for them at the moment.

f
2025-03-10 10:16:15 +01:00
Arthur Baars
e21a7f5336 Rust: extract crate graph 2025-03-10 10:16:13 +01:00
Arthur Baars
75ca04f3dd Rust: add Crate to dbscheme 2025-03-10 10:16:12 +01:00
Erik Krogh Kristensen
8eb69079b7 fix typo from copy-pasted change-note
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-03-10 09:41:48 +01:00
Michael Nebel
0676c21a4b Merge pull request #18866 from michaelnebel/csharp/ccr-call-to-object-tostring
C#: Add cs/call-to-object-tostring to the CCR query suite.
2025-03-10 09:41:11 +01:00
erik-krogh
752fc64f42 bump to stable 5.8 release 2025-03-10 09:21:25 +01:00
erik-krogh
b641caa508 update TypeScript version to 5.8.1-RC 2025-03-10 09:20:29 +01:00
Simon Friis Vindum
179ea041f4 Rust: Merge query implementation into one file 2025-03-10 09:09:13 +01: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
Mathias Vorreiter Pedersen
f9a7ac4e89 C++: Accept test changes. 2025-03-07 19:59:06 +00:00
Mathias Vorreiter Pedersen
b06902a3b1 C++: Share more indirect operands and instructions. 2025-03-07 19:59:05 +00:00
REDMOND\brodes
64241caf1d Merge branch 'brodes/cipher_operation' of https://github.com/nicolaswill/codeql into brodes/cipher_operation 2025-03-07 14:25:13 -05:00
REDMOND\brodes
bac0a635f9 Initial hash models for openssl. 2025-03-07 14:24:01 -05:00
Nicolas Will
47affa0fed Restore location output for nodes 2025-03-07 18:30:58 +01:00
Andrew Eisenberg
e73745d3ca Merge pull request #18945 from github/aeisenberg/move-to-experimental
Move UnversionedImmutableAction.ql to experimental
2025-03-07 09:26:11 -08:00
REDMOND\brodes
cf72fde911 Fixing cross product in getPropertyAsGraphString (parameter root not bound in all cases, fixing using a bindingetset) 2025-03-07 12:11:12 -05:00
Geoffrey White
3d0e44e156 Rust: Accept consistency check failures. 2025-03-07 16:05:01 +00:00
REDMOND\brodes
32d29ffde3 Changed casing on TCipherType, Added some initial fixes for hash support, started developing openssl hashing modeling. 2025-03-07 10:02:36 -05:00
Michael Nebel
3f8679a099 C#: Update test expected output. 2025-03-07 16:00:28 +01:00
Geoffrey White
fe139e5bea Rust: Rearrange the unused variable query logic so that it's clearer what the comments apply to. 2025-03-07 14:55:34 +00:00
Geoffrey White
cc902a6ad1 Rust: Fix unused value FPs due to unexpanded macro calls as well. 2025-03-07 14:48:27 +00:00
Geoffrey White
e0839a369c Rust: Fix unused variable FPs due to unexpanded macro calls. 2025-03-07 14:40:02 +00:00
Geoffrey White
b2e3352aa8 Rust: Add a few more macro tests. 2025-03-07 14:36:26 +00:00
Anders Schack-Mulligen
d075466958 Merge pull request #18941 from aschackmull/ssa/refactor4
Ssa: Extend consistency checks and reduce phi read nodes
2025-03-07 15:18:02 +01:00
Michael Nebel
7a99dfaebe C#: Do flag missing Dispose calls on Task and Task<>. 2025-03-07 15:14:07 +01:00
Taus
cef8f7b123 Merge pull request #18739 from paldepind/change-note-script-editor
Change note creation script uses EDITOR environment variable
2025-03-07 14:53:14 +01:00
Michael Nebel
f58c72ed59 C#: Add example for local not disposed involving tasks. 2025-03-07 14:44:29 +01:00
Michael Nebel
3903a90a11 C#: Update expected test output. 2025-03-07 13:22:37 +01:00
Michael Nebel
b5ea34fcf3 C#: We can't do any reasoning based on unknown types on whether they match in a pattern. 2025-03-07 13:22:35 +01:00
Michael Nebel
5c0fc1f75b C#: Add BMN tests for cs/constant-condition. 2025-03-07 13:22:34 +01:00
Michael Nebel
431586bb70 C#: Make the same folder structure for BMN tests as used for traced extractor tests. 2025-03-07 13:22:32 +01:00
Simon Friis Vindum
494f914070 Rust: Add regular expression injection query 2025-03-07 12:37:30 +01:00
Geoffrey White
abe14babb1 Rust: Clean up the existing macro cases for the unusedentities test. 2025-03-07 11:24:42 +00:00
Anders Schack-Mulligen
3508ca89e6 Java: Restrict SSA reads to the reachable CFG. 2025-03-07 11:13:53 +01:00
Anders Schack-Mulligen
b1e53f5816 Rust: Accept consistency failure. 2025-03-07 11:11:49 +01:00
Jeroen Ketema
87ee191409 Merge pull request #18928 from jketema/desc
C++: Improve query description and fix alignment of the text
2025-03-07 10:47:31 +01:00
Michael Nebel
c9796ee297 C#: Add cs/call-to-object-tostring to the CCR query suite. 2025-03-07 09:52:08 +01:00
Michael Nebel
82b7a19df1 Merge pull request #18894 from michaelnebel/csharp/garbagetypes
C#: Handle some BMN garbage types.
2025-03-07 09:19:48 +01:00
Napalys
e0f20b2bd1 Add RegExpIntersection class to support intersection terms in regex 2025-03-07 08:58:19 +01:00
Simon Friis Vindum
fc186eb136 Include -r flag to code when creating change note
Co-authored-by: Taus <tausbn@github.com>
2025-03-07 08:47:21 +01:00
Napalys
9cc26208d4 Add test cases for v flag operators in RegExp library-tests. 2025-03-07 08:32:10 +01:00
Andrew Eisenberg
2a0e133768 Move UnversionedImmutableAction.ql to experimental
This query will give too many false positives for users until
immutable actions is released.
2025-03-06 15:08:02 -08:00
REDMOND\brodes
b9bd199432 Regression fixes for JCA 2025-03-06 13:39:23 -05:00
Tom Hvitved
5c3f21b20c Merge pull request #18937 from hvitved/rust/fix-bad-joins
Rust: Fix bad joins
2025-03-06 19:11:31 +01:00
Napalys
c12c12c416 Added modeling for react-relay functions that retrieve data. 2025-03-06 18:30:21 +01:00
Napalys
5a1991bb69 Added test cases for react-relay functions that retrieve data 2025-03-06 18:10:27 +01:00
Napalys
89040d0d06 Added missing response and request MaD source kinds. 2025-03-06 18:10:25 +01:00
Napalys
0166e76cca Add change note 2025-03-06 18:10:24 +01:00
Napalys
1443f314a1 Added react-relay useFragment as threat model source. 2025-03-06 18:10:23 +01:00
Napalys
1e3b8625e6 Added a test case where useFragment from react-relay should be marked as a source but isn't 2025-03-06 18:10:21 +01:00
Anders Schack-Mulligen
da579c27fc Merge pull request #18934 from aschackmull/ssa/refactor5
SSA: Replace the Guards interface in the SSA data flow integration.
2025-03-06 15:11:52 +01:00
Taus
6546bb1b1d Merge branch 'main' into tausbn/python-fix-match-pruning-logic 2025-03-06 14:37:58 +01:00
Anders Schack-Mulligen
97a3411c0c Ruby: Accept test output. 2025-03-06 13:58:14 +01:00
Michael Nebel
61c043fd4a Merge pull request #18935 from michaelnebel/csharp/useless-if-statement
C#: Fewer alerts in `cs/useless-if-statement`.
2025-03-06 13:53:20 +01:00
Taus
a9ab39da1b Merge pull request #18448 from github/tausbn/python-add-type-annotation-metrics-query
Python: Add metrics query for type annotations
2025-03-06 13:52:26 +01:00
Anders Schack-Mulligen
5e722eecf7 Ruby: Push in casts to Definition to delete the then unused DefinitionExt. 2025-03-06 13:31:31 +01:00
Anders Schack-Mulligen
9e6bdbbcbb SSA: Don't add phi-reads for frontiers of uncertain reads. 2025-03-06 12:47:38 +01:00
Anders Schack-Mulligen
947a85ed28 Java: Enable SSA consistency queries. 2025-03-06 12:47:38 +01:00
Anders Schack-Mulligen
d95114fb1d SSA: Extend consistency queries. 2025-03-06 12:47:37 +01:00
Michael Nebel
fb3ce464be C#: Address review comments. 2025-03-06 11:48:35 +01:00
Michael B. Gale
7e984ad48e Merge pull request #18938 from github/dependabot/go_modules/go/extractor/extractor-dependencies-94582fc3a1
Bump the extractor-dependencies group in /go/extractor with 2 updates
2025-03-06 10:47:50 +00:00
Owen Mansel-Chan
7b2912376b Add failing test for os.File.Sync with defered Close calls 2025-03-06 10:14:28 +00:00
Owen Mansel-Chan
cbe7edd9c6 Merge pull request #18907 from teuron/cwe-925
[CWE-925] Intent verification is only needed on non-empty onReceive methods.
2025-03-06 10:00:05 +00:00
Joe Farebrother
2692b8fa9f Merge pull request #18936 from joefarebrother/python-add-not-named-self-cls-ccr
Python: Include `py/not-named-self` and `py/not-named-cls` in the CCR suite
2025-03-06 09:51:14 +00:00
Owen Mansel-Chan
0c091ffe31 Merge pull request #18920 from owen-mc/go/mad/improve-sync-models
Go: Do not track taint into a `sync.Map` via the key of a key-value pair
2025-03-06 09:40:49 +00:00
Lukas Abfalterer
32e1589745 Update java/ql/src/change-notes/2025-03-03-fix-improper-intent-verification-query.md
Co-authored-by: Edward Minnix III <egregius313@github.com>
2025-03-06 09:57:16 +01:00
Tom Hvitved
ec063d0dbd Rust: Fix bad joins
```
Evaluated relational algebra for predicate _Synth::Synth::TFormatArgument#5cbf2ffd_63#join_rhs__Format::Format.getArgumentRef/0#dispred#38d664c__#antijoin_rhs@889ee4br with tuple counts:
           11356  ~0%    {5} r1 = JOIN `_Format::Format.getArgumentRef/0#dispred#38d664cb_Format::Format.getParent/0#dispred#f6ec3e8b_10#joi__#shared` WITH Synth::Synth::TFormatArgument#5cbf2ffd_63#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.0
        19631351  ~0%    {6}    | JOIN WITH name_texts_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.0
           45933  ~0%    {6}    | JOIN WITH format_args_arg_names_10#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5
             747  ~0%    {5}    | JOIN WITH format_args_expr_args_02#join_rhs ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.4, Lhs.5
                         return r1

Evaluated relational algebra for predicate __Format::Format.getParent/0#dispred#f6ec3e8b_FormatArgument::FormatArgument.getParent/0#dispred#864__#antijoin_rhs@01d9d70k with tuple counts:
        19631351  ~1%    {6} r1 = JOIN `_Format::Format.getParent/0#dispred#f6ec3e8b_FormatArgument::FormatArgument.getParent/0#dispred#8641__#shared` WITH name_texts_10#join_rhs ON FIRST 1 OUTPUT Lhs.4, Lhs.0, Lhs.1, Lhs.2, Lhs.3, Rhs.1
         5173010  ~0%    {7}    | JOIN WITH format_args_expr_args ON FIRST 1 OUTPUT Rhs.2, Lhs.5, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.0
             747  ~0%    {5}    | JOIN WITH format_args_arg_names ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6
                         return r1

Evaluated relational algebra for predicate _NamedFormatArgument::NamedFormatArgument#18940f8e__Format::Format.getParent/0#dispred#f6ec3e8b_10#j__#antijoin_rhs@dafbd6hr with tuple counts:
           11356  ~0%    {5} r1 = JOIN `_Format::Format.getParent/0#dispred#f6ec3e8b_10#join_rhs_FormatArgument::FormatArgument.getParent/0#__#shared` WITH NamedFormatArgument::NamedFormatArgument#18940f8e ON FIRST 1 OUTPUT Rhs.4, Lhs.1, Lhs.2, Lhs.3, Lhs.0
        19631351  ~0%    {6}    | JOIN WITH name_texts_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.0
           45933  ~0%    {6}    | JOIN WITH format_args_arg_names_10#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5
             747  ~0%    {5}    | JOIN WITH format_args_expr_args_02#join_rhs ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.4, Lhs.5
                         return r1

```
2025-03-06 09:02:42 +01:00
dependabot[bot]
1037626a28 Bump the extractor-dependencies group in /go/extractor with 2 updates
Bumps the extractor-dependencies group in /go/extractor with 2 updates: [golang.org/x/mod](https://github.com/golang/mod) and [golang.org/x/tools](https://github.com/golang/tools).


Updates `golang.org/x/mod` from 0.23.0 to 0.24.0
- [Commits](https://github.com/golang/mod/compare/v0.23.0...v0.24.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-06 04:02:51 +00:00
Owen Mansel-Chan
63bfa36be8 Convert to inline expectations test 2025-03-05 21:39:04 +00:00
REDMOND\brodes
6083df2b7f Completed tying algorithm instances to consumers. Now the model should have known literals for cipher instances, and it traces those instances to consumers (inits) and those inits are traced to cipher operations. 2025-03-05 15:48:08 -05:00
REDMOND\brodes
de3ff45cba Misc updates for OpenSSL modeling to trace algorithm literals to known alg getters, and converting the literal to a TCipherType. 2025-03-05 15:17:52 -05: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
Joe Farebrother
a06de21f45 Python: Include py/not-named-self and py/not-named-cls in the CCR suite. 2025-03-05 15:13:20 +00:00
Michael Nebel
c73eeec814 C#: Add change note. 2025-03-05 15:33:02 +01:00
Michael Nebel
dd7d5d031c C#: Update test expected output. 2025-03-05 15:27:01 +01:00
Michael Nebel
35fbaf4ac3 C#: Do flag empty if statements if there is a comment in cs/useless-if-statement. 2025-03-05 15:26:39 +01:00
Michael Nebel
361bdfac12 C#: Add a testcase with an empty if statement containing a comment. 2025-03-05 15:22:22 +01:00
Owen Mansel-Chan
f2947f7066 Fix indentation 2025-03-05 14:13:53 +00:00
Jami Cogswell
0eec951218 Java: update change note to mention removal from Community Packs 2025-03-05 08:55:51 -05:00
Michael Nebel
a9d45a2aa2 C#: Add some tests for cs/useless-if-statement. 2025-03-05 14:32:41 +01:00
Lukas Abfalterer
b4c75d832c Merge branch 'main' into cwe-925 2025-03-05 14:15:07 +01:00
Anders Schack-Mulligen
c6761db2fc SSA: Replace the Guards interface in the SSA data flow integration. 2025-03-05 13:29:31 +01:00
Anders Schack-Mulligen
a02735326a Ruby: Remove some DefinitionExt references and deprecate the rest. 2025-03-05 12:57:15 +01:00
Lukas Abfalterer
41e9a837e5 Fix naming
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com>
2025-03-05 12:50:54 +01:00
Mathias Vorreiter Pedersen
38bf9c6835 Merge pull request #18908 from aschackmull/cpp/branchlimit-adjustment-refactor
C++: Change countNumberOfBranchesUsingParameter to match qldoc closer.
2025-03-05 11:21:38 +00:00
Anders Schack-Mulligen
709d36b502 Merge pull request #18869 from aschackmull/ssa/refactor3
Ssa: Update qltests including consistency checks
2025-03-05 11:40:27 +01:00
Napalys
d884e5fe6b Upgraded javascrip database schema 2025-03-05 11:06:56 +01:00
Napalys
95d05ceab8 Now store vFlagEnabled instead of each time searching for it.
Added `uFlagEnabled` for checking how should `\p{}` be treated. And small optimization.
2025-03-05 10:34:38 +01:00
Lukas Abfalterer
c9b75afc2a Fix QLL and add change notes with tests 2025-03-05 10:23:35 +01:00
Napalys
8086c25abe Removed Union as standard character class is already an union. 2025-03-05 10:07:20 +01:00
Michael Nebel
5c931fa897 C#: Improve comments. 2025-03-05 09:50:52 +01:00
Napalys
8099423b6d Renamed character class operators lists to elements. 2025-03-05 09:34:21 +01:00
Napalys
9ea89cd63f Added a test case from #18854 2025-03-05 09:34:20 +01:00
Napalys
c7f03df1eb Added change note 2025-03-05 09:34:18 +01:00
Michael Nebel
d5ee93dbbc C#: Anonymous types should not be considered unknown. 2025-03-05 09:04:58 +01:00
Michael Nebel
3b764b0640 C#: Update test expected output. 2025-03-05 09:04:56 +01:00
Michael Nebel
fc5a49ef84 C#: Handle some broken types in BMN. 2025-03-05 09:04:54 +01:00
Michael Nebel
e835d8b168 C#: Change the populate logic context. It looks like a mistake that the only flag set is Standalone. 2025-03-05 09:04:53 +01:00
Michael Nebel
c2b835da40 C#: Re-factor the check whether we are in standalone mode. 2025-03-05 09:04:52 +01:00
Michael Nebel
9af170f60e C#: Add BMN test using broken types. 2025-03-05 09:04:50 +01:00
Michael Nebel
5551aebaa9 C#: Add a primary ql class for UnknownType. 2025-03-05 09:04:49 +01: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
Taus
bf3d9ee6a9 Python: Address review comments 2025-03-04 22:30:55 +00:00
REDMOND\brodes
cce5f24b38 Initial OpenSSL modeling work. 2025-03-04 15:52:57 -05:00
Jeroen Ketema
e50ebfc8c2 C++: Improve query description and fix alignment of the text 2025-03-04 20:50:27 +01:00
Taus
f246ef764a Python: Update change note
Co-authored-by: Aditya Sharad <6874315+adityasharad@users.noreply.github.com>
2025-03-04 18:09:54 +01:00
Jeroen Ketema
795a2e1175 Merge pull request #18923 from jketema/template-arguments
C++: Update template test to also output the value of template arguments
2025-03-04 17:56:14 +01:00
Paolo Tranquilli
7a78766584 Merge pull request #18789 from github/redsun82/cargo-upgrade
Upgrade cargo dependencies
2025-03-04 17:34:58 +01:00
Jami Cogswell
82062e2847 Java: update test 2025-03-04 11:15:00 -05:00
Taus
50a01b1244 Python: Remove superfluous reference to FunctionExpr
This way we also get annotations that appear in `Lambda`s
2025-03-04 15:53:34 +00:00
Jami Cogswell
746f022cfa Java: add 'Spring' prefix to public class names 2025-03-04 10:34:16 -05:00
Jeroen Ketema
324499e447 C++: Update template test to also output the value of template arguments
These values are currently the same as the result that `getTemplateArgument`
yields. However, this will change with the upcoming frontend update.
2025-03-04 16:24:21 +01:00
Owen Mansel-Chan
e2456ea59e Update go/ql/lib/change-notes/2025-03-04-improve-models-for-sync-map.md
Co-authored-by: Michael B. Gale <mbg@github.com>
2025-03-04 15:07:24 +00:00
Taus
5d3b40d514 Python: Add change note 2025-03-04 14:47:03 +00:00
Taus
88615f427b Python: Add support for forward declarations in unused var query
Fixes the false positive reported in
https://github.com/github/codeql/issues/18910

Adds a new `Annotation` class (subclass of `Expr`) which encompasses all
possible kinds of annotations in Python.

Using this, we look for string literals which are part of an annotation,
and which have the same content as the name of a (potentially) unused
global variable, and in that case we do not produce an alert.

In future, we may want to support inspecting such string literals more
deeply (e.g. to support stuff like "list[unused_var]"), but I think for
now this level of support is sufficient.
2025-03-04 14:41:45 +00:00
Tom Hvitved
b8dd2e551e Merge pull request #18919 from hvitved/rust/ast-consistency-internal
Rust: Move `AstConsistency.qll` into `internal`
2025-03-04 15:35:34 +01:00
Simon Friis Vindum
980ed23e63 Merge pull request #18922 from paldepind/rust-model-generation-require-name
Rust: Exclude functions without canonical path from model generation
2025-03-04 15:35:08 +01:00
Jeroen Ketema
45c4f3f898 Merge pull request #18914 from github/esteffin/bmn-include-file-resolution-statistics
C++ query to extract the number of errors due to include file resolution failure
2025-03-04 15:13:45 +01:00
Enrico Steffinlongo
e230166fe2 Add C++ query to extract the status of include file resolution 2025-03-04 13:57:17 +00:00
Taus
301ebcb12b Python: Extend test cases for "unused global var" query
Adds two test cases having to do with type annotations. The first one
demonstrates that type annotations (even if they are never executed by
the Python interpreter) count as uses for the purposes of the unused
variable query. The second one demonstrates that this is _not_ the case
if all such uses are inside strings (i.e. forward declarations), as we
do not currently inspect the content of these strings.
2025-03-04 13:52:31 +00:00
Paolo Tranquilli
e91911b4b4 Merge branch 'main' into redsun82/cargo-upgrade 2025-03-04 14:09:28 +01:00
Simon Friis Vindum
c89e648738 Rust: Exclude function without canonical path from model generation 2025-03-04 13:56:10 +01:00
Owen Mansel-Chan
07c041483d Add change note 2025-03-04 12:14:43 +00:00
Owen Mansel-Chan
36908e8ef0 Do not track taint for keys in sync.Map
There is no way to get the value of a key out of a `sync.Map`.
2025-03-04 12:11:49 +00:00
Paolo Tranquilli
4d10c4110a Rust: address review 2025-03-04 13:05:59 +01:00
Tom Hvitved
1f13f0009f Rust: Move AstConsistency.qll into internal 2025-03-04 13:00:09 +01:00
Jami
c22b05a6f4 Merge pull request #18900 from jcogs33/jcogs33/java/unreleased-lock-fp
Java: handle lock state check stored in variable for `java/unreleased-lock`
2025-03-04 06:38:56 -05:00
Paolo Tranquilli
e0d0dc9a80 Rust: tweak qltest logs
* verbosity is raised to DEBUG to have more information in the logs
* color codes are now skipped in the `qltest.log` file
* they are still printed out on the console when running with
  `--show-extractor-output`.
2025-03-04 12:33:14 +01:00
Anders Schack-Mulligen
6c89602691 SSA: Add some qldoc. 2025-03-04 12:24:25 +01:00
Anders Schack-Mulligen
f5eb2d94bc SSA: Use Definition.getLocation in DefinitionExt. 2025-03-04 12:24:25 +01:00
Anders Schack-Mulligen
5a909aa69c C#: Remove remaining DefinitionExt references. 2025-03-04 12:24:24 +01:00
Anders Schack-Mulligen
4c0e5f62cf Rust: Remove remaining DefinitionExt references. 2025-03-04 12:24:24 +01:00
Anders Schack-Mulligen
00b8c80c24 SSA/C#/Ruby/Rust: Clean up SSA consistency queries.
The RelevantDefinition class is no longer needed since the introduction
of LocationSig.
2025-03-04 12:24:23 +01:00
Anders Schack-Mulligen
8474a47c2b Rust: Switch test to use dedicated test module. 2025-03-04 12:24:23 +01:00
Anders Schack-Mulligen
122034fe8c Ruby: Switch test to use dedicated test module. 2025-03-04 12:24:23 +01:00
Anders Schack-Mulligen
f0993fc97e C#: Switch test to use dedicated test module. 2025-03-04 12:24:22 +01:00
Anders Schack-Mulligen
2f744ce3ec SSA: Expose module for qltesting adjacent references. 2025-03-04 12:24:22 +01:00
Anders Schack-Mulligen
9e03b12ba0 C#/Java/Ruby/Rust/SSA: Replace DefinitionExt with SourceVariable in data flow integration predicates. 2025-03-04 12:24:21 +01:00
Anders Schack-Mulligen
39bba7f5c2 SSA: Change a few DefinitionExt uses that are actually just Definitions. 2025-03-04 12:24:21 +01:00
Anders Schack-Mulligen
42eef9e4b7 SSA: Deprecate getDefinitionExt. 2025-03-04 12:24:20 +01:00
Paolo Tranquilli
2a29239b01 Merge branch 'main' into redsun82/cargo-upgrade 2025-03-04 10:05:41 +01:00
Simon Friis Vindum
0d1865d718 Merge pull request #18872 from paldepind/rust-ref-mut
Rust: Allow SSA and some data flow for mutable borrows
2025-03-04 09:25:18 +01:00
Michael Nebel
96c0ca87fc Merge pull request #18865 from carldybdahl-microsoft/csharp/path-combine
Add CodeQL recommendation against Path.Combine
2025-03-04 08:51:04 +01:00
REDMOND\brodes
8865d89fe9 Removing old ReusedNonce query. 2025-03-03 16:51:30 -05:00
REDMOND\brodes
2ee1681126 Adding a proof-of-concept PossibleReusedNonce query. 2025-03-03 15:09:27 -05:00
REDMOND\brodes
14cb2bb12f Updates to insecure or unknown nonce at operation. 2025-03-03 14:42:50 -05:00
REDMOND\brodes
076f53147d Proof-of-concept query for InsecureOrUnknownNonceAtOperation 2025-03-03 13:53:16 -05: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
Nicolas Will
627790f98b Clean up consumer and instance interfaces 2025-03-03 19:06:53 +01:00
Carl Dybdahl
2f7cdf1bfa Improvements 2025-03-03 15:32:15 +01:00
Carl Dybdahl
b3447959fa Match autoformatting, add QLDoc references 2025-03-03 15:32:15 +01:00
Carl Dybdahl
d371723fe4 Fix test 2025-03-03 15:32:15 +01:00
Carl Dybdahl
d82295c54a Add QLDoc 2025-03-03 15:32:15 +01:00
Carl Dybdahl
aa6779f19f Add changelog 2025-03-03 15:32:15 +01:00
Carl Dybdahl
35fd4d226f Oops 2025-03-03 15:32:15 +01:00
Carl Dybdahl
44e6691e6d Add implementation and tests 2025-03-03 15:32:15 +01:00
Anders Schack-Mulligen
5d91f2e119 C++: Change countNumberOfBranchesUsingParameter to match qldoc closer. 2025-03-03 15:14:28 +01:00
Napalys
c0202f6085 Updated dbscheme 2025-03-03 14:37:47 +01:00
Napalys
fe6de2f672 Added support for character class union in regex processing 2025-03-03 14:37:46 +01:00
Napalys
1e05f327d6 Added test cases for union. 2025-03-03 14:37:44 +01:00
Napalys
3664d50772 Added support for -- subtraction opetor. 2025-03-03 14:37:43 +01:00
Napalys
ee83c42b71 Added test cases for subtraction --. 2025-03-03 14:37:42 +01:00
Napalys
381b5ebe8a Added intersection support 2025-03-03 14:37:40 +01:00
Napalys
fa5093f6ad Added test cases for intersection 2025-03-03 14:37:39 +01:00
Napalys
2333c538d9 Added ability to parse nested character classes while using v flag. 2025-03-03 14:37:38 +01:00
Napalys
de6f3b1d04 Add additional test cases. 2025-03-03 14:37:37 +01:00
Napalys
ab7e08f40f Added test cases for nested character class. 2025-03-03 14:37:35 +01:00
Napalys
ed418be97a Add support for '\q{}' escape sequence in regular expressions. 2025-03-03 14:37:20 +01:00
Lukas Abfalterer
a3749530d6 The query should only report cases when the method is not empty. 2025-03-03 10:20:46 +01:00
Paolo Tranquilli
9740232df8 Merge branch 'main' into redsun82/cargo-upgrade 2025-03-03 10:15:17 +01:00
Simon Friis Vindum
1225c5c828 Rust: Accept changes 2025-03-03 09:44:24 +01:00
Simon Friis Vindum
d8d882958d Merge branch 'main' into rust-ref-mut 2025-03-03 09:19:08 +01:00
Jami Cogswell
b0b95965f6 Java: add change note 2025-03-02 17:13:37 -05:00
Jami Cogswell
fbf7513f37 Java: handle lock state check stored in variable 2025-03-02 17:01:18 -05:00
Napalys
d162acf02c Added quoted string \q parser test cases 2025-03-02 17:09:01 +01:00
Napalys
cb448db3ce Exposed flags to the regex parser 2025-03-02 17:08:52 +01:00
Nicolas Will
cf33cf7653 Add input and output nodes and fix cross product 2025-02-28 15:21:46 +01:00
Asger F
2e32e441b8 Update javascript/ql/src/change-notes/2025-02-28-membership-regexp-test.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-02-28 14:25:56 +01:00
Asger F
c8a89c4203 JS: Change note 2025-02-28 14:04:40 +01:00
Asger F
c3ad805fe8 JS: Sharpen up EnumerationRegExp 2025-02-28 13:58:11 +01:00
Asger F
d97d67359b JS: Add test case showing lack of flow through non-sanitising regexp 2025-02-28 13:58:08 +01:00
Asger F
2a194a53af raw test output 2025-02-28 13:29:39 +01:00
Asger F
193b26e938 JS: Add query IDs 2025-02-28 13:29:37 +01:00
Asger F
33602ee52b JS: Convert some comments to JSX 2025-02-28 13:29:36 +01:00
Asger F
c67c5854ba Disable for more queries with alerts in JSON 2025-02-28 13:29:35 +01:00
Asger F
7bd01bf039 JS: Bulk update in UnneededDefensiveProgramming test
The history of updates to this test got messed up so just squashing
into one commit.

Some possible regressions have been accepted, but the query is strangely
opinionated so it's just hard to say what it ought to flag.
2025-02-28 13:29:33 +01:00
Asger F
64d39da5f8 JS: Accept Sources/Sink tags 2025-02-28 13:29:30 +01:00
Asger F
19cada38ff JS: Migrate a new file from OK-style comments 2025-02-28 13:29:29 +01:00
Asger F
fd6a9c6144 JS: Accept an alert 2025-02-28 13:29:27 +01:00
Asger F
b4ac2f7d73 JS: Add a query ID 2025-02-28 13:29:26 +01:00
Asger F
87518ba60e JS: Update tainted-sendFile.js
This file was added on main while this branch was in progress. Porting the whole file in one step.
2025-02-28 13:29:25 +01:00
Asger F
bb67a0e9b0 JS: Remove outdated comment 2025-02-28 13:29:23 +01:00
Asger F
0496de6c8f JS: Accept alerts in UselessCharacterEscape 2025-02-28 13:29:22 +01:00
Asger F
aade1e863d JS: Add a related location in UnusedOrUndefinedStateProperty 2025-02-28 13:29:21 +01:00
Asger F
8ef51c495f JS: Fix wrong expectation in UnusedOrUndefinedStateProperty 2025-02-28 13:29:19 +01:00
Asger F
87ed86e4fd JS: Update UnusedOrUndefinedStateProperty
Using RelatedLocations to add clarity
2025-02-28 13:29:18 +01:00
Asger F
605999454a JS: Accept more results in SpuriousArguments 2025-02-28 13:29:17 +01:00
Asger F
dc28bb527b JS: Fix alert location and use RelatedLocation in InsecureUrlWhitelist 2025-02-28 13:29:16 +01:00
Asger F
a1c13f02be JS: Remove alert marker that's reported on another line
We had two 'NOT OK' comments for the same alert. The alert appears on the 'pref' object above.
2025-02-28 13:29:14 +01:00
Asger F
2b33ed3671 JS: Remove incorrect alert marker 2025-02-28 13:29:13 +01:00
Asger F
6cf1334c6d Fix comment style in UnboundEventHandlerReceiver 2025-02-28 13:29:12 +01:00
Asger F
7623ebb13b JS: Accept changes in UseOfReturnlessFunction 2025-02-28 13:29:11 +01:00
Asger F
507a0918ad JS: More alert updates in UselessConditional 2025-02-28 13:29:10 +01:00
Asger F
e634b31c27 JS: Accept some UselessConditional alerts 2025-02-28 13:29:08 +01:00
Asger F
4d7cbe6f60 JS: Accept to web socket-based SSRF alerts 2025-02-28 13:29:07 +01:00
Asger F
764eb98809 JS: Move two alerts and add query ID 2025-02-28 13:29:06 +01:00
Asger F
976096540f JS: Accept an alert 2025-02-28 13:29:05 +01:00
Asger F
49274d5f73 JS: Accept an alert 2025-02-28 13:29:03 +01:00
Asger F
2d1aa3e00a JS: Accept missing alert and clarify reason 2025-02-28 13:29:02 +01:00
Asger F
9f8744680d JS: Remove a fixed spurious alert 2025-02-28 13:29:01 +01:00
Asger F
3a535dbf68 JS: Accept another alert 2025-02-28 13:29:00 +01:00
Asger F
db98dc6272 JS: Move some alerts and add query IDs 2025-02-28 13:28:59 +01:00
Asger F
c79d355d26 JS: Update alerts in example_bypass.js
We happen to flag the condition with different-kinds-comparison-bypass.
The ConditionalBypass query was originally intended to flag this I think, but doesn't anymore.
2025-02-28 13:28:57 +01:00
Asger F
7ed5398688 JS: Accept some different-kind comparison-bypass alerts 2025-02-28 13:28:55 +01:00
Asger F
a1796bda8a JS: Accept some new alerts in HardcodedCredentials
I think these were just missing 'NOT OK' comments
2025-02-28 13:28:54 +01:00
Asger F
2bed3a40bf JS: Mark some missing alerts in HardcodedCredentials
Not sure why
2025-02-28 13:28:52 +01:00
Asger F
9ef5a97b4e JS: Accept alerts in HardcodedCredentials and add Sink tags
This query now uses the source as the primary alert location, and some old comments appeared at the sink.

To make the change easier to verify, this commit migrates the test to include Sink tags. (Source/Sink tags in general are added later)
2025-02-28 13:28:51 +01:00
Asger F
7fa63fa6ee JS: Update alerts in HardcodedCredentials test
Note that file is inside a folder named __tests__. The same code is found in another file outside the test folder, where it is flagged.
2025-02-28 13:28:50 +01:00
Asger F
69b2d197e6 JS: Move an alert and add RelatedLocations 2025-02-28 13:28:48 +01:00
Asger F
360c76514c JS: Accept some suboptimal alert locations
Not perfect alert locations, but not important enough to fix right now
2025-02-28 13:28:47 +01:00
Asger F
dbc079c880 JS: Accept a spurious alert
Unlike the previous case 'isLocalUrl' actually resolves to a function in this case, but we don't recognise the sanitiser used in it. Fixing it is out of scope for this PR.
2025-02-28 13:28:46 +01:00
Asger F
4ca49fb4d8 JS: Change note about guards in server-side url redirect 2025-02-28 13:28:44 +01:00
Asger F
29659647ea JS: Fix barrier guards for ServerSideUrlRedirect
The barrier guards for ServerSideUrlRedirect were lost when it was ported to ConfigSig, and the aforementioned spurious alert was a result of that.

The query had two guards: a proper barrier guard and a heuristic one for functions named 'isLocalURL'. We should move away from the heuristic name-based sanitiser guards, so I'm only reinstating the proper barrier guard.

Therefore updating the test to test the real barrier guard.
2025-02-28 13:28:43 +01:00
Asger F
38be524b6a JS: Temporarily accept a spurious alert
This was due to a bug that will be fixed in the following commit
2025-02-28 13:28:41 +01:00
Asger F
7c2394fab4 JS: Accept some alerts 2025-02-28 13:28:40 +01:00
Asger F
b734a3d804 JS: Fix a test case bug due to a typo
We got a missing result on that line
2025-02-28 13:28:39 +01:00
Asger F
1ee93cf51b JS: Manually fix two comments in JSX 2025-02-28 13:28:37 +01:00
Asger F
0f23c33d3c JS: Fix a comment
Apparently this comment used to say 'NOT OK' but clearly 'OK' was meant
2025-02-28 13:28:36 +01:00
Asger F
cd788bc509 JS: Mark what seems to be missing alerts for fflate
The query doesn't seem to model or even mention fflate. Not sure if the library is safe or just not modeled.
2025-02-28 13:28:35 +01:00
Asger F
3f7f74b925 JS: Accept alerts for DecompressionBomb 2025-02-28 13:28:33 +01:00
Asger F
48760d66b2 JS: Accept alerts for HardcodedDataInterpretedAsCode 2025-02-28 13:28:32 +01:00
Asger F
260c66b3cf JS: Mark a spurious alert in missing-x-frame-options 2025-02-28 13:28:30 +01:00
Asger F
cea53371f2 JS: Accept alerts for missing-x-frame-options 2025-02-28 13:28:29 +01:00
Asger F
cded75766f JS: Add a query ID 2025-02-28 13:28:28 +01:00
Asger F
a0f8e28790 JS: Accept a fixed FN 2025-02-28 13:28:27 +01:00
Asger F
1fcebcec87 JS: Move some ReDoS alerts 2025-02-28 13:28:25 +01:00
Asger F
266ac09637 JS: Add query iDs 2025-02-28 13:28:24 +01:00
Asger F
082e16b3d3 JS: More Alert comments in ReDoS/tst.js based on variable naming
Again just trying to translate the original intent behind the test, without taking actual query results into account
2025-02-28 13:28:23 +01:00
Asger F
607b184a7f JS: Fix a bug in test case 2025-02-28 13:28:22 +01:00
Asger F
51fb3dad74 JS: Accept ReDoS alerts in regexplib 2025-02-28 13:28:21 +01:00
Asger F
d298d8740f JS: Accept some exponenital redos alerts in the polynomial redos test suite 2025-02-28 13:28:19 +01:00
Asger F
283b14207d JS: Accept some ReDoS alerts 2025-02-28 13:28:18 +01:00
Asger F
92c3939457 JS: Accept InsecureRandomness alerts 2025-02-28 13:28:17 +01:00
Asger F
0f8e85fa2f JS: Accept alerts for InsufficientKeySize 2025-02-28 13:28:15 +01:00
Asger F
fc95702341 JS: Accept some more alerts from CleartextStorage 2025-02-28 13:28:14 +01:00
Asger F
51b45598c4 JS: Move an alert and add query ID 2025-02-28 13:28:13 +01:00
Asger F
e91a046a17 JS: Mark a spurious alert 2025-02-28 13:28:12 +01:00
Asger F
b54ff3b5b3 JS: Accept an alert 2025-02-28 13:28:10 +01:00
Asger F
576dbcb020 JS: Stop overriding entire module.exports object in test
Doing `module.exports = blah` prevents other exports from being seen as library inputs.
2025-02-28 13:28:09 +01:00
Asger F
f72cd21a55 JS: Some more test changes in SpuriousArguments 2025-02-28 13:28:08 +01:00
Asger F
d3de6d18a4 JS: Accept other changes to UnusedVariable 2025-02-28 13:28:07 +01:00
Asger F
e745f42291 JS: Remove alert expectation from step
This is just a step on the path, not a sink
2025-02-28 13:28:06 +01:00
Asger F
319ee2ccd5 JS: Track deep flow through qs.stringify 2025-02-28 13:28:04 +01:00
Asger F
c593853710 JS: Record some missing alerts in FileAccessToHttp 2025-02-28 13:28:03 +01:00
Asger F
cf33db78cc JS: Fix the spurious flow 2025-02-28 13:28:02 +01:00
Asger F
c051b4c98d JS: Add spurious alert marker 2025-02-28 13:28:00 +01:00
Asger F
b095fe2a19 JS: Fix some bugs in a test case
'args' was a redeclared block-level variable, and 'myArgs' was not used when clearly intended to be used
2025-02-28 13:27:59 +01:00
Asger F
22c218d665 JS: Mark a 'good' test as 'bad' and add Alert marker
The lack of whitespace around '&&' is problematic
2025-02-28 13:27:58 +01:00
Asger F
a9b263f465 JS: Remove incorrect alert expectation
This is not flagged and AFAICT it shouldn't be
2025-02-28 13:27:57 +01:00
Asger F
287753187e JS: Remove invalid syntax from test
TS decorators may not appear on functions and enums
2025-02-28 13:27:56 +01:00
Asger F
426a871405 JS: Remove incorrect Alert marker
This is expected, based on a comment earlier in the file about the 'y' variable
2025-02-28 13:27:54 +01:00
Asger F
2c46e10678 JS: Mark an alert as missing 2025-02-28 13:27:53 +01:00
Asger F
e026b9e048 JS: Mark regressions due to lack of local field steps 2025-02-28 13:27:52 +01:00
Asger F
e5bee19b19 JS: Accept a double-flagged line
This is flagged by two queries but for two separate issues. Seems valid to flag it twice.
2025-02-28 13:27:51 +01:00
Asger F
68fae9ded8 JS: Accept alerts about newline replacement 2025-02-28 13:27:49 +01:00
Asger F
1f3c49638b JS: Accept some less obvious alerts
These are listed in a function called 'good' but it's difficult to say in isolation whether they should be flagged or not. Accepting the changes as they seem reasonable.
2025-02-28 13:27:48 +01:00
Asger F
f395651807 JS: Mark alert as MISSING
See https://github.com/github/codeql-javascript-team/issues/447
2025-02-28 13:27:47 +01:00
Asger F
07a876b4e9 JS: Accept some alerts at the SystemCommandExecution location 2025-02-28 13:27:46 +01:00
Asger F
10a7294327 JS: Accept trivial test changes
This adds Alert annotations for alerts that seem intentional by the test
but has not been annotated with 'NOT OK', or the comment was in the wrong
place.

In a few cases I included 'Source' expectations to make it easier to see
what happened. Other 'Source' expectations will be added in bulk a later
commit.
2025-02-28 13:27:43 +01:00
Asger F
0453ded338 JS: Add query ID to some alerts 2025-02-28 13:27:41 +01:00
Asger F
86932c51bc JS: Move some alerts to their correct location
One of the diffs look confusing but:
Previously parameter {2,3} where flagged, now parameter {1,2} are flagged.

Note that for command injection, the SystemCommandExecution is flagged
despite the test file claiming otherwise.
2025-02-28 13:27:40 +01:00
Asger F
f5911c9e5a JS: Accept raw test output 2025-02-28 13:27:38 +01:00
Asger F
795c1100fc JS: Disable for SyntaxError
The presence of a syntax error sometimes prevents us from parsing the inline comment correctly.
2025-02-28 13:27:37 +01:00
Asger F
789a7bdb48 JS: Disable for test with alerts in a JSON file
JSON does not support comments so we can't use inline expectations
2025-02-28 13:27:36 +01:00
Asger F
ac6547fd01 JS: Disable for comment-related alerts 2025-02-28 13:27:35 +01:00
Asger F
d0ce53ed82 JS: Enable post-processing for all .qlref files 2025-02-28 13:27:33 +01:00
Asger F
426edd55f2 JS: Update output after line number change
Some OK-style comments had to be moved to the following line, shifting line numbers.

In selected range also included the comments themselves.

Lastly, the result sets were reordered by the CLI in some cases.
2025-02-28 13:27:31 +01:00
Asger F
9be041e27d JS: Update OK-style comments to $-style 2025-02-28 13:27:28 +01:00
Asger F
7e5c24a8ec JS: Remove uses of old inline expectation test library 2025-02-28 13:27:26 +01:00
Asger F
79e2a758d7 JS: Allow more kinds of expectation comments 2025-02-28 13:27:25 +01:00
Paolo Tranquilli
945bf80803 Merge branch 'main' into redsun82/cargo-upgrade 2025-02-28 13:15:43 +01:00
Paolo Tranquilli
0445d886c7 QL for QL: update toolchain 2025-02-28 12:39:37 +01:00
Paolo Tranquilli
c5eeaba2ec Merge branch 'main' into redsun82/cargo-upgrade 2025-02-28 12:26:26 +01:00
Paolo Tranquilli
6b34d3f480 Rust: add missing empty expected file 2025-02-28 12:26:03 +01:00
Paolo Tranquilli
ee61fdcb6f Merge branch 'main' into redsun82/rust-turn-off-ra-resolution 2025-02-28 12:03:14 +01:00
Simon Friis Vindum
bc651af319 Merge branch 'main' into rust-ref-mut 2025-02-28 11:42:06 +01:00
Paolo Tranquilli
e0d4e5ea7f Rust: remove missing flow in test 2025-02-28 11:36:27 +01:00
Simon Friis Vindum
518f164c61 Rust: Address PR comments 2025-02-28 10:49:27 +01:00
Paolo Tranquilli
bb90b678a4 Rust: update rust-specific toolchain 2025-02-28 10:43:48 +01:00
Paolo Tranquilli
d11bbdb5a7 Merge branch 'main' into redsun82/cargo-upgrade 2025-02-28 10:41:37 +01:00
Nicolas Will
0354afc365 Make ArtifactConsumers instances of some Artifacts
TODO: refactor the interfaces
2025-02-27 15:54:38 +01:00
Paolo Tranquilli
a444bbc080 Merge branch 'main' into redsun82/rust-turn-off-ra-resolution 2025-02-27 11:11:06 +01:00
Paolo Tranquilli
0f91323100 Merge branch 'main' into redsun82/cargo-upgrade 2025-02-27 10:05:57 +01:00
Paolo Tranquilli
63a4c8d697 Merge branch 'main' into redsun82/cargo-upgrade 2025-02-27 08:13:49 +01:00
Nicolas Will
ef0614ad45 Restore removed node location output 2025-02-27 05:45:27 +01:00
Nicolas Will
04f4683399 Rewrite handling of known unknowns and data-flow 2025-02-27 05:42:02 +01:00
Simon Friis Vindum
476fef49da Rust: Allow SSA and some data flow for mutable borrows 2025-02-26 16:00:52 +01:00
Paolo Tranquilli
e1ac5823ec Merge branch 'main' into redsun82/cargo-upgrade 2025-02-26 15:39:10 +01:00
Taus
83cdcdbb0b Python: Add change note 2025-02-26 13:53:49 +00:00
Taus
3956a1fea8 Python: Move min/maxParameter methods to Function
These seem generally useful outside of points-to, and so it might be
better to add them to the `Function` class instead.

I took the liberty of renaming these to say `Arguments` rather than
`Parameters`, as this is more in line with the nomenclature that we're
using elsewhere. (The internal points-to methods retain the old names.)

I'm somewhat ambivalent about the behaviour of `getMaxParameters` on
functions with `*varargs`. The hard-coded `INT_MAX` return value is
somewhat awkward, but the alternative (to only have the predicate
defined when a specific maximum exists) seems like it would potentially
cause a lot of headaches.
2025-02-26 13:51:12 +00:00
Simon Friis Vindum
51ae7c6b8c Rust: Reorganize pointers tests and add additional tests 2025-02-26 13:51:55 +01:00
Paolo Tranquilli
3a67836eb2 Merge branch 'main' into redsun82/cargo-upgrade 2025-02-26 09:58:15 +01:00
Nicolas Will
f55f27b0d9 Expand handling of generic artifact sources 2025-02-25 18:22:38 +01:00
Paolo Tranquilli
2585c2f908 Merge branch 'main' into redsun82/cargo-upgrade 2025-02-25 17:03:25 +01:00
Paolo Tranquilli
d9ecb6255e Shared: fix clippy warning 2025-02-25 13:41:34 +01:00
Paolo Tranquilli
bfcf9ea606 Rust: fix compilation errors after rust-anlyzer update 2025-02-25 13:37:00 +01:00
Paolo Tranquilli
cbae16b392 Rust: rerun code generation 2025-02-25 13:31:16 +01:00
Paolo Tranquilli
17703ec908 Bazel: update vendored rust dependencies 2025-02-25 13:31:16 +01:00
Paolo Tranquilli
83e442a266 Rust/Ruby: run cargo upgrade --incompatible --pinned 2025-02-25 13:31:16 +01:00
Paolo Tranquilli
d2105a7528 Shared: format code again 2025-02-25 13:31:06 +01:00
Paolo Tranquilli
1bcc6ddb32 Rust/Ruby/Python: apply clippy lints 2025-02-25 13:21:28 +01:00
Paolo Tranquilli
6089a75262 Rust/Ruby/Python: format code 2025-02-25 13:19:03 +01:00
Paolo Tranquilli
e8799e346d Rust/Python: fix edition-related errors 2025-02-25 13:16:58 +01:00
Paolo Tranquilli
eff87d24fa Rust/Ruby/Python: update rustc and edition 2025-02-25 13:15:19 +01:00
Kevin Stubbings
04476ca5f4 Add more choices to SSRF remediation 2025-02-25 00:16:48 -08:00
Nicolas Will
eb91ecf1fb Add generic artifact data-flow
The relation between RNG and other artifacts has been added
Nonce has been completed to report its source
2025-02-25 02:53:13 +01:00
Jami Cogswell
c2e859c756 Java: add change note 2025-02-24 18:33:45 -05:00
Jami Cogswell
26e396732a Java: edit qhelp 2025-02-24 18:33:43 -05:00
Jami Cogswell
53cb30dcd0 Java: update metadata, move from CWE-016 to CWE-200 2025-02-24 18:33:41 -05:00
Jami Cogswell
6fe7c7a233 Java: some refactoring 2025-02-24 18:33:29 -05:00
Jami Cogswell
f65a5b9a66 Java: add test for qhelp good example 2025-02-24 18:27:45 -05:00
Jami Cogswell
9e51b014d2 Java: handle example in Spring docs 2025-02-24 18:27:43 -05:00
Jami Cogswell
b2469ff8ba Java: add APIs and tests for more recent Spring versions: authorizeHttpRequests, AuthorizeHttpRequestsConfigurer, securityMatcher(s) 2025-02-24 18:26:02 -05:00
Jami Cogswell
8dfb920e05 Java: refactor QL, move code to libraries 2025-02-24 18:24:48 -05:00
Jami Cogswell
8064e8f1f9 Java: convert tests to inline expectations 2025-02-24 18:24:26 -05:00
Jami Cogswell
5e5bc2afe9 Java: remove experimental files 2025-02-24 18:24:19 -05:00
Jami Cogswell
089a491d5a Java: fix tests; update for non-experimental directory 2025-02-24 18:24:17 -05:00
Jami Cogswell
978834bd9c Java: remove deprecations 2025-02-24 18:24:14 -05:00
Jami Cogswell
2ce5920c5e Java: copy out of experimental 2025-02-24 18:24:12 -05:00
Nicolas Will
2b0b927b0b Add Nonce association to Operation, update graph 2025-02-24 17:37:41 +01:00
REDMOND\brodes
86cab46b8d Misc. updates to support all JCA cipher operations, including wrap, unwrap and doFinal calls. Corrected pathing for init tracing to detect what mode is being set along a path. Added support for tracing the init operation mode argument to source. Since this involved creating an Operation Mode, changes were also made to make cipher block modes (CBC) more explicit (previously just called mode, but now that term is used for various purposes). 2025-02-21 12:53:35 -05:00
REDMOND\brodes
9ac9252f75 Adding a todo 2025-02-20 11:11:41 -05:00
REDMOND\brodes
011ed3fbfd Simplifying additional flow step logic. 2025-02-20 11:10:24 -05:00
REDMOND\brodes
83dc5b9906 Fixing type bug 2025-02-20 10:45:33 -05:00
REDMOND\brodes
9ee4a7a7b8 Adding a sketch for a CipherOperation concept to model encryption/decryption operations. 2025-02-20 10:37:40 -05:00
Paolo Tranquilli
9b6f0da1c1 Rust: move nested ql test out 2025-02-19 10:37:52 +01:00
Paolo Tranquilli
c1df8d0e13 Rust: add flag to turn off extractor path resolution 2025-02-19 09:44:09 +01:00
REDMOND\brodes
3871c6a33e Adding support for encryption operation detection. 2025-02-18 16:09:00 -05:00
Nicolas Will
8707e4d9a3 Continue Artifact data-flow WIP 2025-02-18 18:35:49 +01:00
Nicolas Will
df01fa7a9c Expand model and JCA modeling 2025-02-17 00:16:08 +01:00
Nicolas Will
b777a22d35 Expand model and specialize newtype relations 2025-02-14 23:43:07 +01:00
Nicolas Will
874e3b5e06 Modify model to use newtypes, expand modeling 2025-02-12 17:58:15 +01:00
Óscar San José
98ff406462 Add codeql exception to integration-tests folder 2025-02-12 16:42:08 +01:00
Óscar San José
efd9523079 Fix typo in CodeQL workflow configuration 2025-02-12 12:59:48 +01:00
Óscar San José
3611673eec Fix param name in CodeQL workflow configuration 2025-02-12 12:34:02 +01:00
Óscar San José
9bd116fcf8 Add actions to codeql analysis workflow 2025-02-11 16:02:40 +01:00
Nicolas Will
4d44755945 Refactor Model and CBOM print queries 2025-02-11 15:37:15 +01:00
Simon Friis Vindum
4c3a2cd111 Change note creation script uses EDITOR environment variable
Changes the script for creating change notes to read the EDITOR environment variable, and use the editor specified therein. This makes the script more convenient when used from a terminal. The VSCode task is updated to the set EDITOR to `code -r` which preserves the current behavior.
2025-02-11 14:04:46 +01:00
Taus
a69e3f5236 Python: Add change note
Co-authored-by: yoff <yoff@github.com>
2025-02-11 13:02:09 +00:00
Taus
918c05c538 Python: Don't prune any MatchLiteralPatterns
Extends the mechanism introduced in
https://github.com/github/codeql/pull/18030
to behave the same for _all_ `MatchLiteralPattern`s, not just the ones
that happen to be the constant `True` or `False`.

Co-authored-by: yoff <yoff@github.com>
2025-02-11 12:58:52 +00:00
Kristen Newbury
1a12fb3099 Update JCA model, refactor modes 2025-02-10 13:49:32 -05:00
Kristen Newbury
59208bdb85 Update JCA model to use shared lib 2025-02-10 12:22:22 -05:00
Kristen Newbury
9c8ade7ddd Merge branch 'nic/crypto-test' into knewbury01/JCA-sample 2025-02-10 11:48:15 -05:00
Kristen Newbury
6005437001 Update JCA model with flow to call as AESuse and format JCA model 2025-02-10 11:26:48 -05:00
Kristen Newbury
60d931af9f Update progress on JCA 2025-02-07 15:46:13 -05:00
Nicolas Will
7a96f5682e Merge pull request #3 from nicolaswill/nicolaswill/shared-crypto-library
Move language-agnostic model to shared library
2025-02-06 21:57:10 +01:00
Nicolas Will
3dc28c2d17 Move language-agnostic model to shared library 2025-02-06 21:54:18 +01:00
Kristen Newbury
2e12bb5f5c Merge branch 'nic/crypto-test' into knewbury01/JCA-sample 2025-02-06 12:56:32 -05:00
Nicolas Will
cd70acde66 Merge pull request #1 from nicolaswill/brodes/experiments
Concepts for elliptic curves and misc. updates.
2025-02-06 14:43:09 +01:00
Kristen Newbury
efcf7eab0c Add broken crypto query 2025-02-05 17:24:25 -05:00
Kristen Newbury
86e51dad8a Improve JCA aes alg model, add test 2025-02-05 13:39:48 -05:00
Kristen Newbury
5f355c7f55 Add first sample JCA encryption model 2025-02-04 11:55:09 -05:00
Nicolas Will
69a63855cc Update CBOMGraph.ql 2025-01-29 21:55:57 +01:00
Nicolas Will
9af18bc100 WIP: add dgml/dot output/remove test code 2025-01-29 19:45:04 +01:00
REDMOND\brodes
0cd3df9d26 Concepts for elliptic cureve and misc. updates. 2025-01-29 10:27:46 -05:00
Nicolas Will
e027b0e9a0 WIP: add properties 2025-01-28 02:02:06 +01:00
Nicolas Will
78362341ff WIP: hash types example and documentation 2025-01-24 22:32:32 +01:00
Nicolas Will
1a7d8cb99d WIP 2025-01-24 17:33:03 +01:00
Nicolas Will
395d54bf86 Create Base.qll 2025-01-23 12:46:09 +01:00
Taus
8808f0f824 Misc: Add script for calculating MRVA totals
Use this script if you want to quickly calculate the totals of some
query across all the queries in a MRVA run.

For an example of such a query, see e.g.
`python/ql/src/Metrics/Internal/TypeAnnotations.ql`

The script expects the query to produce an output table of the form
```
| header0  | header1  | header2  | header3  | ...
|----------|----------|----------|----------|----
| message1 | value11  | value12  | value13  | ...
| message2 | value21  | value22  | value23  | ...
...
```
where all of the `values` are numbers. For each `(message, header)`
pair, it then calculates the total of all the values in that cell,
across all of the repos in the MRVA run.

To use the script, simply pass it the URL of the exported Gist of the
MRVA run. After calculating the totals, the script will then
(optionally, but by default) add the totals to the `_summary.md` file,
and push these changes to the Gist.
2025-01-08 16:01:11 +00:00
Taus
4141b4fb8a Python: Add metrics query for type annotations
Adds a query that counts the number of type annotations of various
kinds. Intended to be used with something like MRVA to inform our
modelling decisions.

Currently the query counts the following "interesting" types in addition
to the total number of types:
- Built-in types (which are less likely to be interesting from a
modelling perspective)
- Forward declarations (i.e. annotations inside strings) which will
require a fair bit of QL machinery to interpret.
- Simple types (stuff like `foo` or `foo.bar.baz`)
- Optional types (stuff like `Optional[foo]` which from a modelling
perspective should likely be treated the same as `foo`)
- Complex types (anything that contains more complex type constructions
such as instantiations of generic types)
2025-01-08 15:41:31 +00:00
9041 changed files with 697926 additions and 159637 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,9 +4,13 @@ queries:
- uses: security-and-quality
paths-ignore:
- '/actions/ql/test'
- '/cpp/'
- '/java/'
- '/python/'
- '/javascript/ql/test'
- '/javascript/ql/integration-tests'
- '/javascript/extractor/tests'
- '/javascript/extractor/parser-tests'
- '/javascript/ql/src/'
- '/rust/ql'

4
.github/copilot-instructions.md vendored Normal file
View File

@@ -0,0 +1,4 @@
When reviewing code:
* do not review changes in files with `.expected` extension (they are automatically ensured to be correct).
* in `.ql` and `.qll` files, do not try to review the code itself as you don't understand the programming language
well enough to make comments in these languages. You can still check for typos or comment improvements.

View File

@@ -6,18 +6,18 @@ on:
ripunzip-version:
description: "what reference to checktout from google/runzip"
required: false
default: v1.2.1
default: v2.0.2
openssl-version:
description: "what reference to checkout from openssl/openssl for Linux"
required: false
default: openssl-3.3.0
default: openssl-3.5.0
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, macos-13, windows-2019]
os: [ubuntu-22.04, macos-13, windows-2022]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4

View File

@@ -16,7 +16,6 @@ on:
- "shared/**/*.qll"
- "!**/experimental/**"
- "!ql/**"
- "!rust/**"
- ".github/workflows/check-change-note.yml"
jobs:

View File

@@ -0,0 +1,23 @@
name: Check overlay annotations
on:
push:
branches:
- main
- 'rc/*'
pull_request:
branches:
- main
- 'rc/*'
permissions:
contents: read
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check overlay annotations
run: python config/add-overlay-annotations.py --check java

View File

@@ -18,6 +18,10 @@ on:
jobs:
CodeQL-Build:
strategy:
fail-fast: false
matrix:
language: ['actions', 'csharp']
runs-on: ubuntu-latest
@@ -38,9 +42,8 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@main
# Override language selection by uncommenting this and choosing your languages
with:
languages: csharp
languages: ${{ matrix.language }}
config-file: ./.github/codeql/codeql-config.yml
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).

View File

@@ -36,7 +36,7 @@ jobs:
unit-tests:
strategy:
matrix:
os: [ubuntu-latest, windows-2019]
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
@@ -66,6 +66,6 @@ jobs:
# Update existing stubs in the repo with the freshly generated ones
mv "$STUBS_PATH/output/stubs/_frameworks" ql/test/resources/stubs/
git status
codeql test run --threads=0 --search-path "${{ github.workspace }}" --check-databases --check-undefined-labels --check-repeated-labels --check-redefined-labels --consistency-queries ql/consistency-queries -- ql/test/library-tests/dataflow/flowsources/aspremote
codeql test run --threads=0 --search-path "${{ github.workspace }}" --check-databases --check-diff-informed --check-undefined-labels --check-repeated-labels --check-redefined-labels --consistency-queries ql/consistency-queries -- ql/test/library-tests/dataflow/flowsources/aspremote
env:
GITHUB_TOKEN: ${{ github.token }}

View File

@@ -26,9 +26,8 @@ jobs:
uses: ./go/actions/test
test-win:
if: github.repository_owner == 'github'
name: Test Windows
runs-on: windows-latest-xl
runs-on: windows-latest
steps:
- name: Check out code
uses: actions/checkout@v4

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

View File

@@ -68,7 +68,7 @@ jobs:
DATABASE=$2
cd codeql-$QL_VARIANT
SHORTNAME=`basename $DATABASE`
python java/ql/src/utils/modelgenerator/GenerateFlowModel.py --with-summaries --with-sinks $DATABASE $SHORTNAME/$QL_VARIANT
python misc/scripts/models-as-data/generate_mad.py --language java --with-summaries --with-sinks $DATABASE $SHORTNAME/$QL_VARIANT
mkdir -p $MODELS/$SHORTNAME
mv java/ql/lib/ext/generated/$SHORTNAME/$QL_VARIANT $MODELS/$SHORTNAME
cd ..

35
.github/workflows/python-tooling.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: Python tooling
on:
pull_request:
paths:
- "misc/bazel/**"
- "misc/codegen/**"
- "misc/scripts/models-as-data/bulk_generate_mad.py"
- "*.bazel*"
- .github/workflows/codegen.yml
- .pre-commit-config.yaml
branches:
- main
- rc/*
- codeql-cli-*
permissions:
contents: read
jobs:
check-python-tooling:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: pre-commit/action@646c83fcd040023954eafda54b4db0192ce70507
name: Check that python code is properly formatted
with:
extra_args: black --all-files
- name: Run codegen tests
shell: bash
run: |
bazel test //misc/codegen/...

View File

@@ -53,7 +53,7 @@ jobs:
- name: Create database
run: |
"${CODEQL}" database create \
--search-path "${{ github.workspace }}"
--search-path "${{ github.workspace }}" \
--threads 4 \
--language ql --source-root "${{ github.workspace }}/repo" \
"${{ runner.temp }}/database"

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-diff-informed --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

@@ -68,6 +68,6 @@ jobs:
key: ruby-qltest
- name: Run QL tests
run: |
codeql test run --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 }}"
codeql test run --threads=0 --ram 50000 --search-path "${{ github.workspace }}" --check-databases --check-diff-informed --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-15-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

@@ -31,4 +31,4 @@ jobs:
- name: Fail if there are any errors with existing change notes
run: |
codeql pack release --groups cpp,csharp,java,javascript,python,ruby,-examples,-test,-experimental
codeql pack release --groups actions,cpp,csharp,go,java,javascript,python,ruby,shared,swift -examples,-test,-experimental

5
.gitignore vendored
View File

@@ -62,6 +62,7 @@ node_modules/
# Temporary folders for working with generated models
.model-temp
/mad-generation-build
# bazel-built in-tree extractor packs
/*/extractor-pack
@@ -71,3 +72,7 @@ node_modules/
# cargo build directory
/target
# some upgrade/downgrade checks create these files
**/upgrades/*/*.dbscheme.stats
**/downgrades/*/*.dbscheme.stats

View File

@@ -1,5 +1,7 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
default_language_version:
python: python3.12
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
@@ -7,18 +9,18 @@ repos:
- id: trailing-whitespace
exclude: /test/.*$(?<!\.qlref)|.*\.patch$|.*\.qll?$
- id: end-of-file-fixer
exclude: /test/.*$(?<!\.qlref)|.*\.patch$|.*\.qll?$
exclude: Cargo.lock$|/test/.*$(?<!\.qlref)|.*\.patch$|.*\.qll?$
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v17.0.6
hooks:
- id: clang-format
- repo: https://github.com/pre-commit/mirrors-autopep8
rev: v2.0.4
- repo: https://github.com/psf/black
rev: 25.1.0
hooks:
- id: autopep8
files: ^misc/codegen/.*\.py
- id: black
files: ^(misc/codegen/.*|misc/scripts/models-as-data/.*)\.py$
- repo: local
hooks:
@@ -72,7 +74,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

10
.vscode/tasks.json vendored
View File

@@ -50,6 +50,11 @@
"${input:name}",
"${input:categoryQuery}"
],
"options": {
"env": {
"EDITOR": "code -r",
}
},
"presentation": {
"reveal": "never",
"close": true
@@ -67,6 +72,11 @@
"${input:name}",
"${input:categoryLibrary}"
],
"options": {
"env": {
"EDITOR": "code -r"
}
},
"presentation": {
"reveal": "never",
"close": true

View File

@@ -8,12 +8,17 @@
/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
/shared/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 +43,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

1287
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -10,8 +10,4 @@ members = [
"rust/ast-generator",
"rust/autobuild",
]
[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" }
exclude = ["mad-generation-build"]

View File

@@ -24,20 +24,20 @@ bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "abseil-cpp", version = "20240116.1", repo_name = "absl")
bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json")
bazel_dep(name = "fmt", version = "10.0.0")
bazel_dep(name = "rules_kotlin", version = "2.0.0-codeql.1")
bazel_dep(name = "rules_kotlin", version = "2.1.3-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)
# Keep edition and version approximately in sync with internal repo.
# the versions there are canonical, the versions here are used for CI in github/codeql, as well as for the vendoring of dependencies.
RUST_EDITION = "2021"
RUST_EDITION = "2024"
RUST_VERSION = "1.82.0"
RUST_VERSION = "1.86.0"
rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
rust.toolchain(
@@ -71,57 +71,60 @@ use_repo(
tree_sitter_extractors_deps = use_extension("//misc/bazel/3rdparty:tree_sitter_extractors_extension.bzl", "r")
use_repo(
tree_sitter_extractors_deps,
"vendor__anyhow-1.0.95",
"vendor__argfile-0.2.1",
"vendor__chrono-0.4.39",
"vendor__clap-4.5.26",
"vendor__dunce-1.0.5",
"vendor__either-1.13.0",
"vendor__encoding-0.2.33",
"vendor__figment-0.10.19",
"vendor__flate2-1.0.35",
"vendor__glob-0.3.2",
"vendor__globset-0.4.15",
"vendor__itertools-0.14.0",
"vendor__lazy_static-1.5.0",
"vendor__mustache-0.9.0",
"vendor__num-traits-0.2.19",
"vendor__num_cpus-1.16.0",
"vendor__proc-macro2-1.0.93",
"vendor__quote-1.0.38",
"vendor__ra_ap_base_db-0.0.258",
"vendor__ra_ap_cfg-0.0.258",
"vendor__ra_ap_hir-0.0.258",
"vendor__ra_ap_hir_def-0.0.258",
"vendor__ra_ap_hir_expand-0.0.258",
"vendor__ra_ap_ide_db-0.0.258",
"vendor__ra_ap_intern-0.0.258",
"vendor__ra_ap_load-cargo-0.0.258",
"vendor__ra_ap_parser-0.0.258",
"vendor__ra_ap_paths-0.0.258",
"vendor__ra_ap_project_model-0.0.258",
"vendor__ra_ap_span-0.0.258",
"vendor__ra_ap_stdx-0.0.258",
"vendor__ra_ap_syntax-0.0.258",
"vendor__ra_ap_vfs-0.0.258",
"vendor__rand-0.8.5",
"vendor__rayon-1.10.0",
"vendor__regex-1.11.1",
"vendor__serde-1.0.217",
"vendor__serde_json-1.0.135",
"vendor__serde_with-3.12.0",
"vendor__syn-2.0.96",
"vendor__toml-0.8.19",
"vendor__tracing-0.1.41",
"vendor__tracing-flame-0.2.0",
"vendor__tracing-subscriber-0.3.19",
"vendor__tree-sitter-0.24.6",
"vendor__tree-sitter-embedded-template-0.23.2",
"vendor__tree-sitter-json-0.24.8",
"vendor__tree-sitter-ql-0.23.1",
"vendor__tree-sitter-ruby-0.23.1",
"vendor__triomphe-0.1.14",
"vendor__ungrammar-1.16.1",
"vendor_ts__anyhow-1.0.98",
"vendor_ts__argfile-0.2.1",
"vendor_ts__chalk-ir-0.103.0",
"vendor_ts__chrono-0.4.41",
"vendor_ts__clap-4.5.40",
"vendor_ts__dunce-1.0.5",
"vendor_ts__either-1.15.0",
"vendor_ts__encoding-0.2.33",
"vendor_ts__figment-0.10.19",
"vendor_ts__flate2-1.1.0",
"vendor_ts__glob-0.3.2",
"vendor_ts__globset-0.4.15",
"vendor_ts__itertools-0.14.0",
"vendor_ts__lazy_static-1.5.0",
"vendor_ts__mustache-0.9.0",
"vendor_ts__num-traits-0.2.19",
"vendor_ts__num_cpus-1.17.0",
"vendor_ts__proc-macro2-1.0.95",
"vendor_ts__quote-1.0.40",
"vendor_ts__ra_ap_base_db-0.0.288",
"vendor_ts__ra_ap_cfg-0.0.288",
"vendor_ts__ra_ap_hir-0.0.288",
"vendor_ts__ra_ap_hir_def-0.0.288",
"vendor_ts__ra_ap_hir_expand-0.0.288",
"vendor_ts__ra_ap_hir_ty-0.0.288",
"vendor_ts__ra_ap_ide_db-0.0.288",
"vendor_ts__ra_ap_intern-0.0.288",
"vendor_ts__ra_ap_load-cargo-0.0.288",
"vendor_ts__ra_ap_parser-0.0.288",
"vendor_ts__ra_ap_paths-0.0.288",
"vendor_ts__ra_ap_project_model-0.0.288",
"vendor_ts__ra_ap_span-0.0.288",
"vendor_ts__ra_ap_stdx-0.0.288",
"vendor_ts__ra_ap_syntax-0.0.288",
"vendor_ts__ra_ap_vfs-0.0.288",
"vendor_ts__rand-0.9.1",
"vendor_ts__rayon-1.10.0",
"vendor_ts__regex-1.11.1",
"vendor_ts__serde-1.0.219",
"vendor_ts__serde_json-1.0.140",
"vendor_ts__serde_with-3.13.0",
"vendor_ts__syn-2.0.103",
"vendor_ts__toml-0.8.23",
"vendor_ts__tracing-0.1.41",
"vendor_ts__tracing-flame-0.2.0",
"vendor_ts__tracing-subscriber-0.3.19",
"vendor_ts__tree-sitter-0.24.6",
"vendor_ts__tree-sitter-embedded-template-0.23.2",
"vendor_ts__tree-sitter-json-0.24.8",
"vendor_ts__tree-sitter-ql-0.23.1",
"vendor_ts__tree-sitter-ruby-0.23.1",
"vendor_ts__triomphe-0.1.14",
"vendor_ts__ungrammar-1.16.1",
"vendor_ts__zstd-0.13.3",
)
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
@@ -153,7 +156,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")
@@ -191,10 +194,6 @@ use_repo(
kotlin_extractor_deps,
"codeql_kotlin_defaults",
"codeql_kotlin_embeddable",
"kotlin-compiler-1.5.0",
"kotlin-compiler-1.5.10",
"kotlin-compiler-1.5.20",
"kotlin-compiler-1.5.30",
"kotlin-compiler-1.6.0",
"kotlin-compiler-1.6.20",
"kotlin-compiler-1.7.0",
@@ -206,10 +205,7 @@ use_repo(
"kotlin-compiler-2.0.20-Beta2",
"kotlin-compiler-2.1.0-Beta1",
"kotlin-compiler-2.1.20-Beta1",
"kotlin-compiler-embeddable-1.5.0",
"kotlin-compiler-embeddable-1.5.10",
"kotlin-compiler-embeddable-1.5.20",
"kotlin-compiler-embeddable-1.5.30",
"kotlin-compiler-2.2.0-Beta1",
"kotlin-compiler-embeddable-1.6.0",
"kotlin-compiler-embeddable-1.6.20",
"kotlin-compiler-embeddable-1.7.0",
@@ -221,10 +217,7 @@ use_repo(
"kotlin-compiler-embeddable-2.0.20-Beta2",
"kotlin-compiler-embeddable-2.1.0-Beta1",
"kotlin-compiler-embeddable-2.1.20-Beta1",
"kotlin-stdlib-1.5.0",
"kotlin-stdlib-1.5.10",
"kotlin-stdlib-1.5.20",
"kotlin-stdlib-1.5.30",
"kotlin-compiler-embeddable-2.2.0-Beta1",
"kotlin-stdlib-1.6.0",
"kotlin-stdlib-1.6.20",
"kotlin-stdlib-1.7.0",
@@ -236,6 +229,7 @@ use_repo(
"kotlin-stdlib-2.0.20-Beta2",
"kotlin-stdlib-2.1.0-Beta1",
"kotlin-stdlib-2.1.20-Beta1",
"kotlin-stdlib-2.2.0-Beta1",
)
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
@@ -245,24 +239,24 @@ go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
go_deps.from_file(go_mod = "//go/extractor:go.mod")
use_repo(go_deps, "org_golang_x_mod", "org_golang_x_tools")
lfs_files = use_repo_rule("//misc/bazel:lfs.bzl", "lfs_files")
lfs_archive = use_repo_rule("//misc/bazel:lfs.bzl", "lfs_archive")
lfs_files(
lfs_archive(
name = "ripunzip-linux",
srcs = ["//misc/ripunzip:ripunzip-linux"],
executable = True,
src = "//misc/ripunzip:ripunzip-Linux.zip",
build_file = "//misc/ripunzip:BUILD.ripunzip.bazel",
)
lfs_files(
lfs_archive(
name = "ripunzip-windows",
srcs = ["//misc/ripunzip:ripunzip-windows.exe"],
executable = True,
src = "//misc/ripunzip:ripunzip-Windows.zip",
build_file = "//misc/ripunzip:BUILD.ripunzip.bazel",
)
lfs_files(
lfs_archive(
name = "ripunzip-macos",
srcs = ["//misc/ripunzip:ripunzip-macos"],
executable = True,
src = "//misc/ripunzip:ripunzip-macOS.zip",
build_file = "//misc/ripunzip:BUILD.ripunzip.bazel",
)
register_toolchains(

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-code-quality-extended.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,40 @@
## 0.4.12
### Minor Analysis Improvements
* Fixed performance issues in the parsing of Bash scripts in workflow files,
which led to out-of-disk errors when analysing certain workflow files with
complex interpolations of shell commands or quoted strings.
## 0.4.11
No user-facing changes.
## 0.4.10
No user-facing changes.
## 0.4.9
No user-facing changes.
## 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.

View File

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

View File

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

View File

@@ -0,0 +1,7 @@
## 0.4.12
### Minor Analysis Improvements
* Fixed performance issues in the parsing of Bash scripts in workflow files,
which led to out-of-disk errors when analysing certain workflow files with
complex interpolations of shell commands or quoted strings.

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

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

View File

@@ -1,2 +1,2 @@
---
lastReleaseVersion: 0.4.5
lastReleaseVersion: 0.4.12

View File

@@ -50,8 +50,8 @@ class Expression extends AstNode instanceof ExpressionImpl {
string getNormalizedExpression() { result = normalizeExpr(expression) }
}
/** A common class for `env` in workflow, job or step. */
abstract class Env extends AstNode instanceof EnvImpl {
/** An `env` in workflow, job or step. */
class Env extends AstNode instanceof EnvImpl {
/** Gets an environment variable value given its name. */
ScalarValueImpl getEnvVarValue(string name) { result = super.getEnvVarValue(name) }

View File

@@ -8,35 +8,64 @@ class BashShellScript extends ShellScript {
)
}
private string lineProducer(int i) {
result = this.getRawScript().regexpReplaceAll("\\\\\\s*\n", "").splitAt("\n", i)
/**
* Gets the line at 0-based index `lineIndex` within this shell script,
* assuming newlines as separators.
*/
private string lineProducer(int lineIndex) {
result = this.getRawScript().regexpReplaceAll("\\\\\\s*\n", "").splitAt("\n", lineIndex)
}
private predicate cmdSubstitutionReplacement(string cmdSubs, string id, int k) {
exists(string line | line = this.lineProducer(k) |
exists(int i, int j |
cmdSubs =
// $() cmd substitution
line.regexpFind("\\$\\((?:[^()]+|\\((?:[^()]+|\\([^()]*\\))*\\))*\\)", i, j)
.regexpReplaceAll("^\\$\\(", "")
.regexpReplaceAll("\\)$", "") and
id = "cmdsubs:" + k + ":" + i + ":" + j
)
or
exists(int i, int j |
// `...` cmd substitution
cmdSubs =
line.regexpFind("\\`[^\\`]+\\`", i, j)
.regexpReplaceAll("^\\`", "")
.regexpReplaceAll("\\`$", "") and
id = "cmd:" + k + ":" + i + ":" + j
)
private predicate cmdSubstitutionReplacement(string command, string id, int lineIndex) {
this.commandInSubstitution(lineIndex, command, id)
or
this.commandInBackticks(lineIndex, command, id)
}
/**
* Holds if there is a command substitution `$(command)` in
* the line at `lineIndex` in the shell script,
* and `id` is a unique identifier for this command.
*/
private predicate commandInSubstitution(int lineIndex, string command, string id) {
exists(int occurrenceIndex, int occurrenceOffset |
command =
// Look for the command inside a $(...) command substitution
this.lineProducer(lineIndex)
.regexpFind("\\$\\((?:[^()]+|\\((?:[^()]+|\\([^()]*\\))*\\))*\\)", occurrenceIndex,
occurrenceOffset)
// trim starting $( - TODO do this in first regex
.regexpReplaceAll("^\\$\\(", "")
// trim ending ) - TODO do this in first regex
.regexpReplaceAll("\\)$", "") and
id = "cmdsubs:" + lineIndex + ":" + occurrenceIndex + ":" + occurrenceOffset
)
}
private predicate rankedCmdSubstitutionReplacements(int i, string old, string new) {
old = rank[i](string old2 | this.cmdSubstitutionReplacement(old2, _, _) | old2) and
this.cmdSubstitutionReplacement(old, new, _)
/**
* Holds if `command` is a command in backticks `` `...` `` in
* the line at `lineIndex` in the shell script,
* and `id` is a unique identifier for this command.
*/
private predicate commandInBackticks(int lineIndex, string command, string id) {
exists(int occurrenceIndex, int occurrenceOffset |
command =
this.lineProducer(lineIndex)
.regexpFind("\\`[^\\`]+\\`", occurrenceIndex, occurrenceOffset)
// trim leading backtick - TODO do this in first regex
.regexpReplaceAll("^\\`", "")
// trim trailing backtick - TODO do this in first regex
.regexpReplaceAll("\\`$", "") and
id = "cmd:" + lineIndex + ":" + occurrenceIndex + ":" + occurrenceOffset
)
}
private predicate rankedCmdSubstitutionReplacements(int i, string command, string commandId) {
// rank commands by their unique IDs
commandId = rank[i](string c, string id | this.cmdSubstitutionReplacement(c, id, _) | id) and
// since we cannot output (command, ID) tuples from the rank operation,
// we need to work out the specific command associated with the resulting ID
this.cmdSubstitutionReplacement(command, commandId, _)
}
private predicate doReplaceCmdSubstitutions(int line, int round, string old, string new) {
@@ -64,31 +93,56 @@ class BashShellScript extends ShellScript {
this.cmdSubstitutionReplacement(result, _, i)
}
/**
* Holds if `quotedStr` is a string in double quotes in
* the line at `lineIndex` in the shell script,
* and `id` is a unique identifier for this quoted string.
*/
private predicate doubleQuotedString(int lineIndex, string quotedStr, string id) {
exists(int occurrenceIndex, int occurrenceOffset |
// double quoted string
quotedStr =
this.cmdSubstitutedLineProducer(lineIndex)
.regexpFind("\"((?:[^\"\\\\]|\\\\.)*)\"", occurrenceIndex, occurrenceOffset) and
id =
"qstr:" + lineIndex + ":" + occurrenceIndex + ":" + occurrenceOffset + ":" +
quotedStr.length() + ":" + quotedStr.regexpReplaceAll("[^a-zA-Z0-9]", "")
)
}
/**
* Holds if `quotedStr` is a string in single quotes in
* the line at `lineIndex` in the shell script,
* and `id` is a unique identifier for this quoted string.
*/
private predicate singleQuotedString(int lineIndex, string quotedStr, string id) {
exists(int occurrenceIndex, int occurrenceOffset |
// single quoted string
quotedStr =
this.cmdSubstitutedLineProducer(lineIndex)
.regexpFind("'((?:\\\\.|[^'\\\\])*)'", occurrenceIndex, occurrenceOffset) and
id =
"qstr:" + lineIndex + ":" + occurrenceIndex + ":" + occurrenceOffset + ":" +
quotedStr.length() + ":" + quotedStr.regexpReplaceAll("[^a-zA-Z0-9]", "")
)
}
private predicate quotedStringReplacement(string quotedStr, string id) {
exists(string line, int k | line = this.cmdSubstitutedLineProducer(k) |
exists(int i, int j |
// double quoted string
quotedStr = line.regexpFind("\"((?:[^\"\\\\]|\\\\.)*)\"", i, j) and
id =
"qstr:" + k + ":" + i + ":" + j + ":" + quotedStr.length() + ":" +
quotedStr.regexpReplaceAll("[^a-zA-Z0-9]", "")
)
exists(int lineIndex |
this.doubleQuotedString(lineIndex, quotedStr, id)
or
exists(int i, int j |
// single quoted string
quotedStr = line.regexpFind("'((?:\\\\.|[^'\\\\])*)'", i, j) and
id =
"qstr:" + k + ":" + i + ":" + j + ":" + quotedStr.length() + ":" +
quotedStr.regexpReplaceAll("[^a-zA-Z0-9]", "")
)
this.singleQuotedString(lineIndex, quotedStr, id)
) and
// Only do this for strings that might otherwise disrupt subsequent parsing
quotedStr.regexpMatch("[\"'].*[$\n\r'\"" + Bash::separator() + "].*[\"']")
}
private predicate rankedQuotedStringReplacements(int i, string old, string new) {
old = rank[i](string old2 | this.quotedStringReplacement(old2, _) | old2) and
this.quotedStringReplacement(old, new)
private predicate rankedQuotedStringReplacements(int i, string quotedString, string quotedStringId) {
// rank quoted strings by their nearly-unique IDs
quotedStringId = rank[i](string s, string id | this.quotedStringReplacement(s, id) | id) and
// since we cannot output (string, ID) tuples from the rank operation,
// we need to work out the specific string associated with the resulting ID
this.quotedStringReplacement(quotedString, quotedStringId)
}
private predicate doReplaceQuotedStrings(int line, int round, string old, string new) {

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

@@ -214,6 +214,10 @@ private module OutputClobberingConfig implements DataFlow::ConfigSig {
)
)
}
predicate observeDiffInformedIncrementalMode() { any() }
Location getASelectedSourceLocation(DataFlow::Node sink) { none() }
}
/** Tracks flow of unsafe user input that is used to construct and evaluate an environment variable. */

View File

@@ -16,6 +16,10 @@ private module RequestForgeryConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
predicate isSink(DataFlow::Node sink) { sink instanceof RequestForgerySink }
predicate observeDiffInformedIncrementalMode() { any() }
Location getASelectedSourceLocation(DataFlow::Node sink) { none() }
}
/** Tracks flow of unsafe user input that is used to construct and evaluate a system command. */

View File

@@ -15,6 +15,10 @@ private module SecretExfiltrationConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
predicate isSink(DataFlow::Node sink) { sink instanceof SecretExfiltrationSink }
predicate observeDiffInformedIncrementalMode() { any() }
Location getASelectedSourceLocation(DataFlow::Node sink) { none() }
}
/** Tracks flow of unsafe user input that is used in a context where it may lead to a secret exfiltration. */

View File

@@ -0,0 +1,42 @@
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/deploy-pages", "pages: write"]
- ["actions/deploy-pages", "id-token: write"]
- ["actions/delete-package-versions", "packages: 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"]
- ["actions/ai-inference", "contents: read"]
- ["actions/ai-inference", "models: read"]
# TODO: Add permissions for actions/download-artifact
# TODO: Add permissions for actions/upload-artifact
# No permissions needed for actions/upload-pages-artifact
# TODO: Add permissions for actions/cache
# No permissions needed for actions/configure-pages

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.5
version: 0.4.13-dev
library: true
warnOnImplicitThis: true
dependencies:

View File

@@ -1,3 +1,59 @@
## 0.6.4
No user-facing changes.
## 0.6.3
No user-facing changes.
## 0.6.2
### Minor Analysis Improvements
* The query `actions/missing-workflow-permissions` is now aware of the minimal permissions needed for the actions `deploy-pages`, `delete-package-versions`, `ai-inference`. This should lead to better alert messages and better fix suggestions.
## 0.6.1
No user-facing changes.
## 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.
@@ -7,9 +63,10 @@ No user-facing changes.
### 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 remains in the
default Code Scanning suites for use internal to GitHub. Once the Immutable Actions feature is
available, the query will be updated to report alerts again.
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

View File

@@ -24,6 +24,10 @@ private module MyConfig implements DataFlow::ConfigSig {
predicate isSink(DataFlow::Node sink) {
sink instanceof CodeInjectionSink and not madSink(sink, "code-injection")
}
predicate observeDiffInformedIncrementalMode() { any() }
Location getASelectedSourceLocation(DataFlow::Node sink) { none() }
}
module MyFlow = TaintTracking::Global<MyConfig>;

View File

@@ -34,6 +34,10 @@ private module MyConfig implements DataFlow::ConfigSig {
isSink(node) and
set instanceof DataFlow::FieldContent
}
predicate observeDiffInformedIncrementalMode() { any() }
Location getASelectedSourceLocation(DataFlow::Node sink) { none() }
}
module MyFlow = TaintTracking::Global<MyConfig>;

View File

@@ -25,6 +25,10 @@ private module MyConfig implements DataFlow::ConfigSig {
predicate isSink(DataFlow::Node sink) {
exists(CompositeAction c | c.getAnOutputExpr() = sink.asExpr())
}
predicate observeDiffInformedIncrementalMode() { any() }
Location getASelectedSourceLocation(DataFlow::Node sink) { none() }
}
module MyFlow = TaintTracking::Global<MyConfig>;

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
@@ -24,6 +24,10 @@ private module MyConfig implements DataFlow::ConfigSig {
predicate isSink(DataFlow::Node sink) {
sink instanceof CodeInjectionSink and not madSink(sink, "code-injection")
}
predicate observeDiffInformedIncrementalMode() { any() }
Location getASelectedSourceLocation(DataFlow::Node sink) { none() }
}
module MyFlow = TaintTracking::Global<MyConfig>;

View File

@@ -34,6 +34,10 @@ private module MyConfig implements DataFlow::ConfigSig {
isSink(node) and
set instanceof DataFlow::FieldContent
}
predicate observeDiffInformedIncrementalMode() { any() }
Location getASelectedSourceLocation(DataFlow::Node sink) { none() }
}
module MyFlow = TaintTracking::Global<MyConfig>;

View File

@@ -25,6 +25,10 @@ private module MyConfig implements DataFlow::ConfigSig {
predicate isSink(DataFlow::Node sink) {
exists(ReusableWorkflow w | w.getAnOutputExpr() = sink.asExpr())
}
predicate observeDiffInformedIncrementalMode() { any() }
Location getASelectedSourceLocation(DataFlow::Node sink) { none() }
}
module MyFlow = TaintTracking::Global<MyConfig>;

View File

@@ -1,6 +1,4 @@
# Environment Path Injection
## Description
## Overview
GitHub Actions allow to define the system PATH variable by writing to a file pointed to by the `GITHUB_PATH` environment variable. Writing to this file appends a directory to the system PATH variable and automatically makes it available to all subsequent actions in the current job.
@@ -12,11 +10,11 @@ echo "$HOME/.local/bin" >> $GITHUB_PATH
If an attacker can control the contents of the system PATH, they are able to influence what commands are run in subsequent steps of the same job.
## Recommendations
## Recommendation
Do not allow untrusted data to influence the system PATH: Avoid using untrusted data sources (e.g., artifact content) to define the system PATH.
## Examples
## Example
### Incorrect Usage
@@ -36,4 +34,4 @@ If an attacker can manipulate the value being set, such as through artifact down
## References
- [Workflow commands for GitHub Actions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions)
- GitHub Docs: [Workflow commands for GitHub Actions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions).

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,6 +1,4 @@
# Environment Path Injection
## Description
## Overview
GitHub Actions allow to define the system PATH variable by writing to a file pointed to by the `GITHUB_PATH` environment variable. Writing to this file appends a directory to the system PATH variable and automatically makes it available to all subsequent actions in the current job.
@@ -12,11 +10,11 @@ echo "$HOME/.local/bin" >> $GITHUB_PATH
If an attacker can control the contents of the system PATH, they are able to influence what commands are run in subsequent steps of the same job.
## Recommendations
## Recommendation
Do not allow untrusted data to influence the system PATH: Avoid using untrusted data sources (e.g., artifact content) to define the system PATH.
## Examples
## Example
### Incorrect Usage
@@ -36,4 +34,4 @@ If an attacker can manipulate the value being set, such as through artifact down
## References
- [Workflow commands for GitHub Actions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions)
- GitHub Docs: [Workflow commands for GitHub Actions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions).

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,6 +1,4 @@
# Environment Variable Injection
## Description
## Overview
GitHub Actions allow to define environment variables by writing to a file pointed to by the `GITHUB_ENV` environment variable:
@@ -37,7 +35,7 @@ steps:
If an attacker can control the values assigned to environment variables and there is no sanitization in place, the attacker will be able to inject additional variables by injecting new lines or `{delimiters}`.
## Recommendations
## Recommendation
1. **Do not allow untrusted data to influence environment variables**:
@@ -64,7 +62,7 @@ If an attacker can control the values assigned to environment variables and ther
} >> "$GITHUB_ENV"
```
## Examples
## Example
### Example of Vulnerability
@@ -113,5 +111,5 @@ An attacker is be able to run arbitrary code by injecting environment variables
## References
- [Workflow commands for GitHub Actions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions)
- [GitHub Actions Exploitation: Repo Jacking and Environment Manipulation](https://www.synacktiv.com/publications/github-actions-exploitation-repo-jacking-and-environment-manipulation)
- GitHub Docs: [Workflow commands for GitHub Actions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions).
- Synacktiv: [GitHub Actions Exploitation: Repo Jacking and Environment Manipulation](https://www.synacktiv.com/publications/github-actions-exploitation-repo-jacking-and-environment-manipulation).

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,6 +1,4 @@
# Environment Variable Injection
## Description
## Overview
GitHub Actions allow to define environment variables by writing to a file pointed to by the `GITHUB_ENV` environment variable:
@@ -37,7 +35,7 @@ steps:
If an attacker can control the values assigned to environment variables and there is no sanitization in place, the attacker will be able to inject additional variables by injecting new lines or `{delimiters}`.
## Recommendations
## Recommendation
1. **Do not allow untrusted data to influence environment variables**:
@@ -64,7 +62,7 @@ If an attacker can control the values assigned to environment variables and ther
} >> "$GITHUB_ENV"
```
## Examples
## Example
### Example of Vulnerability
@@ -109,9 +107,9 @@ 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
- [Workflow commands for GitHub Actions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions)
- [GitHub Actions Exploitation: Repo Jacking and Environment Manipulation](https://www.synacktiv.com/publications/github-actions-exploitation-repo-jacking-and-environment-manipulation)
- GitHub Docs: [Workflow commands for GitHub Actions](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions).
- Synacktiv: [GitHub Actions Exploitation: Repo Jacking and Environment Manipulation](https://www.synacktiv.com/publications/github-actions-exploitation-repo-jacking-and-environment-manipulation).

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,18 +1,16 @@
# Code Injection in GitHub Actions
## Description
## Overview
Using user-controlled input in GitHub Actions may lead to code injection in contexts like _run:_ or _script:_.
Code injection in GitHub Actions may allow an attacker to exfiltrate any secrets used in the workflow and the temporary GitHub repository authorization token. The token may have write access to the repository, allowing an attacker to make changes to the repository.
## Recommendations
## Recommendation
The best practice to avoid code injection vulnerabilities in GitHub workflows is to set the untrusted input value of the expression to an intermediate environment variable and then use the environment variable using the native syntax of the shell/script interpreter (that is, not _${{ env.VAR }}_).
It is also recommended to limit the permissions of any tokens used by a workflow such as the GITHUB_TOKEN.
## Examples
## Example
### Incorrect Usage

View File

@@ -1,18 +1,16 @@
# Code Injection in GitHub Actions
## Description
## Overview
Using user-controlled input in GitHub Actions may lead to code injection in contexts like _run:_ or _script:_.
Code injection in GitHub Actions may allow an attacker to exfiltrate any secrets used in the workflow and the temporary GitHub repository authorization token. The token may have write access to the repository, allowing an attacker to make changes to the repository.
## Recommendations
## Recommendation
The best practice to avoid code injection vulnerabilities in GitHub workflows is to set the untrusted input value of the expression to an intermediate environment variable and then use the environment variable using the native syntax of the shell/script interpreter (that is, not _${{ env.VAR }}_).
It is also recommended to limit the permissions of any tokens used by a workflow such as the GITHUB_TOKEN.
## Examples
## Example
### Incorrect Usage

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