Chris Smowton
02069b63ba
Merge pull request #18549 from github/release-prep/2.20.2
...
Release preparation for version 2.20.2
2025-01-21 12:59:07 +00:00
Chris Smowton
ffa4e3b6d8
Fix changelog typos
2025-01-21 12:51:15 +00:00
github-actions[bot]
ec70b80a0a
Release preparation for version 2.20.2
2025-01-21 12:47:53 +00:00
Chris Smowton
32fb6c4660
Merge pull request #18548 from github/revert-18539-release-prep/2.20.2
...
Revert "Release preparation for version 2.20.2"
2025-01-21 12:05:49 +00:00
Chris Smowton
90c396b46a
Revert "Release preparation for version 2.20.2"
2025-01-21 12:02:52 +00:00
Chris Smowton
f1014abee6
Merge pull request #18539 from github/release-prep/2.20.2
...
Release preparation for version 2.20.2
2025-01-20 14:48:38 +00:00
Chris Smowton
7aab08810e
Fix change-note typo
2025-01-20 14:47:40 +00:00
github-actions[bot]
ec1ca5dc25
Release preparation for version 2.20.2
2025-01-20 14:44:12 +00:00
Geoffrey White
4cf0c8fee1
Merge pull request #18535 from GeekMasher/rust-sql-injection
...
Rust: Add Models As Data Sinks for SQL Injection
2025-01-20 13:37:33 +00:00
Mathias Vorreiter Pedersen
35dbb6f370
Merge pull request #18531 from MathiasVP/remove-conflation-from-out-nodes
...
C++: Remove pointer/pointee conflation from parameter nodes
2025-01-20 13:05:15 +00:00
Mathias Vorreiter Pedersen
ed651294b6
Merge branch 'main' into remove-conflation-from-out-nodes
2025-01-20 12:42:26 +00:00
Anders Schack-Mulligen
28d0d65c41
Merge pull request #18515 from aschackmull/dataflow/simplify-rev-throughflow
...
Dataflow: Simplify the call-edge join in reverse through-flow.
2025-01-20 13:37:42 +01:00
Rasmus Wriedt Larsen
d7df8d798b
Merge pull request #18519 from github/dbartol/actions-query-list
...
Add `actions` queries to generated list
2025-01-20 13:32:12 +01:00
Mathew Payne
39239fbeef
fix(rust): Update formatting
2025-01-20 12:25:12 +00:00
Asger F
0097e49288
Merge pull request #18337 from asgerf/rb/diff-informed
...
Ruby: enable diff-informed data flow queries
2025-01-20 13:21:04 +01:00
Asger F
f31900378b
Merge pull request #18528 from asgerf/jss/diff-informed
...
JS: Enable diff-informed queries
2025-01-20 13:20:36 +01:00
Mathew Payne
cba1c58dd7
feat(rust): Add ModelsAsDataSinks for SQL Injection
2025-01-20 12:14:34 +00:00
Jeroen Ketema
1b2d7bcbfa
Merge pull request #18534 from jketema/uncomment
...
C++: Uncomment more preprocessor tests
2025-01-20 12:59:20 +01:00
Jeroen Ketema
4b85ea3bc6
Merge pull request #18502 from jketema/consteval
...
C++: Support `if consteval` and `if ! consteval`
2025-01-20 12:49:02 +01:00
Jeroen Ketema
1cbd57e2b9
C++: Uncomment more preprocessor tests
2025-01-20 11:48:01 +01:00
Asger F
29b829bf4a
Revert "Add dummy extension with an empty diff"
...
This reverts commit 772c3363d2 .
2025-01-20 11:20:57 +01:00
Asger F
683ebcaf16
Revert "JS: Add dummy extension with an empty diff"
...
This reverts commit 6e9b95d4e85f4829e788400575570bdb65eda6f6.
2025-01-20 11:20:35 +01:00
Asger F
a948915bb0
JS: Add dummy extension with an empty diff
2025-01-20 11:20:33 +01:00
Asger F
7c29ea9dda
JS: Update ExternalAPIUsedwithUntrustedData
2025-01-20 11:20:32 +01:00
Asger F
ecbd7983ba
JS: Update DifferentKindsComparisonBypassQuery.qll
2025-01-20 11:20:31 +01:00
Asger F
29da1fb6c8
JS: Update ConditionalBypassQuery.qll
2025-01-20 11:20:30 +01:00
Asger F
8fe622f572
JS: Update PrototypePollutingFunction.ql
2025-01-20 11:20:29 +01:00
Asger F
fd763a0883
JS: Auto-patch diff informed queries
2025-01-20 11:20:27 +01:00
Jeroen Ketema
a9e0f20861
C++: Simplify consteval if to be just a single class with an isNot predicate
2025-01-20 11:20:11 +01:00
Michael Nebel
ef034bce4e
Merge pull request #18508 from michaelnebel/csharp/implicitinheritedtostring
...
C#: Also syntheize calls to inherited `ToString`.
2025-01-20 10:51:22 +01:00
Jeroen Ketema
a74189f6fa
Update cpp/ql/lib/change-notes/2024-01-16-consteval-if.md
...
Co-authored-by: Calum Grant <42069085+calumgrant@users.noreply.github.com >
2025-01-20 10:43:25 +01:00
Jeroen Ketema
378f0368af
Update cpp/downgrades/1aa71a4a687fc93f807d4dfeeef70feceeced242/stmts.ql
2025-01-20 10:43:00 +01:00
Michael Nebel
75a80f2a36
Merge pull request #18520 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2025-01-20 09:52:30 +01:00
github-actions[bot]
00dca29216
Add changed framework coverage reports
2025-01-20 00:21:01 +00:00
Mathias Vorreiter Pedersen
d1bb5970ce
Merge branch 'main' into remove-conflation-from-out-nodes
2025-01-18 18:05:22 +00:00
Mathias Vorreiter Pedersen
d661158fed
C++: Accept query test changes.
2025-01-18 18:04:40 +00:00
Mathias Vorreiter Pedersen
8de7d4e8ef
C++: Accept test changes.
2025-01-18 02:11:52 +00:00
Mathias Vorreiter Pedersen
2448475141
C++: Ensure that 'argumentOf' does not map to multiple argument positions.
2025-01-18 02:11:50 +00:00
Mathias Vorreiter Pedersen
9970f7837b
C++: Add pointer/pointee conflation test.
2025-01-17 21:03:44 +00:00
Jeroen Ketema
d8b1d00905
Merge pull request #18516 from jketema/preproc-1
...
C++: Uncomment preprocessor test cases and add addition `#if` test case
2025-01-17 20:41:23 +01:00
Geoffrey White
2d0c73acfe
Merge pull request #18501 from geoffw0/rustmetrics
...
Rust: More metrics for tracking taint.
2025-01-17 16:15:58 +00:00
Mathias Vorreiter Pedersen
10608bce87
Merge pull request #18526 from MathiasVP/negated-conjunctions-2
...
C++: Guard conditions from simple boolean identities
2025-01-17 16:08:43 +00:00
Dave Bartolomeo
3be08e369a
Merge branch 'main' into dbartol/actions-query-list
2025-01-17 10:03:42 -05:00
docs-bot
8b5bed1a46
Add actions-security-experimental.qls
2025-01-17 09:47:44 -05:00
Mathias Vorreiter Pedersen
5c494c3f66
C++: Infer 'b1 = true' and 'b2 = true' from 'b1 && b2 = true', and infer 'b1 = false' and 'b2 = false' from 'b1 || b2 = false'.
2025-01-17 13:07:41 +00:00
Mathias Vorreiter Pedersen
eadccf27ef
C++: Add test cases with missing inferred equalities.
2025-01-17 13:01:03 +00:00
Mathias Vorreiter Pedersen
d8ec6dd155
Merge pull request #18490 from MathiasVP/generate-int-to-bool-conversion-instructions-2
...
C++: Generate int-to-bool conversions in C code
2025-01-17 12:57:55 +00:00
Mathias Vorreiter Pedersen
21f9e6763d
C++: Remove an unnecessary conjunct.
2025-01-17 12:44:22 +00:00
Asger F
772c3363d2
Add dummy extension with an empty diff
2025-01-17 13:44:11 +01:00
Paolo Tranquilli
17d2e4a338
Merge pull request #18500 from github/redsun82/rust-aggregate-workspaces
...
Rust: aggregate projects into workspaces
2025-01-17 13:23:07 +01:00
Asger F
871cdb014d
Ruby: fix TODOs left by the patch query
2025-01-17 13:21:54 +01:00
Asger F
4dc632f742
Ruby: mass enable diff-informed data flow
2025-01-17 13:21:52 +01:00
Mathias Vorreiter Pedersen
b39a932ae1
C++: Update comment in the char pred of 'GuardConditionFromNotExpr'.
2025-01-17 12:17:47 +00:00
yoff
15a18315b7
Merge pull request #18524 from github/redsun82/python-match-fps
...
Python: add some more FP tests around match
2025-01-17 12:55:56 +01:00
Paolo Tranquilli
e6cb376ad8
Rust: fix typo
2025-01-17 12:31:48 +01:00
Paolo Tranquilli
bbaff8b199
Rust: cleanup workspace aggregation
2025-01-17 12:19:56 +01:00
Asger F
aa0b9559bf
Merge pull request #18472 from asgerf/js/test-suite
...
JS: Port three tests to use the new post processing-based inline test expectations
2025-01-17 12:06:32 +01:00
Paolo Tranquilli
4ab5650979
Python: add some more FP tests around match
2025-01-17 11:01:00 +01:00
Asger F
0d52541f0a
Merge pull request #18458 from asgerf/js/angular2-xss-through-dom
...
JS: Add Angular2 DOM sources
2025-01-17 10:55:14 +01:00
Asger F
2c65946684
JS: Add setOtherInput example
2025-01-17 10:29:03 +01:00
Asger F
e983e26f68
JS: Add example with safe field
2025-01-17 10:28:07 +01:00
Asger F
7b3727b874
JS: Add change note
2025-01-17 10:27:02 +01:00
Asger F
37062763ae
JS: Bump extractor version string
2025-01-17 10:27:01 +01:00
Asger F
859783c08b
JS: Support [(ngModel)]
2025-01-17 10:26:57 +01:00
Asger F
d55c68c1f1
JS: Add test case with [(ngModel)]
2025-01-17 10:24:16 +01:00
Asger F
97f5559e64
JS: Recognise form input from NgForm
2025-01-17 10:22:20 +01:00
Asger F
1ec3a62242
JS: Add test with NgForm.value
2025-01-17 10:20:59 +01:00
Asger F
d4daa21318
JS: Add DOM event sources in Angular2 model
2025-01-17 10:20:22 +01:00
Asger F
b8ba50a9ac
JS: Add Angular test case in XssThroughDom
2025-01-17 10:12:42 +01:00
Asger F
6f46a34873
JS: Refactor domEventSource() into a Range class
2025-01-17 10:12:40 +01:00
Asger F
26a11efc5b
Merge branch 'main' into js/test-suite
2025-01-17 10:09:06 +01:00
Anders Schack-Mulligen
498bfd2160
Merge pull request #18512 from aschackmull/dataflow/join-fix2
...
Dataflow: Another minor join-order fix
2025-01-17 09:09:47 +01:00
Jeroen Ketema
65a11e4e82
Merge pull request #18514 from jketema/objc
...
C++: Remove some Objective-C specific query code
2025-01-17 08:18:05 +01:00
docs-bot
01c4dd81f0
Add actions queries to generated list
2025-01-16 18:02:46 -05:00
Owen Mansel-Chan
45e9957bd9
Merge pull request #18438 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2025-01-16 22:58:57 +00:00
Jeroen Ketema
e6eaf5e6ac
Merge pull request #18510 from jketema/noreturn
...
C++: Support more "noreturn" attributes in DefaultOptions
2025-01-16 19:09:44 +01:00
Mathias Vorreiter Pedersen
d5b31eb98c
C++: Add more tests.
2025-01-16 17:25:39 +00:00
Jeroen Ketema
ff0d4955cf
C++: Fix change note
2025-01-16 17:55:45 +01:00
Mathias Vorreiter Pedersen
d0bd6eb2eb
C++: Remove the type restriction on 'GuardConditionFromNotExpr' since this class also applies to C++.
2025-01-16 16:55:10 +00:00
Mathias Vorreiter Pedersen
54faba21ba
C++: Add more tests.
2025-01-16 16:44:29 +00:00
Owen Mansel-Chan
8bfab55df7
Merge branch 'main' into workflow/coverage/update
2025-01-16 16:38:06 +00:00
Geoffrey White
e5faf92bab
Rust: Make QL-for-QL happy (part 2).
2025-01-16 16:16:02 +00:00
Geoffrey White
5f9e1c3788
Apply suggestions from code review
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-01-16 16:14:33 +00:00
Michael Nebel
bae29aeee4
C#: Update implications test expected output.
2025-01-16 16:57:33 +01:00
Michael Nebel
b6db1a34d6
C#: Also make the implicitToString test print the type declaring the ToString call being synthesized.
2025-01-16 16:57:32 +01:00
Michael Nebel
aab88da117
C#: Update test expected output.
2025-01-16 16:57:30 +01:00
Michael Nebel
260ce805d1
C#: Also support implicit inherited ToString synthetic calls.
2025-01-16 16:57:29 +01:00
Michael Nebel
ec256c3277
C#: More implicit ToString examples.
2025-01-16 16:57:27 +01:00
Jeroen Ketema
dca87f3727
C++: Uncomment preprocessor test cases and add addition #if test case
...
Note that the new test case shows that line splicing is not correctly handled
in the case of `#if`.
2025-01-16 16:42:35 +01:00
Anders Schack-Mulligen
20af2d5fe2
Dataflow: Fix poor join-order
2025-01-16 16:22:56 +01:00
Anders Schack-Mulligen
3ffc616179
Dataflow: Slight join improvement.
2025-01-16 16:22:55 +01:00
Anders Schack-Mulligen
f310780257
Dataflow: Simplify the call-edge join in reverse through-flow.
2025-01-16 16:07:24 +01:00
Mathias Vorreiter Pedersen
00a1978b0c
C++: Add a guard condition test with an example of a negated less-than relation.
2025-01-16 14:57:08 +00:00
Mathias Vorreiter Pedersen
2076c1c51f
C++: Add an copy of a (slightly modified) syntax-zoo test as an IR test.
2025-01-16 14:33:25 +00:00
Mathias Vorreiter Pedersen
6ba5f3e472
Merge branch 'main' into generate-int-to-bool-conversion-instructions-2
2025-01-16 14:28:50 +00:00
Jeroen Ketema
aec151dce9
C++: Remove some Objective-C specific query code
...
We have not supported Objective-C for a long time.
2025-01-16 15:17:30 +01:00
Paolo Tranquilli
133e2696ac
Merge pull request #18513 from asgerf/js/fix-flow-summary-spec
...
JS: Fix semantic merge conflict: Implement new signature members in StepInputSig
2025-01-16 14:47:42 +01:00
Asger F
bd2febcf00
JS: Implementing new signature members in StepInputSig
2025-01-16 13:38:08 +01:00
Jeroen Ketema
52eef7c4c2
C++: Fix typo in test
2025-01-16 13:19:54 +01:00
Asger F
1964b347c7
Merge branch 'main' into js/test-suite
2025-01-16 13:19:07 +01:00
Jeroen Ketema
d027e0c06b
C++: Add change note
2025-01-16 13:12:20 +01:00
Jeroen Ketema
bd40d249e3
C++: Support more "noreturn" attributes in DefaultOptions
2025-01-16 13:04:44 +01:00
Jeroen Ketema
f4f5f2899c
C++: Add more noreturn attribute tests
2025-01-16 13:01:53 +01:00
Anders Schack-Mulligen
fbf25e43a4
Merge pull request #18507 from aschackmull/dataflow/join-fix
...
Dataflow: Minor join-order fix
2025-01-16 12:10:23 +01:00
Michael Nebel
9021214937
Merge pull request #18495 from michaelnebel/csharp/refstrucinterfacetests
...
C# 13: [TEST ONLY] ref structs are allowed to implement interfaces.
2025-01-16 11:46:22 +01:00
Michael Nebel
0452b4af3d
Merge pull request #18498 from michaelnebel/csharp/refandunsafe
...
C# 13: [TEST ONLY] Test example with ref local, unsafe context and ref struct in async- and iterator methods.
2025-01-16 11:42:30 +01:00
Michael Nebel
ba2b7abce9
Merge pull request #18446 from michaelnebel/csharp/implicittostring2
...
C#: Adding synthetic implicit ToString calls in binary- and string interpolation expressions.
2025-01-16 11:37:21 +01:00
Asger F
6cd9752289
Merge pull request #18467 from github/js/shared-dataflow-branch
...
JS: Migrate to shared data flow library (targeting main!) 🚀
2025-01-16 11:28:57 +01:00
Anders Schack-Mulligen
4223971f14
Dataflow: Remove outdated comment.
2025-01-16 10:26:40 +01:00
Anders Schack-Mulligen
f11ae49312
Dataflow: Fix a poor join-order.
2025-01-16 10:25:55 +01:00
Jeroen Ketema
6ad342c567
C++: Add change note
2025-01-16 10:22:54 +01:00
Jeroen Ketema
4a3350bd41
C++: Update stats file
2025-01-16 08:18:09 +01:00
Jeroen Ketema
123f1d599a
C++: Add upgrade and downgrade scripts
2025-01-16 08:18:07 +01:00
Jeroen Ketema
bc2f203c4b
C++: Support if consteval and if ! consteval
2025-01-16 08:17:57 +01:00
Mathias Vorreiter Pedersen
5373e2222e
C++: Improve IRGuads logic for 'unlikely' expressions.
2025-01-16 00:45:07 +00:00
Mathias Vorreiter Pedersen
7cca21364b
C++: Accept test changes.
2025-01-16 00:39:39 +00:00
Mathias Vorreiter Pedersen
14db788125
C++: Ensure that 'x' in 'if(!x) is also an AST-based GuardCondition.
2025-01-16 00:39:37 +00:00
Mathias Vorreiter Pedersen
b5897e5727
C++: Accept sign analysis changes.
2025-01-16 00:39:36 +00:00
Mathias Vorreiter Pedersen
2d9036eb5f
C++: Make 'getInstructionConvertedResultExpression' equivalent in C and C++.
2025-01-16 00:39:35 +00:00
Mathias Vorreiter Pedersen
ebb7f28d39
C++: Remove workaround for missing comparisons against 0 in C code.
2025-01-16 00:39:33 +00:00
Mathias Vorreiter Pedersen
9810a4f34d
C++: Remove 'inNonZeroCase' from IRGuards since we now always have implicit comparisons against 0 in C code.
2025-01-16 00:39:32 +00:00
Mathias Vorreiter Pedersen
0d7adac601
C++: Accept Guards test changes.
2025-01-16 00:39:31 +00:00
Mathias Vorreiter Pedersen
5da57cd2b4
C++: Accept test changes.
2025-01-16 00:39:29 +00:00
Mathias Vorreiter Pedersen
65771614ef
C++: Insert int-to-bool conversions at binary conditional expressions.
2025-01-16 00:39:28 +00:00
Mathias Vorreiter Pedersen
9d3bc7f510
C++: Accept test changes.
2025-01-16 00:39:26 +00:00
Mathias Vorreiter Pedersen
f30bfb63cf
C++: Insert int-to-bool conversions at 'NotExpr's.
2025-01-16 00:39:25 +00:00
Mathias Vorreiter Pedersen
1e33593c79
C++: Accept test changes.
2025-01-16 00:39:23 +00:00
Mathias Vorreiter Pedersen
dd39b97ab0
C++: Insert int-to-bool conversions at conditions.
2025-01-16 00:39:22 +00:00
Mathias Vorreiter Pedersen
2e3d3494de
C++: Accept test changes.
2025-01-16 00:39:20 +00:00
Mathias Vorreiter Pedersen
5acd2bb2fb
C++: Adjust the result type at 'NotExpr' and at comparisons.
2025-01-16 00:39:17 +00:00
Mathias Vorreiter Pedersen
9429b03896
C++: Provide a hook for overriding 'getResultType'.
2025-01-16 00:39:16 +00:00
Mathias Vorreiter Pedersen
6dd1c5e809
C++: Split out 'NotExpr' to its own class.
2025-01-16 00:39:14 +00:00
Mathias Vorreiter Pedersen
a0d2213268
Merge pull request #18503 from MathiasVP/scanf-check-prepare-fix
...
C++: Harden `checkedForEof`
2025-01-16 00:38:51 +00:00
github-actions[bot]
09198d9c25
Add changed framework coverage reports
2025-01-16 00:20:36 +00:00
Mathias Vorreiter Pedersen
01cbd2f7f1
C++: Ensure that the instruction being compared is the result of the 'CallInstruction'.
2025-01-15 19:27:28 +00:00
Jeroen Ketema
84c674b992
C++: Fix typos in IR translation comments
2025-01-15 20:16:43 +01:00
Geoffrey White
90faab456d
Merge pull request #18473 from geoffw0/sensitive2
...
Improve shared sensitive data library handling of snake_case variable names
2025-01-15 18:02:33 +00:00
Geoffrey White
bec01daa45
Rust: Update integration tests.
2025-01-15 17:57:16 +00:00
Geoffrey White
98e0b64266
Rust: Make QL-for-QL happy.
2025-01-15 17:51:49 +00:00
Geoffrey White
787a6d11a3
Rust: Autoformat.
2025-01-15 17:25:44 +00:00
Geoffrey White
65b33f3f96
Rust: Improve rust/summary/summary-statistics organization.
2025-01-15 17:16:49 +00:00
Geoffrey White
5a037bcbc4
Rust: Count taint edges as well.
2025-01-15 16:18:58 +00:00
Geoffrey White
72c62ac192
Rust: Add taint reach to rust/summary/summary-statistics.
2025-01-15 16:18:56 +00:00
Geoffrey White
7904ed965b
Rust: Add query sink counts query for getting a breakdown.
2025-01-15 16:18:51 +00:00
Paolo Tranquilli
3c064284b0
Rust: aggregate projects into workspaces
2025-01-15 17:17:19 +01:00
Geoffrey White
c6a7be671b
Rust: Add both totals to rust/summary/summary-statistics.
2025-01-15 16:16:49 +00:00
Geoffrey White
75f0a7f529
Rust: Add summary query rust/summary/query-sinks.
2025-01-15 16:16:26 +00:00
Michael Nebel
ca23e1b1fc
C#: Test example with ref local, unsafe context and ref struct in async and iterator methods.
2025-01-15 15:16:56 +01:00
Michael Nebel
8b6e5521a8
C#: Add some an implements test.
2025-01-15 13:08:07 +01:00
Jeroen Ketema
02ac61f328
Merge pull request #18483 from jketema/extractor-fixes
...
C++: Fix types of struct/union templates and fix assumptions on proxy classes
2025-01-15 12:01:25 +01:00
Jeroen Ketema
a3cd66844c
C++: Add change note
2025-01-15 11:38:09 +01:00
Jeroen Ketema
cd5e77348b
C++: Add upgrade and downgrade scripts
2025-01-15 11:38:07 +01:00
Jeroen Ketema
8e39eb9020
C++: Fix incorrect dbscheme assumptions on proxy classes
2025-01-15 11:38:05 +01:00
Jeroen Ketema
13e8853277
C++: Update expected test results after extractor changes
2025-01-15 11:38:03 +01:00
Jeroen Ketema
537feddf06
C++: Introduce usertypes for structs and unions
2025-01-15 11:38:01 +01:00
Paolo Tranquilli
f62a3ace9a
Merge pull request #18491 from hvitved/rust/ql-test-recurse
...
Rust: Include nested `.rs` files in `codeql test run`
2025-01-15 10:10:55 +01:00
Michael Nebel
3de5b224c6
C#: Update other existing tests expected output.
2025-01-15 09:23:34 +01:00
Paolo Tranquilli
e60468e2c7
Rust: add nested test file example
2025-01-15 09:21:57 +01:00
Tom Hvitved
3ceec93499
Merge pull request #18462 from hvitved/rust/variable-without-location
...
Rust: Avoid location-based variable analysis
2025-01-15 09:20:10 +01:00
Geoffrey White
4ed4f6878f
Rust: Add summary query rust/summary/cryptographic-ops.
2025-01-14 17:32:44 +00:00
Michael Nebel
0c5c2a3509
C#: Add implicit to string test.
2025-01-14 17:17:21 +01:00
Michael Nebel
6a406b28d1
C#: Do not insert a synthetic ToString call in interpolation expressions, if the type implements IFormattable.
2025-01-14 17:14:57 +01:00
Michael Nebel
ab70a945e4
C#: Add a summary model for PathString.ToString.
2025-01-14 17:14:12 +01:00
Michael Nebel
024de5eafc
C#: Update virtual call in constructor expected test output.
2025-01-14 17:14:11 +01:00
Michael Nebel
2bff2d646f
C#: Disregards compiler generated virtual calls as problematic virtual calls.
2025-01-14 17:14:09 +01:00
Michael Nebel
77f9f4c532
C#: Add implicit to string usage in constructor.
2025-01-14 17:14:07 +01:00
Michael Nebel
d40c1bebbf
C#: Update expected testoutput for Nullness tests.
2025-01-14 17:14:06 +01:00
Michael Nebel
e62846e4c5
C#: Disregard compiler generated method calls as possible null dereferences.
2025-01-14 17:14:04 +01:00
Michael Nebel
6a31fd7893
C#: Add ImplicitToString example in nullness tests.
2025-01-14 17:14:02 +01:00
Michael Nebel
cd7d2d4ca4
C#: Add change note.
2025-01-14 17:14:00 +01:00
Michael Nebel
20c2b2b2a2
C#: Update other existing tests expected output.
2025-01-14 17:13:59 +01:00
Michael Nebel
f239ab1fbf
C#: Update PrintAst expected test output.
2025-01-14 17:13:57 +01:00
Michael Nebel
53c2f76385
C#: Update AST printing to include generated cast (wrapping) expressions and generated ToString calls.
2025-01-14 17:13:56 +01:00
Michael Nebel
6c6e58b337
C#: Add PrintAst test to implicit ToString test.
2025-01-14 17:13:54 +01:00
Michael Nebel
a4049b1d9a
C#: Modify compiler generated strip logic to also take generated ToString calls into account.
2025-01-14 17:13:53 +01:00
Michael Nebel
8bf67e37fe
C#: Update test expected output.
2025-01-14 17:13:51 +01:00
Michael Nebel
5f539c5515
C#: Make synthetic ToString calls in string interpolation expressions.
2025-01-14 17:13:50 +01:00
Michael Nebel
e9beeac60f
C#: Update test expected output.
2025-01-14 17:13:48 +01:00
Michael Nebel
908a3e3563
C#: Make synthetic ToString calls in binary add expressions.
2025-01-14 17:13:46 +01:00
Michael Nebel
f905be4df3
C#: Add a RedundantToStringCall test case.
2025-01-14 17:13:45 +01:00
Michael Nebel
261b8db144
C#: Add some implicit toString data flow test cases.
2025-01-14 17:13:43 +01:00
Geoffrey White
6402aa5332
Merge pull request #18471 from geoffw0/weakhash
...
Rust: Weak hashing query
2025-01-14 15:54:42 +00:00
Chris Smowton
b2bb143689
Merge pull request #18305 from smowton/smowton/admin/agent-extracted-file-test
...
Java: Add test for a JavacTool-based compiler that doesn't use standard JavaFileObjects
2025-01-14 15:52:55 +00:00
Chris Smowton
060161cd5e
Add change note
2025-01-14 14:22:27 +00:00
Chris Smowton
5ca7d26cf3
Add test for a JavacTool-based compiler that doesn't use standard JavaFileObjects
2025-01-14 14:22:26 +00:00
Tom Hvitved
ed07da4327
Rust: Include nested .rs files in codeql test run
2025-01-14 14:35:34 +01:00
Chris Smowton
3e10e78c95
Merge pull request #18480 from github/smowton/admin/document-serialization-proxy
...
Java: document serialization proxy pattern
2025-01-14 12:34:01 +00:00
Mathias Vorreiter Pedersen
0ff37f1205
Merge pull request #18486 from MathiasVP/indirect-instruction-barriers
...
C++: Add a `BarrierGuard` module for indirect instruction/operand nodes.
2025-01-14 11:37:58 +00:00
Simon Friis Vindum
7196892867
Merge pull request #18461 from paldepind/cpp-conditional-expr-range-analysis
...
C++: Only propagate smallest/largest range bound in conditional expressions
2025-01-14 12:31:21 +01:00
Mathias Vorreiter Pedersen
aa55b8e726
Merge pull request #18485 from MathiasVP/speed-up-cpp-unbounded-write
...
C++: Speed up the `cpp/unbounded-write` query for an upcoming change
2025-01-14 10:39:03 +00:00
Jeroen Ketema
a2aefc9d61
Merge pull request #18478 from jketema/stats-try
...
C++: Update stats file
2025-01-14 10:47:20 +01:00
Jeroen Ketema
4951571dd4
Merge pull request #18488 from geoffw0/cleanup
...
C++: Fix a couple of typos.
2025-01-14 10:46:56 +01:00
Geoffrey White
96008469d4
C++: QLDoc correction.
2025-01-14 09:19:50 +00:00
Paolo Tranquilli
23612b47a4
Merge pull request #18484 from github/redsun82/rust-discover-once
...
Rust: run sysroot discovery once
2025-01-14 09:54:58 +01:00
Owen Mansel-Chan
883301938b
Merge pull request #18161 from owen-mc/java/weak-crypto-algo-more-informative
...
Java: Make `java/weak-cryptographic-algorithm` give a reason why the algo is insecure
2025-01-13 23:43:04 +00:00
yoff
599411b440
Merge pull request #17787 from yoff/shared/add-location-to-typetracking-nodes
...
shared: Add locations to type tracking nodes
2025-01-13 23:06:09 +01:00
Mathias Vorreiter Pedersen
d9d0d9348c
C++: Add change note.
2025-01-13 18:53:59 +00:00
Mathias Vorreiter Pedersen
91992e2f3f
C++: Accept test changes.
2025-01-13 18:34:42 +00:00
Mathias Vorreiter Pedersen
6f3a2c41b3
C++: Fill in skeleton for indirect instruction/operand barrier nodes.
2025-01-13 18:34:32 +00:00
Mathias Vorreiter Pedersen
4e3b27e920
C++: Add a testcase that needs indirect instruction/operand nodes.
2025-01-13 18:33:52 +00:00
Mathias Vorreiter Pedersen
d63b73406c
C++: Add dataflow skeleton for barrier guards on indirect instruction/operand nodes.
2025-01-13 18:33:18 +00:00
Mathias Vorreiter Pedersen
2d44b33598
C++: Speed up the 'cpp/unbounded-write' query.
2025-01-13 16:03:30 +00:00
Paolo Tranquilli
7988729ee6
Rust: run sysroot discovery once
2025-01-13 16:13:55 +01:00
Ian Lynagh
6b182c5ebd
Merge pull request #18396 from igfoo/igfoo/path_transformer
...
Kotlin: Add CODEQL_PATH_TRANSFORMER support
2025-01-13 15:11:41 +00:00
Michael Nebel
c68b55b957
Merge pull request #18385 from michaelnebel/csharp/allowsrefstruct
...
C# 13: Allows ref struct.
2025-01-13 16:04:03 +01:00
Michael Nebel
d0d5e0d157
C#: Address review comment.
2025-01-13 14:56:24 +01:00
Paolo Tranquilli
ca28087a16
Merge pull request #18479 from github/redsun82/rust-upgrade
...
Rust: update dependencies
2025-01-13 14:31:49 +01:00
Simon Friis Vindum
e9f2a8b017
C++: Extend nested ternary test with two more terms in the addition
2025-01-13 13:54:05 +01:00
Chris Smowton
0b62338cda
Java: document serialization proxy pattern
...
Note I haven't included a reference because I can't find a sufficiently-authoritative source -- only a blog quoting Effective Java seems close to appropriate, and I suspect that's pirated.
2025-01-13 11:49:36 +00:00
Paolo Tranquilli
cae7236f61
Rust: update dependencies
2025-01-13 12:43:43 +01:00
Simon Friis Vindum
dcdc43933b
C++: Minor refactor and documentation tweak to simple range analysis
2025-01-13 12:15:09 +01:00
Simon Friis Vindum
0c9ee4d029
C++: Only propagate smallest/largest bound in conditional expressions
2025-01-13 12:11:45 +01:00
Simon Friis Vindum
847f3f1fc2
C++: Add test for nested ternary expressions of literals
2025-01-13 12:08:50 +01:00
Geoffrey White
e61d6aec22
Rust: Autoformat.
2025-01-13 10:51:49 +00:00
Geoffrey White
676141bbb9
Rust: More suggestions from review.
2025-01-13 10:45:30 +00:00
Geoffrey White
722b7bb55b
Apply suggestions from code review
...
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com >
2025-01-13 10:28:08 +00:00
Tom Hvitved
33e6d6392c
Rust: Avoid location-based variable analysis
2025-01-13 11:08:00 +01:00
Tom Hvitved
d03b284a0a
Rust: Add more variable tests
2025-01-13 10:46:54 +01:00
Tom Hvitved
7376449d38
Rust: Rename variables.rs to main.rs
2025-01-13 10:46:53 +01:00
Jeroen Ketema
3f093aea35
C++: Fix join order problem after stats file update
...
Tuple counts before the change (terminated early):
```
[2025-01-11 17:49:42] (297s) Tuple counts for AliasedSSA::getResultMemoryLocation/1#eb4efd2d/2@c513392o after 13.5s:
0 ~0% {3} r1 = JOIN `_SSAConstruction::getInstructionOpcode/2#ec2d1f97_10#join_rhs__AliasedSSA::canReuseSsaForOldResult/1__#shared` WITH Opcode::MayWriteOpcode#class#21b7b7f2 ON FIRST 1 OUTPUT Lhs.1, Lhs.2 'instr', _
0 ~0% {3} | REWRITE WITH Out.2 := true
30500 ~124% {2} r2 = SCAN `_AliasedSSA::canReuseSsaForOldResult/1#280fbda5_Opcode::Opcode.getWriteMemoryAccess/0#dispred#531702__#shared` OUTPUT In.1, In.0 'instr'
{2} | AND NOT `_Opcode::MayWriteOpcode#class#21b7b7f2__SSAConstruction::getInstructionOpcode/2#ec2d1f97_10#join_rhs__#antijoin_rhs#1`(FIRST 2)
30500 ~134% {3} | SCAN OUTPUT In.0, In.1 'instr', _
30500 ~120% {3} | REWRITE WITH Out.2 := false
30500 ~120% {3} r3 = r1 UNION r2
8000 ~738% {2} r4 = JOIN r3 WITH num#MemoryAccessKind::TEscapedMemoryAccess#a0368c86 ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2
{2} | AND NOT `AliasedSSA::canReuseSsaForOldResult/1#280fbda5`(FIRST 1)
4000 ~699% {2} | SCAN OUTPUT In.1, In.0 'instr'
1501792000 ~686% {3} | JOIN WITH num#AliasedSSA::TAllAliasedMemory#4bb632db_102#join_rhs ON FIRST 1 OUTPUT Rhs.2 'result', Lhs.1 'instr', Rhs.1
1501788000 ~709% {3} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2, Lhs.0 'result'
0 ~0% {2} | JOIN WITH `SSAConstruction::getInstructionEnclosingIRFunction/1#d26c0476` ON FIRST 2 OUTPUT Lhs.0 'instr', Lhs.2 'result'
8000 ~674% {2} r5 = JOIN r3 WITH num#MemoryAccessKind::TNonLocalMemoryAccess#b2a59f45 ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2
{2} | AND NOT `AliasedSSA::canReuseSsaForOldResult/1#280fbda5`(FIRST 1)
4000 ~689% {2} | SCAN OUTPUT In.1, In.0 'instr'
310509500 ~547% {3} | JOIN WITH num#AliasedSSA::TAllNonLocalMemory#7ba9f6c9_102#join_rhs ON FIRST 1 OUTPUT Rhs.2 'result', Lhs.1 'instr', Rhs.1
310504500 ~527% {3} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2, Lhs.0 'result'
0 ~0% {2} | JOIN WITH `SSAConstruction::getInstructionEnclosingIRFunction/1#d26c0476` ON FIRST 2 OUTPUT Lhs.0 'instr', Lhs.2 'result'
5000 ~2% {2} r6 = JOIN r3 WITH `AliasedSSA::isIndirectOrBufferMemoryAccess/1#a6492554` ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2
5000 ~2% {2} | AND NOT `AliasedSSA::canReuseSsaForOldResult/1#280fbda5`(FIRST 1)
{2} r7 = r6 AND NOT `project#AliasedSSA::hasResultMemoryAccess/9#732473d4#7`(FIRST 1)
0 ~0% {2} | SCAN OUTPUT In.1, In.0 'instr'
0 ~0% {3} | JOIN WITH num#AliasedSSA::TUnknownMemoryLocation#e0c2a990_102#join_rhs ON FIRST 1 OUTPUT Rhs.2 'result', Lhs.1 'instr', Rhs.1
0 ~0% {3} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2, Lhs.0 'result'
0 ~0% {2} | JOIN WITH `SSAConstruction::getInstructionEnclosingIRFunction/1#d26c0476` ON FIRST 2 OUTPUT Lhs.0 'instr', Lhs.2 'result'
5000 ~0% {2} r8 = JOIN r3 WITH num#MemoryAccessKind::TEntireAllocationMemoryAccess#503d0afb ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2
5000 ~0% {2} | AND NOT `AliasedSSA::canReuseSsaForOldResult/1#280fbda5`(FIRST 1)
4500 ~2% {4} | JOIN WITH `Instruction::Instruction.getResultAddressOperand/0#dispred#619d4407` ON FIRST 1 OUTPUT Rhs.1, Lhs.0 'instr', _, Lhs.1
4500 ~4% {3} | REWRITE WITH Out.2 := booleanNot(In.3) KEEPING 3
0 ~0% {3} | JOIN WITH `project#AliasAnalysis::addressOperandAllocationAndOffset/3#c64a9862` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'instr', Lhs.2
0 ~0% {4} | JOIN WITH num#AliasedSSA::TEntireAllocationMemoryLocation#85bb24dd ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2, Rhs.1, Rhs.2 'result'
{4} | REWRITE WITH TEST InOut.1 != InOut.2
0 ~0% {2} | SCAN OUTPUT In.3 'result', In.0 'instr'
0 ~0% {2} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.0 'result'
4500 ~0% {5} r9 = JOIN r6 WITH `project#AliasedSSA::hasResultMemoryAccess/9#732473d4#5_0512346#join_rhs` ON FIRST 2 OUTPUT Lhs.0 'instr', Lhs.1, Rhs.2, Rhs.6, _
{4} | REWRITE WITH Tmp.4 := false, TEST InOut.3 != Tmp.4 KEEPING 4
0 ~0% {5} | SCAN OUTPUT In.2, _, In.0 'instr', _, In.1
0 ~0% {4} | REWRITE WITH Out.1 := false, Out.3 := booleanNot(In.4) KEEPING 4
0 ~0% {4} | JOIN WITH `AliasedSSA::getGroupedMemoryLocation/3#14ef79fc#ffbf_0213#join_rhs` ON FIRST 2 OUTPUT Lhs.2 'instr', Lhs.3, Rhs.2, Rhs.3 'result'
{4} | REWRITE WITH TEST InOut.1 != InOut.2
0 ~0% {2} | SCAN OUTPUT In.3 'result', In.0 'instr'
0 ~0% {2} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.0 'result'
4500 ~0% {8} r10 = JOIN r6 WITH `project#AliasedSSA::hasResultMemoryAccess/9#732473d4#5_0512346#join_rhs` ON FIRST 2 OUTPUT Lhs.0 'instr', Lhs.1, Rhs.2, Rhs.3, Rhs.4, Rhs.5, Rhs.6, _
{7} | REWRITE WITH Tmp.7 := false, TEST InOut.6 = Tmp.7 KEEPING 7
4000 ~0% {6} | SCAN OUTPUT In.2, In.3, In.4, In.5, In.0 'instr', In.1
3500 ~1% {8} | JOIN WITH num#AliasedSSA::TVariableMemoryLocation#8e8cb20c_013456#join_rhs ON FIRST 4 OUTPUT Rhs.5 'result', Lhs.4 'instr', Lhs.5, Lhs.0, Lhs.1, Lhs.2, Lhs.3, Rhs.4
3000 ~0% {8} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.2, Lhs.7, Lhs.0 'result'
2500 ~2% {5} | JOIN WITH `project#AliasedSSA::hasResultMemoryAccess/9#732473d4#6` ON FIRST 6 OUTPUT Lhs.0 'instr', Lhs.6, Lhs.7 'result', _, Lhs.5
{4} | REWRITE WITH Out.3 := booleanNot(In.4), TEST Out.3 != InOut.1 KEEPING 4
2000 ~0% {2} | SCAN OUTPUT In.0 'instr', In.2 'result'
2000 ~0% {2} r11 = r4 UNION r5 UNION r7 UNION r8 UNION r9 UNION r10
return r11
```
Tuple counts after:
```
[2025-01-11 17:52:46] (9s) Tuple counts for AliasedSSA::getResultMemoryLocation/1#eb4efd2d/2@6c9e69ae after 6.1s:
1283623 ~5% {3} r1 = JOIN `_SSAConstruction::getInstructionOpcode/2#ec2d1f97_10#join_rhs__AliasedSSA::canReuseSsaForOldResult/1__#shared` WITH Opcode::MayWriteOpcode#class#21b7b7f2 ON FIRST 1 OUTPUT Lhs.1, Lhs.2 'instr', _
1283623 ~0% {3} | REWRITE WITH Out.2 := true
2965447 ~0% {2} r2 = SCAN `_AliasedSSA::canReuseSsaForOldResult/1#280fbda5_Opcode::Opcode.getWriteMemoryAccess/0#dispred#531702__#shared` OUTPUT In.1, In.0 'instr'
{2} | AND NOT `_Opcode::MayWriteOpcode#class#21b7b7f2__SSAConstruction::getInstructionOpcode/2#ec2d1f97_10#join_rhs__#antijoin_rhs#1`(FIRST 2)
1681824 ~1% {3} | SCAN OUTPUT In.0, In.1 'instr', _
1681824 ~0% {3} | REWRITE WITH Out.2 := false
2965447 ~0% {3} r3 = r1 UNION r2
1334818 ~0% {2} r4 = JOIN r3 WITH num#MemoryAccessKind::TEscapedMemoryAccess#a0368c86 ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2
1334818 ~0% {2} | AND NOT `AliasedSSA::canReuseSsaForOldResult/1#280fbda5`(FIRST 1)
1334818 ~6% {3} | JOIN WITH `SSAConstruction::getInstructionEnclosingIRFunction/1#d26c0476` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 'instr'
1334818 ~4% {2} | JOIN WITH num#AliasedSSA::TAllAliasedMemory#4bb632db ON FIRST 2 OUTPUT Rhs.2 'result', Lhs.2 'instr'
1334818 ~2% {2} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.0 'result'
363138 ~1% {2} r5 = JOIN r3 WITH num#MemoryAccessKind::TNonLocalMemoryAccess#b2a59f45 ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2
363138 ~1% {2} | AND NOT `AliasedSSA::canReuseSsaForOldResult/1#280fbda5`(FIRST 1)
363138 ~5% {3} | JOIN WITH `SSAConstruction::getInstructionEnclosingIRFunction/1#d26c0476` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 'instr'
363138 ~0% {2} | JOIN WITH num#AliasedSSA::TAllNonLocalMemory#7ba9f6c9 ON FIRST 2 OUTPUT Rhs.2 'result', Lhs.2 'instr'
363138 ~0% {2} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.0 'result'
1086950 ~5% {2} r6 = JOIN r3 WITH `AliasedSSA::isIndirectOrBufferMemoryAccess/1#a6492554` ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2
1086950 ~5% {2} | AND NOT `AliasedSSA::canReuseSsaForOldResult/1#280fbda5`(FIRST 1)
141434 ~0% {2} r7 = r6 AND NOT `project#AliasedSSA::hasResultMemoryAccess/9#732473d4#7`(FIRST 1)
141434 ~0% {3} | JOIN WITH `SSAConstruction::getInstructionEnclosingIRFunction/1#d26c0476` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0 'instr'
141434 ~5% {2} | JOIN WITH num#AliasedSSA::TUnknownMemoryLocation#e0c2a990 ON FIRST 2 OUTPUT Rhs.2 'result', Lhs.2 'instr'
141434 ~0% {2} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.0 'result'
180541 ~0% {2} r8 = JOIN r3 WITH num#MemoryAccessKind::TEntireAllocationMemoryAccess#503d0afb ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2
180541 ~0% {2} | AND NOT `AliasedSSA::canReuseSsaForOldResult/1#280fbda5`(FIRST 1)
180541 ~3% {4} | JOIN WITH `Instruction::Instruction.getResultAddressOperand/0#dispred#619d4407` ON FIRST 1 OUTPUT Rhs.1, Lhs.0 'instr', _, Lhs.1
180541 ~0% {3} | REWRITE WITH Out.2 := booleanNot(In.3) KEEPING 3
175074 ~2% {3} | JOIN WITH `project#AliasAnalysis::addressOperandAllocationAndOffset/3#c64a9862` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'instr', Lhs.2
349412 ~0% {4} | JOIN WITH num#AliasedSSA::TEntireAllocationMemoryLocation#85bb24dd ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.2, Rhs.1, Rhs.2 'result'
{4} | REWRITE WITH TEST InOut.1 != InOut.2
174706 ~1% {2} | SCAN OUTPUT In.3 'result', In.0 'instr'
174706 ~3% {2} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.0 'result'
946577 ~0% {5} r9 = JOIN r6 WITH `project#AliasedSSA::hasResultMemoryAccess/9#732473d4#5_0512346#join_rhs` ON FIRST 2 OUTPUT Lhs.0 'instr', Lhs.1, Rhs.2, Rhs.6, _
{4} | REWRITE WITH Tmp.4 := false, TEST InOut.3 != Tmp.4 KEEPING 4
2122 ~6% {5} | SCAN OUTPUT In.2, _, In.0 'instr', _, In.1
2122 ~0% {4} | REWRITE WITH Out.1 := false, Out.3 := booleanNot(In.4) KEEPING 4
4244 ~104% {4} | JOIN WITH `AliasedSSA::getGroupedMemoryLocation/3#14ef79fc#ffbf_0213#join_rhs` ON FIRST 2 OUTPUT Lhs.2 'instr', Lhs.3, Rhs.2, Rhs.3 'result'
{4} | REWRITE WITH TEST InOut.1 != InOut.2
2122 ~98% {2} | SCAN OUTPUT In.3 'result', In.0 'instr'
1061 ~0% {2} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.0 'result'
946577 ~0% {8} r10 = JOIN r6 WITH `project#AliasedSSA::hasResultMemoryAccess/9#732473d4#5_0512346#join_rhs` ON FIRST 2 OUTPUT Lhs.0 'instr', Lhs.1, Rhs.2, Rhs.3, Rhs.4, Rhs.5, Rhs.6, _
{7} | REWRITE WITH Tmp.7 := false, TEST InOut.6 = Tmp.7 KEEPING 7
944455 ~0% {6} | SCAN OUTPUT In.2, In.3, In.4, In.5, In.0 'instr', In.1
1183383 ~2% {8} | JOIN WITH num#AliasedSSA::TVariableMemoryLocation#8e8cb20c_013456#join_rhs ON FIRST 4 OUTPUT Rhs.5 'result', Lhs.4 'instr', Lhs.5, Lhs.0, Lhs.1, Lhs.2, Lhs.3, Rhs.4
1183383 ~0% {8} | JOIN WITH AliasedSSA::MemoryLocation#4b9f223c ON FIRST 1 OUTPUT Lhs.1 'instr', Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.2, Lhs.7, Lhs.0 'result'
1183383 ~0% {5} | JOIN WITH `project#AliasedSSA::hasResultMemoryAccess/9#732473d4#6` ON FIRST 6 OUTPUT Lhs.0 'instr', Lhs.6, Lhs.7 'result', _, Lhs.5
{4} | REWRITE WITH Out.3 := booleanNot(In.4), TEST Out.3 != InOut.1 KEEPING 4
944455 ~3% {2} | SCAN OUTPUT In.0 'instr', In.2 'result'
2959612 ~0% {2} r11 = r4 UNION r5 UNION r7 UNION r8 UNION r9 UNION r10
return r11
```
2025-01-11 17:50:51 +01:00
Jeroen Ketema
fb047a67d6
C++: Update stats file
2025-01-11 17:40:18 +01:00
Jeroen Ketema
fcf6c3c4e8
Merge pull request #18474 from jketema/cpp20-beta
...
Drop C++20 beta notification from docs
2025-01-10 17:32:44 +01:00
Jeroen Ketema
35f90a6101
Drop C++20 beta notification from docs
2025-01-10 16:17:46 +01:00
Geoffrey White
edd1f257ad
Rust: Attempt to fix the test on CI.
2025-01-10 14:51:15 +00:00
Edward Minnix III
fd878a1f33
Merge pull request #18465 from egregius313/egregius313/go/mad/database/beego-orm
...
Go: `database` source models for `github.com/beego/beego/client/orm`
2025-01-10 09:41:32 -05:00
Geoffrey White
1b6c289cb4
Rust: Unrelated MaD test impact. :(
2025-01-10 14:38:05 +00:00
Ed Minnix
0f038355ff
Fix provenance in test
2025-01-10 09:26:58 -05:00
Geoffrey White
19d3e9dbca
Rust: Correct the qhelp.
2025-01-10 14:19:12 +00:00
Michael B. Gale
1cba147087
Merge pull request #18469 from github/mbg/csharp/fix-crash-if-proxy-env-vars-are-already-set
...
C#: Fix crash if proxy environment variables are already set
2025-01-10 14:11:27 +00:00
Tom Hvitved
b5982643c7
Merge pull request #18445 from hvitved/rust/format-args-index
...
Rust: Remove `Format.getArgument`
2025-01-10 15:06:43 +01:00
Jeroen Ketema
8c3e5b6f56
Merge pull request #18368 from github/jketema/template-parameters-7
...
C++: Handle requires clauses and type template type constraints
2025-01-10 15:02:41 +01:00
Ed Minnix
43771d8f19
Fix formatting
2025-01-10 08:50:09 -05:00
Joe Farebrother
a7fb73a2b2
Merge pull request #18185 from joefarebrother/python-lxml
...
Python: Model additional flow steps for the lxml framework
2025-01-10 13:40:16 +00:00
Tom Hvitved
0795c244e9
Rust: Move QL doc into annotations.py
2025-01-10 14:27:53 +01:00
Ed Minnix
bff243367c
Rename test functions to include package name
2025-01-10 08:26:46 -05:00
Edward Minnix III
4bd43b4e70
Reword change note to be more general
...
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com >
2025-01-10 08:22:28 -05:00
Ed Minnix
46f9448043
Add Ormer models for v1 of the beego ORM
2025-01-10 08:20:26 -05:00
Asger F
bc34a045d3
JS: Triage discrepancies and update test
2025-01-10 14:18:31 +01:00
Asger F
18ab066e79
JS: Remove OK comments that don't provide further explanation
2025-01-10 14:18:30 +01:00
Asger F
c2b65b1f85
JS: Port IncompleteUrlSubstringSanitization test
2025-01-10 14:18:29 +01:00
Asger F
6b4be13a8e
JS: Move annotations to the correct line
2025-01-10 14:18:28 +01:00
Asger F
95e20a045b
JS: Port IncompleteUrlSchemeCheck test
2025-01-10 14:18:26 +01:00
Asger F
563471dd52
JS: Triage discrepancies and update test
2025-01-10 14:18:25 +01:00
Asger F
48f7a58d01
JS: Update IncompleteHostnameRegExp test to match reality
2025-01-10 14:18:24 +01:00
Asger F
a83508a828
JS: Port IncompleteHostNameRegExt test
2025-01-10 14:18:23 +01:00
Asger F
ce8912ddcc
Test: Handle 'problems' result set as an alias for '#select'
2025-01-10 14:18:21 +01:00
Geoffrey White
ad268220bf
Rust: Address QL-for-QL comments.
2025-01-10 12:53:12 +00:00
Geoffrey White
39a38c4c53
Rust: Tweak .qhelp layout.
2025-01-10 12:48:53 +00:00
Geoffrey White
bb4322cf7c
Rust: Make a type more accurate.
2025-01-10 12:39:10 +00:00
Geoffrey White
c115169dbe
Rust: Move ModelledHashOperation to a more logical location.
2025-01-10 12:36:05 +00:00
Geoffrey White
ae26cd6c32
Rust: Update test for changes on main.
2025-01-10 12:36:04 +00:00
Geoffrey White
9b8f561614
Rust: Add another reference.
2025-01-10 12:36:03 +00:00
Geoffrey White
59386597c3
Rust: Add .qhelp.
2025-01-10 12:36:01 +00:00
Geoffrey White
babfa758a3
Rust: Add models for an alternative md5 library.
2025-01-10 11:56:27 +00:00
Geoffrey White
ae0f4f10de
Rust: Add hash function sinks.
2025-01-10 11:56:26 +00:00
Geoffrey White
d72b978bc7
Rust: Add sensitive data sources.
2025-01-10 11:56:25 +00:00
Geoffrey White
8f4a52001f
Rust: Add query framework.
2025-01-10 11:56:24 +00:00
Geoffrey White
509c6ffb7a
Rust: Add tests for weak hashing.
2025-01-10 11:56:23 +00:00
Tom Hvitved
166f8916cc
Rust: Remove Format.getArgument
2025-01-10 12:51:42 +01:00
Michael B. Gale
b0f0a24b6a
C#: Override env vars in DotNetCliInvoker if already set
2025-01-10 11:36:02 +00:00
Michael B. Gale
f78c6e0924
C#: Remove incorrect log message from DependabotProxy
2025-01-10 11:35:14 +00:00
Geoffrey White
5ef5b04aac
Add change notes.
2025-01-10 11:16:53 +00:00
Tom Hvitved
303b11ec36
Merge pull request #18298 from hvitved/rust/mad-source-sink
...
Rust: Add support for MaD sources and sinks with access paths
2025-01-10 11:49:51 +01:00
Owen Mansel-Chan
0728b3bd60
Update test expectation
2025-01-10 10:37:05 +00:00
Geoffrey White
488738a8b8
Swift: Remove special case that is now redundant.
2025-01-10 10:31:55 +00:00
Geoffrey White
f8659c0a4e
Sync identical files.
2025-01-10 10:26:13 +00:00
Geoffrey White
9a8a852277
Rust: Support snake case more widely in SensitiveDataHeuristics.qll.
2025-01-10 10:23:55 +00:00
Mathias Vorreiter Pedersen
a35dc7ea69
Merge pull request #18463 from MathiasVP/add-sysalloc-models
...
C++: Add MaD models for `SysAllocString` and friends
2025-01-10 10:10:06 +00:00
Geoffrey White
88e351ad4f
Rust: Expand sensitive data test cases.
2025-01-10 10:00:13 +00:00
Jeroen Ketema
0a292fbaf5
C++: Add upgrade and downgrade scripts
2025-01-10 10:20:51 +01:00
Jeroen Ketema
7f5772b8a4
C++: Update dbscheme stats file
2025-01-10 10:19:45 +01:00
Jeroen Ketema
3f6a2850cc
C++: Add change note
2025-01-10 10:19:44 +01:00
Jeroen Ketema
2c9af9ea30
C++: Add support for requires clauses and constraints on template parameters
2025-01-10 10:19:34 +01:00
Michael Nebel
b358f33f9e
C#: Address review comment.
2025-01-10 10:00:44 +01:00
Tom Hvitved
039b2ecf9b
Merge pull request #18457 from hvitved/dataflow/disallowed-return-inline-late
...
Data flow: Fix a bad join order
2025-01-10 09:37:58 +01:00
Ed Minnix
592b46bea8
Change note
2025-01-09 21:55:05 -05:00
Ed Minnix
baec4adbb1
beego models
2025-01-09 21:54:00 -05:00
Jeroen Ketema
204afab427
Merge pull request #18367 from github/jketema/template-parameters-6
...
C++: Handle template variable specializations
2025-01-09 22:21:03 +01:00
Mathias Vorreiter Pedersen
1822dc4860
C++: Add change note.
2025-01-09 17:56:07 +00:00
Mathias Vorreiter Pedersen
7a84132a6b
C++: Add models and accept testcases.
2025-01-09 17:32:34 +00:00
Mathias Vorreiter Pedersen
23acc31885
C++: Add testcases with missing models.
2025-01-09 17:30:37 +00:00
Paolo Tranquilli
928c66aea3
Merge pull request #18443 from github/redsun82/cargo-upgrade
...
Rust: update rust-analyzer
2025-01-09 17:33:26 +01:00
Jeroen Ketema
12048aefad
Merge pull request #18408 from jketema/config-silence
...
C++: Silence alerts coming from CMake test compilation files
2025-01-09 16:31:55 +01:00
Geoffrey White
0ce409efd7
Update cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/CMakeFiles/CMakeScratch/TryCompile-abcdef/CheckFunctionExists.c
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2025-01-09 15:17:57 +00:00
Paolo Tranquilli
6ded99ccb1
Merge branch 'main' into redsun82/cargo-upgrade
2025-01-09 16:05:48 +01:00
Erik Krogh Kristensen
70a1a6454d
Merge pull request #18452 from asgerf/js/import-spec-strings
...
JS: Fix crash in case of string literal in export specifier
2025-01-09 15:50:40 +01:00
Paolo Tranquilli
4f79199498
Rust: replace std::fs::canonicalize with dunce::canonicalize
...
Rust-analyzer turned out to be quite picky about paths, where
`//?/`-prefixed paths can lead to flaky failures. See
https://github.com/rust-lang/rust-analyzer/issues/18894
for details.
This makes paths always be canonicalized with `dunce`. Previously,
`dunce` was used as a fallback, but that stopped working somewhere
after version 0.0.248 of rust-analyzer.
2025-01-09 15:43:15 +01:00
Paolo Tranquilli
cd95cc8f94
Rust: update rust-analyzer to 0.0.257
2025-01-09 15:34:07 +01:00
Michael B. Gale
14cfac506e
Merge pull request #18456 from owen-mc/go/fix-test-jmoiron
...
Go: Fix stub that is making test fail
2025-01-09 13:20:08 +00:00
yoff
b263132ab2
Merge pull request #17998 from yoff/shared/locations-in-range-analysis
2025-01-09 14:05:54 +01:00
Jeroen Ketema
347edc4ff6
C++: Add upgrade and downgrade scripts
2025-01-09 13:26:33 +01:00
Jeroen Ketema
74bc28534f
C++: Update dbscheme stats file
2025-01-09 13:23:25 +01:00
Jeroen Ketema
0a57587189
C++: Add change note
2025-01-09 13:23:23 +01:00
Jeroen Ketema
17127356e8
C++: Handle template variable specializations
2025-01-09 13:23:21 +01:00
Nora Dimitrijević
09571135e6
Merge pull request #18425 from d10c/d10c/BigInt.bitLength
...
Language reference: mention BigInt.bitLength()
2025-01-09 13:19:25 +01:00
Tom Hvitved
653d1227e3
Data flow: Cache known{Source,Sink}Model
2025-01-09 13:11:29 +01:00
Jeroen Ketema
60ae374a88
Merge pull request #18366 from github/jketema/template-parameters-5
...
C++: Support concept id expressions
2025-01-09 13:02:19 +01:00
Tom Hvitved
91b6a6573c
Data flow: Fix a bad join order
2025-01-09 12:58:16 +01:00
Owen Mansel-Chan
1812be7fa8
Fix stub
2025-01-09 11:43:36 +00:00
Asger F
0f6e8bf140
Merge pull request #18451 from asgerf/jss/cleanup-todos
...
JS: Clean up some TODO comments
2025-01-09 11:50:35 +01:00
Tom Hvitved
a7bb95249b
Rust: Implement known{Source,Sink}Model
2025-01-09 11:47:57 +01:00
Jeroen Ketema
ac05bfcf4e
C++: Remove some redundant toStrings
2025-01-09 11:04:07 +01:00
Jeroen Ketema
6325dd2ce1
C++: Simplify toString
2025-01-09 11:03:41 +01:00
Asger F
a7fbfb2c2d
JS: Change note
2025-01-09 10:48:52 +01:00
Asger F
fd5a3dad90
JS: One more test
2025-01-09 10:46:45 +01:00
Asger F
138b000891
JS: Coerce the local export node to an Identifier
2025-01-09 10:42:25 +01:00
Asger F
db98880163
JS: Add crash reproduction to test case
2025-01-09 10:39:30 +01:00
Asger F
9c4d378a1d
JS: Remove TODO comment
...
It is not subsumed by the other case, both cases are needed
2025-01-09 10:17:16 +01:00
Asger F
3f2882e1c6
JS: Remove an obsolete comment
...
The RHS of an assignment actually has a post-update node now
2025-01-09 09:59:23 +01:00
Asger F
b2d62a080b
JS: Move a test failure explanation into the test suite
...
We have an issue for fixing the underlying problem
2025-01-09 09:57:44 +01:00
Asger F
d9da9444fa
JS: Rephrase TODO
...
This is useful info, but not something that can be fixed locally in this query, so a TODO comment isn't helping
2025-01-09 09:45:39 +01:00
Asger F
3def8ecdee
JS: Remove unimportant TODO
2025-01-09 09:43:03 +01:00
Asger F
388dd871e1
JS: Remove TODO tracked by an issue.
...
This requires changes to the shared data flow library, not something we should track with a TODO in the JS codebase
2025-01-09 09:41:40 +01:00
Asger F
8b060c4294
JS: Remove TODO about evaluating legacy steps
...
There is an issue for tracking this. It's not a small fix.
2025-01-09 09:40:29 +01:00
Asger F
a8f93cac05
JS: Remove obsolete comment
...
The test case actually has the correct result now
2025-01-09 09:39:32 +01:00
Asger F
dd37c474d8
JS: Remove mention of results from comments
2025-01-09 09:39:30 +01:00
Asger F
fb54a3bde8
JS: Remove obsolete TODO comment
2025-01-09 09:39:29 +01:00
Asger F
b29ee2acde
JS: Remove references to localFieldStep
...
These are tracked in https://github.com/github/codeql-javascript-team/issues/456
2025-01-09 09:39:27 +01:00
Asger F
7766f97232
JS: Remove obsolete TODO
2025-01-09 09:39:26 +01:00
Asger F
8ac08db5c2
JS: Remove TODOs about WithArrayElement not being a taint step
...
This isn't going to become a taint step, the workaround is the permanent solution
2025-01-09 09:39:23 +01:00
Asger F
3cc1525985
JS: Remove obsolete TODOs
2025-01-09 09:19:30 +01:00
Asger F
1997e0a7b6
Merge pull request #18427 from asgerf/jss/change-note
...
JS: Add migration guide and change note
2025-01-09 09:13:16 +01:00
Paolo Tranquilli
ca05697365
Merge pull request #18429 from github/redsun82/rust-ast-generator-mustache
...
Rust: make ast-generator use mustache templates
2025-01-09 08:37:07 +01:00
Jeroen Ketema
f08d10065c
C++: Add upgrade and downgrade scripts
2025-01-09 00:44:39 +01:00
Jeroen Ketema
7cba263bc4
C++: Update dbscheme stats file
2025-01-09 00:44:38 +01:00
Jeroen Ketema
033f35fe42
C++: Improve PrintAST for concept ids
...
If a type would be used in multiple places in the AST, rendering of the
AST would be broken. Hence, we cannot directly use types as AST nodes.
2025-01-09 00:44:37 +01:00
Jeroen Ketema
f8458f6025
C++: Add change note
2025-01-09 00:44:36 +01:00
Jeroen Ketema
c48fcf1fb2
C++: Support concept id expressions
2025-01-09 00:44:26 +01:00
Dave Bartolomeo
554ea29547
Merge pull request #18437 from github/post-release-prep/codeql-cli-2.20.1
...
Post-release preparation for codeql-cli-2.20.1
2025-01-08 14:33:34 -05:00
Geoffrey White
3363235b1c
Merge pull request #18414 from geoffw0/sensitive
...
Rust: Sensitive data library
2025-01-08 17:38:18 +00:00
Edward Minnix III
af15ebad7e
Merge pull request #18426 from egregius313/egregius313/go/mad/database/sqlx
...
Go: Add `database` source models for the `jmoiron/sqlx` package
2025-01-08 11:31:36 -05:00
Owen Mansel-Chan
0f8f5d2793
Merge branch 'main' into post-release-prep/codeql-cli-2.20.1
2025-01-08 16:28:23 +00:00
Owen Mansel-Chan
5cc34a16d1
Merge pull request #18439 from egregius313/egregius313/go/mad/database-sql/revert-varargs
...
Go: Revert MaD models for `database/sql` to use QL instead
2025-01-08 16:24:04 +00:00
Paolo Tranquilli
53b0a3464d
Merge branch 'main' into redsun82/rust-ast-generator-mustache
2025-01-08 17:09:39 +01:00
Paolo Tranquilli
3bf2416e56
Merge pull request #18313 from github/redsun82/rust-mute-warnings-in-uncompiled-blocks
...
Rust: exclude extraction of code excluded by `cfg`
2025-01-08 17:03:29 +01:00
yoff
21e7a0e828
Merge branch 'main' into shared/locations-in-range-analysis
2025-01-08 16:40:59 +01:00
Ed Minnix
8e4939ee5d
Add tests for Conn
2025-01-08 10:25:57 -05:00
Ed Minnix
a4afff2c3c
Add extra variable for tracking flow
2025-01-08 10:25:55 -05:00
Ed Minnix
e7f99cdfb7
Order DB, NamedStmt, Stmt, Tx in tests
2025-01-08 10:25:54 -05:00
Ed Minnix
4ed0f7fc40
Alphabetical ordering
2025-01-08 10:25:52 -05:00
Ed Minnix
cc54e75235
Remove duplicate stubs
2025-01-08 10:25:51 -05:00
Ed Minnix
67070e0f2a
Change note
2025-01-08 10:25:49 -05:00
Ed Minnix
22a4cd3698
sqlx tests
2025-01-08 10:25:48 -05:00
Ed Minnix
89a68fed7c
Vendor sqlx stubs for test
2025-01-08 10:25:42 -05:00
Ed Minnix
4966ed1280
Add missing models
2025-01-08 10:24:12 -05:00
Ed Minnix
b916a7b5a7
Remove duplicate models
2025-01-08 10:24:10 -05:00
Ed Minnix
05ffffe651
jmoiron/sqlx models
2025-01-08 10:24:06 -05:00
Ed Minnix
bc68e4456a
Fix test results
2025-01-08 10:22:00 -05:00
Edward Minnix III
7a589c4081
Merge pull request #18405 from egregius313/egregius313/go/mad/database/gorm
...
Go: Model sources from the `gorm.io/gorm` package
2025-01-08 10:20:10 -05:00
Edward Minnix III
6ac82d6af2
Merge pull request #18440 from egregius313/egregius313/csharp/blazor/traced-integration-tests
...
C#: Traced-mode integration tests for Blazor
2025-01-08 10:19:12 -05:00
Tom Hvitved
9e5a814f72
Merge pull request #18315 from hvitved/ruby/dataflow-types
...
Ruby: Track types in data flow
2025-01-08 15:26:38 +01:00
Tom Hvitved
868caf948c
Rename {Source,Sink}Node to {Source,Sink}Element
2025-01-08 15:21:43 +01:00
Asger F
10d5d09ad1
JS: Polish taint-tracking section in response to review comment
2025-01-08 14:45:31 +01:00
Tom Hvitved
0dccbb9349
Rust: Add two more AST consistency checks
2025-01-08 14:30:01 +01:00
Tom Hvitved
033cd1778e
Rust: Include index in Format.getArgument
2025-01-08 14:04:48 +01:00
Nora Dimitrijević
b5935fcd2d
Language reference: mention BigInt.bitLength()
2025-01-08 14:01:01 +01:00
yoff
f02995d72b
shared: add qldoc
2025-01-08 13:33:03 +01:00
yoff
aca5a51a78
Merge branch 'main' into shared/add-location-to-typetracking-nodes
2025-01-08 12:47:05 +01:00
Asger F
ecccc7ce8c
Update docs/codeql/codeql-language-guides/migrating-javascript-dataflow-queries.rst
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2025-01-08 12:26:42 +01:00
Asger F
26d85d5ece
Apply suggestions from code review
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2025-01-08 12:26:18 +01:00
Paolo Tranquilli
c7a9889606
Rust: update rust-analyzer
2025-01-08 11:14:08 +01:00
Asger F
b6b93dcead
Merge pull request #18392 from asgerf/jss/deprecate-modules
...
JS: Deprecate some .qll files
2025-01-08 11:10:28 +01:00
Paolo Tranquilli
bca5f4b74c
Merge pull request #18441 from github/redsun82/cargo-upgrade
...
Ruby, Rust: upgrade all cargo dependencies (excluding `rust-analyzer`)
2025-01-08 10:56:58 +01:00
Paolo Tranquilli
d2c7decd02
Rust/Ruby: upgrade all cargo dependencies excluding rust-analyzer
...
The rust-analyzer update will need more work as it seems to break rust
analysis on windows.
This was carried out using `cargo upgrade` from `cargo-edit`:
* getting exclusions options for rust-analyzer with
```bash
cargo upgrade -i --dry-run | grep -o 'ra_ap_\S\+' | sort -u | sed 's/^/--exclude=/' > /tmp/exclude
```
* running
```bash
cargo upgrade -i $(cat /tmp/exclude)
misc/bazel/3rdparty/update_cargo_deps.sh
```
2025-01-08 09:57:11 +01:00
Tom Hvitved
96bf81ad6c
Merge pull request #18333 from hvitved/dataflow/stage1-param-self-prune
...
Data flow: Prune parameter-self flow in stage 1
2025-01-08 09:16:12 +01:00
Asger F
062391334e
JS: Remove notes about changing API in the future
2025-01-08 09:15:13 +01:00
Asger F
df9b95575e
JS: Add deprecation qldoc to Configuration classes
2025-01-08 09:15:12 +01:00
Asger F
e7d267e5d2
JS: Add migration guide and change note
2025-01-08 09:12:38 +01:00
Asger F
36f0d2f63e
JS: Move VarAccessBarrier outside the deprecated Configuration.qll file
2025-01-08 08:56:53 +01:00
Asger F
c47419e66d
JS: Remove an obsolete TODO comment (this has been fixed)
2025-01-08 08:54:41 +01:00
Ed Minnix
819bd3b56f
Remove build-mode: none tests
2025-01-07 22:59:42 -05:00
Ed Minnix
ba8489624d
Change order of test results
2025-01-07 22:57:37 -05:00
Ed Minnix
32fe74dd01
Remove environment-specific path
2025-01-07 22:57:35 -05:00
Ed Minnix
ea5248912d
.NET SDK version
2025-01-07 22:57:34 -05:00
Ed Minnix
144053baea
Fix test results
2025-01-07 22:57:32 -05:00
Ed Minnix
068acfd36a
Fix path segment
2025-01-07 22:57:31 -05:00
Ed Minnix
e9ac32fbd1
Simplify generated file paths
2025-01-07 22:57:29 -05:00
Ed Minnix
9089c9ca16
Remove line blocking tests
2025-01-07 22:57:27 -05:00
Ed Minnix
6b7f2a725e
Make .NET 9 test properly .NET 9
2025-01-07 22:57:26 -05:00
Ed Minnix
b249ee5a01
Basic integration tests
2025-01-07 22:57:23 -05:00
Ed Minnix
e7b0329d5d
Test missing models
2025-01-07 22:08:37 -05:00
Ed Minnix
55c6bea08b
Add missing models
2025-01-07 22:08:21 -05:00
Ed Minnix
4e5d2e27b1
user.go for example type
2025-01-07 22:07:58 -05:00
Ed Minnix
c086945a9e
Fix typo
2025-01-07 21:14:25 -05:00
Ed Minnix
6a862f2f80
Add Rows::Next back
2025-01-07 21:10:48 -05:00
Ed Minnix
ca1e9d7c75
Revert "database/sql summary models for Row types"
...
This reverts commit 80ad349a48 .
2025-01-07 21:08:43 -05:00
github-actions[bot]
fb20f6ca63
Post-release preparation for codeql-cli-2.20.1
2025-01-07 22:07:40 +00:00
Paolo Tranquilli
b390fac105
Rust: make ast-generator use mustache templates
...
This simplifies the code and decouples the code template from the data
that is fed into it.
2025-01-07 18:05:59 +01:00
Owen Mansel-Chan
5959a736ac
Only recommend GCM, and tighten wording
2025-01-07 16:55:10 +00:00
Jeroen Ketema
0258ce70a4
Merge pull request #18362 from github/jketema/template-parameters-4
...
C++: Support concept templates
2025-01-07 16:42:56 +01:00
Joe Farebrother
35961e454b
Fix tests to check for the correct type
2025-01-07 15:23:07 +00:00
Joe Farebrother
8b174ea07c
Apply suggestions from code review - update doc comments
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2025-01-07 15:21:19 +00:00
Ian Lynagh
b18230af23
Merge pull request #18409 from igfoo/igfoo/supJ
...
Java: Clarify supported language features
2025-01-07 15:07:15 +00:00
Chris Smowton
1761721ef6
Merge pull request #18415 from smowton/smowton/feature/exclude-writereplace-from-serializable-checks
...
Java: exclude `writeReplace`-defining classes from `Serializable` check
2025-01-07 15:55:47 +01:00
Tom Hvitved
aa024010b1
Address review comment
2025-01-07 14:23:54 +01:00
Jeroen Ketema
b6f412bbad
C++: Add change notes
2025-01-07 14:21:45 +01:00
Jeroen Ketema
06f6bac169
C++: Silence alerts coming from CMake test compilation files
2025-01-07 14:12:55 +01:00
Jeroen Ketema
ede801ed88
C++: Add CMake test compilation test
2025-01-07 14:12:11 +01:00
Anders Schack-Mulligen
148b78a5f8
Merge pull request #18423 from aschackmull/dataflow/del-deadcode
...
Dataflow: Remove some dead code.
2025-01-07 14:08:37 +01:00
Jeroen Ketema
91f9fb24d9
Merge pull request #18424 from jketema/rm-change
...
Remove change note that somehow occurs in the CodeQL root directory
2025-01-07 13:52:16 +01:00
Ian Lynagh
8652f611b7
Update docs/codeql/reusables/supported-versions-compilers.rst
...
Co-authored-by: Edward Minnix III <egregius313@github.com >
2025-01-07 12:51:21 +00:00
Ed Minnix
d28e03cda5
Change note
2025-01-07 07:34:27 -05:00
Ed Minnix
c7be77c1af
Add gorm tests
2025-01-07 07:34:25 -05:00
Ed Minnix
f38008e73d
Add test vendoring
2025-01-07 07:34:23 -05:00
Ed Minnix
20d1ae1396
Fix Association model
2025-01-07 07:34:22 -05:00
Ed Minnix
796a81a0ba
gorm models
2025-01-07 07:34:20 -05:00
Jeroen Ketema
4b7b2a2580
Remove change note that somehow occurs in the CodeQL root directory
2025-01-07 13:32:25 +01:00
Edward Minnix III
651052ba7a
Merge pull request #18402 from egregius313/egregius313/go/mad/database/database-sql
...
Go: Add `database` source models for the `database/sql` and `database/sql/driver` packages
2025-01-07 07:31:06 -05:00
Michael B. Gale
96797b4570
Merge pull request #18422 from github/dependabot/go_modules/go/extractor/extractor-dependencies-a7e3f36068
...
Bump golang.org/x/tools from 0.28.0 to 0.29.0 in /go/extractor in the extractor-dependencies group
2025-01-07 12:11:27 +00:00
Paolo Tranquilli
b4811906ea
Rust: address review
2025-01-07 13:05:19 +01:00
Paolo Tranquilli
ce2877da5d
Merge branch 'main' into redsun82/rust-mute-warnings-in-uncompiled-blocks
2025-01-07 13:00:04 +01:00
Anders Schack-Mulligen
eea85d8f82
Dataflow: Remove some dead code.
2025-01-07 12:56:26 +01:00
Ed Minnix
b3d8c6b2e8
Add error handling to test
2025-01-07 06:46:54 -05:00
Ed Minnix
60cf1eccae
Update test results
2025-01-07 06:41:39 -05:00
Ed Minnix
0f06ddcff0
Change note
2025-01-07 06:41:37 -05:00
Ed Minnix
128c02b488
database/sql/driver tests
2025-01-07 06:41:36 -05:00
Ed Minnix
3e65c8de36
database/sql tests
2025-01-07 06:41:34 -05:00
Ed Minnix
e9fdc8a34c
database source tests
2025-01-07 06:41:33 -05:00
Ed Minnix
80ad349a48
database/sql summary models for Row types
2025-01-07 06:41:31 -05:00
Ed Minnix
8093d57781
database/sql and database/sql/driver source models
2025-01-07 06:41:30 -05:00
Edward Minnix III
27852ddd05
Merge pull request #18398 from egregius313/egregius313/go/add-postprocessing-to-storedxss-qlref
...
Go: Add post-processing to StoredXss.qlref test
2025-01-07 06:36:05 -05:00
Jeroen Ketema
0f5b70a802
C++: Add upgrade and downgrade scripts
2025-01-07 11:30:22 +01:00
Jeroen Ketema
2d7256862a
C++: Update dbscheme stats file
2025-01-07 11:28:32 +01:00
Jeroen Ketema
3812ee463d
C++: Add change note
2025-01-07 11:26:20 +01:00
Jeroen Ketema
a2d66ee155
C++: Extend the dbscheme with concept templates
2025-01-07 11:26:16 +01:00
Asger F
abea019751
Merge pull request #18412 from asgerf/jss/perf-fixes
...
JS: Fix a few perf issues
2025-01-07 11:20:57 +01:00
Asger F
f17cc5af15
JS: Move all hidden node definitions into DataFlowPrivate
2025-01-07 10:44:09 +01:00
Asger F
47cc3c09f5
JS: Deprecate an import
2025-01-07 10:43:40 +01:00
Tamás Vajk
e67f4be699
Merge pull request #18407 from tamasvajk/fix/razor-relative-path
...
C#: Change source generated razor file paths to be relative to csproj
2025-01-07 08:35:56 +01:00
dependabot[bot]
d7eaf9012f
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.28.0 to 0.29.0
- [Release notes](https://github.com/golang/tools/releases )
- [Commits](https://github.com/golang/tools/compare/v0.28.0...v0.29.0 )
---
updated-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-01-07 03:20:27 +00:00
Chris Smowton
dd0012edcb
ASCII
2025-01-06 23:28:02 +01:00
Chris Smowton
03c6529961
Spelling
2025-01-06 22:46:22 +01:00
Mathias Vorreiter Pedersen
7a9d341cb7
Merge pull request #18416 from MathiasVP/more-robust-param-name-matching-arrays
...
C++: Also resolve typedefs nested inside `ArrayType`s
2025-01-06 18:34:29 +00:00
Mathias Vorreiter Pedersen
d935e9fb0f
C++: Also resolve typedefs nested inside arrays.
2025-01-06 14:50:37 +00:00
Mathias Vorreiter Pedersen
fdc305298d
C++: Add testcase with missing MaD support for resolving typedefs inside arrays.
2025-01-06 14:46:55 +00:00
Chris Smowton
d0eab598b1
Change note
2025-01-06 14:44:12 +00:00
Chris Smowton
5c2df36786
Exclude classes with a writeReplace method from serializability checks
2025-01-06 14:42:44 +00:00
Geoffrey White
9d178ab8d6
Rust: Fix the failing integration tests.
2025-01-06 14:05:02 +00:00
Geoffrey White
f93aac07c2
Rust: Correct / clarify some QLDoc.
2025-01-06 13:50:41 +00:00
Asger F
0cdda87161
JS: Restrict AP length in prototype-polluting function
2025-01-06 14:33:41 +01:00
Asger F
7ccb476b1b
JS: Restrict AP length in ExceptionXss
2025-01-06 14:28:58 +01:00
Asger F
23d7420cec
JS: Hide default exceptional return node
2025-01-06 14:27:20 +01:00
Geoffrey White
e1e980c2e8
Rust: Add sensitive data to summary queries.
2025-01-06 13:26:27 +00:00
Geoffrey White
821eb4f3e6
Rust: Add sensitive data library.
2025-01-06 13:26:26 +00:00
Geoffrey White
c77bf2b4eb
Rust: Add a test for sensitive data.
2025-01-06 13:26:25 +00:00
Ian Lynagh
c5ebc19a28
Java: Clarify supported langauge features
2025-01-06 12:31:46 +00:00
Tom Hvitved
1b31c90d26
Implement FlowSummaryImpl stubs
2025-01-06 13:26:51 +01:00
Tom Hvitved
8f6ae6274d
Rust: Add support for MaD sources and sinks with access paths
2025-01-06 13:26:49 +01:00
Tom Hvitved
37212cc43f
Ruby: Add change note
2025-01-06 13:26:13 +01:00
Tom Hvitved
978a816f11
Ruby: Track types in data flow
2025-01-06 13:26:10 +01:00
Tom Hvitved
06ba814929
Data flow: Prune parameter-self flow in stage 1
2025-01-06 13:23:03 +01:00
Asger F
e2af19b946
JS: Restrict "get" step to Map objects
2025-01-06 13:17:32 +01:00
Tamas Vajk
31dbadcbeb
Add change note
2025-01-06 11:41:11 +01:00
Tamas Vajk
c9fab0b071
C#: Change source generated razor file paths to be relative to csproj
2025-01-06 11:10:28 +01:00
Asger F
4c9f406e34
JS: Exclude some sinks in UnvalidatedDynamicMethodCall
2025-01-06 10:32:11 +01:00
Paolo Tranquilli
10d8aa454b
Merge branch 'main' into redsun82/rust-mute-warnings-in-uncompiled-blocks
2025-01-06 10:01:57 +01:00
Ed Minnix
c02430607a
Add post-processing to StoredXss.qlref test
2025-01-03 13:26:29 -05:00
Ian Lynagh
78b277b46f
Java/Kotlin: Add a changenote for CODEQL_PATH_TRANSFORMER support.
2025-01-03 16:02:36 +00:00
Ian Lynagh
dedb0cb11f
Kotlin: Support CODEQL_PATH_TRANSFORMER
2025-01-03 16:02:36 +00:00
Michael Nebel
caaf29115c
C#: Add change note.
2025-01-03 16:27:03 +01:00
Michael Nebel
ff32a382b0
C#: Update test expected output.
2025-01-03 16:27:02 +01:00
Michael Nebel
cac1e04de8
C#: Improve unification logic to handle ref structs.
2025-01-03 16:27:00 +01:00
Michael Nebel
5ddc37867e
C#: Update test expected output.
2025-01-03 16:26:58 +01:00
Michael Nebel
c439beb4b4
C#: Introduce a class for ref structs.
2025-01-03 16:26:57 +01:00
Michael Nebel
33939a8041
C#: Update test expected output.
2025-01-03 15:36:08 +01:00
Michael Nebel
ef5ae3f1ae
C#: Add some unification and viable callable test cases.
2025-01-03 15:36:07 +01:00
Michael Nebel
b9fce5eb9d
C#: Update boxing conversion expected output.
2025-01-03 15:36:06 +01:00
Michael Nebel
ef9f09ebfc
C#: Do not consider ref struct as being convertible to object, dynamic and valuetype.
2025-01-03 15:36:04 +01:00
Michael Nebel
9a2edc3d5c
C#: Add ref struct boxing example (false positive).
2025-01-03 15:36:02 +01:00
Michael Nebel
41dc4a5503
C#: Add extractor support for the allows ref struct general type parameter constraint.
2025-01-03 15:36:00 +01:00
Michael Nebel
d9158c8cd5
Fixup of second commit.
2025-01-03 15:35:59 +01:00
Michael Nebel
958d8f1f01
C#: Add extractor support for the notnull general type parameter constraint.
2025-01-03 15:35:49 +01:00
Michael Nebel
c0974f364e
C#: General type constraints tests.
2025-01-03 15:12:35 +01:00
Asger F
25f5ecba25
JS: Deprecate the Configuration.qll file
2025-01-03 11:41:41 +01:00
Asger F
0339bd0f3e
JS: Deprecate forward/backward exploration modules
2025-01-03 11:41:39 +01:00
Asger F
7e4fbe2f14
Merge pull request #18326 from asgerf/js/shared-dataflow-bump
...
JS: Merge 'main' into shared dataflow branch
2025-01-03 11:24:37 +01:00
Asger F
942ba189f7
JS: Minor test output change in nodes/edges
...
I suspect this is due to some fixes in the DeduplicatePathGraph module
2024-12-19 15:25:49 +01:00
Asger F
f8dc7eb25b
JS: Update output from tests that changed on main
2024-12-19 15:25:47 +01:00
Asger F
4a6030c592
JS: Update expected with some absent result sets
2024-12-19 15:25:46 +01:00
Asger F
cd6ebb103e
JS: Make test not assume implicit through for maps
2024-12-19 15:25:45 +01:00
Asger F
dc2f39c399
JS: Add model of Map#groupBy
2024-12-19 15:25:43 +01:00
Asger F
de5e6ddeed
JS: Update with changes in TaintTracking test
2024-12-19 15:25:42 +01:00
Asger F
c204527c08
JS: Update Array test output (new tests added on main)
2024-12-19 15:25:41 +01:00
Asger F
33e8bd5032
JS: Update testUtilities import
2024-12-19 15:25:39 +01:00
Asger F
3acd4814de
Merge branch 'main' into js/shared-dataflow-merge-main
2024-12-19 10:14:38 +01:00
Paolo Tranquilli
218bc8069b
Rust: exclude extraction of code excluded by cfg
2024-12-18 13:34:40 +01:00
Asger F
729efff6a4
Merge pull request #18265 from asgerf/jss/flow-labels2
...
JS: Migrate all queries to proper flow states and deprecate FlowLabel
2024-12-17 14:37:11 +01:00
Asger F
e5ae7e0231
JS: Fix bad join in isOptionallySanitizedEdgeInternal
...
This was previously called from isBarrier(node, state) but without restricting the state. The call was therefore moved to isBarrier(node), but this caused some optimisation changes resulting in a bad join.
2024-12-16 15:35:54 +01:00
Asger F
947b785d47
JS: Remove reference to deprecated step relation that's empty anyway
2024-12-16 15:35:53 +01:00
Asger F
0b2914ff13
JS: A few more deprecation updates
2024-12-16 15:35:50 +01:00
Asger F
db00dad033
JS: Avoid deprecation warnings in some tests
2024-12-16 15:35:49 +01:00
Asger F
cf6d166d29
JS: Also update tutorial code
2024-12-16 15:35:47 +01:00
Asger F
079294e55f
JS: Mass rename to node1,state1,node2,state2 naming convention
2024-12-16 15:35:46 +01:00
Asger F
ac6da6c2b1
JS: Add some missing qldoc
2024-12-16 15:35:44 +01:00
Asger F
d993c888b1
JS: Deprecate the FlowLabel class
2024-12-16 15:35:43 +01:00
Asger F
69b361ae70
JS: Migrate a test to use flow state
2024-12-16 15:35:42 +01:00
Asger F
73af3f3536
JS: Migrate PrototypePollutingFunction
2024-12-16 15:35:40 +01:00
Asger F
ebe596f227
JS: Migrate CorsPermissiveConfiguration
2024-12-16 15:35:39 +01:00
Asger F
d83ddfabaa
JS: Migrate an experimental CodeInjection query
2024-12-16 15:35:38 +01:00
Asger F
a398599bfb
JS: Rename an experimental query
...
Having the same name as a standard query is just confusing
2024-12-16 15:35:36 +01:00
Asger F
c951a29e2a
JS: Migrate UnvalidatedDynamicMethodCall
2024-12-16 15:35:34 +01:00
Asger F
820f81fc10
JS: Migrate UnsafeDynamicMethodAccess
2024-12-13 11:32:25 +01:00
Asger F
a9e89ed8e3
JS: Migrate PrototypePollutingAssignment
2024-12-13 11:23:31 +01:00
Asger F
bcc1669f4c
JS: Migrate InsecureDownload
2024-12-13 11:10:14 +01:00
Asger F
4e25036cdc
JS: Follow naming convention in InsecureModuleFlow module
2024-12-13 11:09:59 +01:00
Asger F
d381ab1260
JS: Migrate IncompleteHtmlAttributeSanitization
2024-12-13 10:55:00 +01:00
Asger F
2112ecc44d
JS: Migrate HardcodedDataInterpretedAsCode
2024-12-13 10:48:43 +01:00
Asger F
dc3d7a0159
Update ExceptionXssCustomizations.qll
2024-12-13 10:47:04 +01:00
Asger F
42a7208704
JS: Migrate ExceptionXss
2024-12-13 10:29:32 +01:00
Asger F
d9a43dbd85
JS: Migrate UnsafeHtmlConstruction
2024-12-13 10:08:17 +01:00
Asger F
8907252814
JS: Migrate TemplateObjectInjection
2024-12-13 10:08:16 +01:00
Asger F
3573f0b065
JS: Migrate SecondOrderCommandInjection
2024-12-13 10:08:15 +01:00
Asger F
355f7cdd54
JS: Migrate PrototypePollutingMergeCall
2024-12-13 10:08:13 +01:00
Asger F
c38e3a23eb
JS: Migrate NoSqlInjection
2024-12-13 10:08:12 +01:00
Asger F
8e8de5cf23
JS: Migrate LoopBoundInjection
2024-12-13 10:08:11 +01:00
Asger F
daddff0dc6
JS: Avoid deprecation warning in XssThroughDom
2024-12-13 10:08:10 +01:00
Asger F
15d999a9dc
JS: Migrate DeepObjectResourceExhaustion
2024-12-13 10:08:09 +01:00
Asger F
5f42a715f6
JS: Migrate TaintedObject to a CommonFlowState
2024-12-13 10:08:08 +01:00
Asger F
14ca1c134b
JS: Update TaintedUrlSuffix test
2024-12-13 10:08:07 +01:00
Asger F
12289d4c39
JS: Migrate DomBasedXssQuery to FlowState
2024-12-13 10:08:06 +01:00
Asger F
114d4a141a
JS: Move FlowState definition into CommonFlowState
...
Needed for migrating the XSS query
2024-12-13 10:08:05 +01:00
Asger F
3cf14d8506
JS: Migrate ClientSideUrlRedirect to flow state
2024-12-13 10:08:03 +01:00
Asger F
cca980298f
JS: Use flow state in barrier and step relations
2024-12-13 10:08:02 +01:00
Asger F
a8fdd759f9
JS: Add FlowState class to TaintedUrlSuffix
2024-12-13 10:08:01 +01:00
Joe Farebrother
dcbcf7e2bd
Add additional tests demonstrating false negative flow
2024-12-12 15:55:36 +00:00
Asger F
a53d294d91
Merge pull request #18203 from asgerf/jss/document-url
...
JS: Use TaintedUrlSuffix in ClientSideUrlRedirect
2024-12-12 15:47:51 +01:00
Asger F
97b78e752b
JS: Added more qldoc
2024-12-12 13:10:52 +01:00
Joe Farebrother
e6794a9af1
Add change note
2024-12-11 14:27:57 +00:00
Joe Farebrother
2019ddfa7f
Qldoc improvements + add a few extra tests
2024-12-11 12:25:40 +00:00
Asger F
f8abc5afee
Merge pull request #18204 from asgerf/jss/flow-labels
...
JS: Migrate away from FlowLabel class in TaintedPath
2024-12-11 13:20:48 +01:00
Joe Farebrother
5c8ef28d12
Add missing qldoc and revert accidentilly commited threat model change
2024-12-11 12:04:16 +00:00
Joe Farebrother
bcb08bbc7b
Update test output
2024-12-10 19:24:05 +00:00
Joe Farebrother
29a90235e8
Improve tests and use API graphs
2024-12-10 19:09:45 +00:00
Joe Farebrother
d2ed92d6d0
Added tests
2024-12-10 19:09:20 +00:00
Joe Farebrother
d2b0d7a743
Add missing qldoc
2024-12-10 19:07:53 +00:00
Joe Farebrother
89167da177
Model flow steps for lxml
2024-12-10 19:01:14 +00:00
Asger F
77f8e8ef4e
JS: Use FlowState::fromFlowLabel instead of Label::toFlowState
...
This works better for other queries where we don't already have a module named Label
2024-12-10 11:57:18 +01:00
Asger F
38c9023dd9
JS: FlowLabel -> FlowState in ZipSlip
2024-12-10 11:16:07 +01:00
Asger F
0cd01cb96f
JS: Use node1,state1,node2,state2 naming convention in tainted path
2024-12-10 11:16:05 +01:00
Asger F
0802107d9a
JS: Flow label -> flow state in TaintedPath
2024-12-10 11:16:04 +01:00
Asger F
66eb458134
JS: Handle match/matchAll and unknown regexps
2024-12-09 15:38:36 +01:00
Asger F
6e7c5a3707
JS: Slightly more general getRoot()
2024-12-09 15:05:45 +01:00
Asger F
be617cee4a
JS: More precise handling of .exec()
2024-12-09 15:03:51 +01:00
Asger F
703cad9e95
Expand test case
2024-12-09 15:00:56 +01:00
Asger F
2a2a4d2b67
JS: Add TaintedUrlSuffixCustomizations
...
Importing TaintedUrlSuffix.qll causes the flow label to materialised in unrelated queries, so:
- Renames TaintedUrlSuffix.qll to TaintedUrlSuffixCustomizations.qll
- Make the flow label class abstract
- Adds a new TaintedUrlSuffix.qll that re-exports the above file and also materialises the flow label
- Import the *Customizations.qll file from contexts where we don't want to materialise the flow label
2024-12-09 14:59:29 +01:00
Asger F
d1694013ff
JS: Update test showing accidental flow label materialisation
...
This wouldn't be an issue once FlowLabel is completely deprecated but it will cause perf issues in the interim, so this is fixed in the next commit
2024-12-09 14:59:28 +01:00
Asger F
8fe39bdd38
JS: Update query's own output after test changes
2024-12-09 14:59:27 +01:00
Asger F
71a6a47713
JS: Fix issue with new RegExp().exec()
2024-12-09 14:59:25 +01:00
Asger F
f6d0835c64
JS: Show problem with new RegExp().exec()
2024-12-09 14:59:24 +01:00
Asger F
ef833de60e
JS: Replace DocumentUrl with TaintedUrlSuffix
2024-12-09 14:59:23 +01:00
Asger F
e2b2d1c9ab
JS: Allow arbitrary comments in ConsistencyChecking
...
Because line comments cannot be used inside JSX elements
2024-12-09 14:59:21 +01:00
Asger F
712c69ebc8
JS: Fixup the test expectations
2024-12-09 14:59:19 +01:00
Asger F
f8ff504f5c
JS: Add ClientSideUrlRedirect test consistency
...
Update Consistency.ql again
2024-12-09 14:59:18 +01:00
Asger F
b8d652c5b2
Merge pull request #18132 from asgerf/jss/deprecation
...
JS: Deprecations and related refactorings
2024-12-06 13:23:26 +01:00
Owen Mansel-Chan
5351f5b69d
Update wording of alert (accepting review suggestion)
...
Co-authored-by: Chris Smowton <smowton@github.com >
2024-12-04 10:31:14 +00:00
Owen Mansel-Chan
95116eec51
Update recommendations
2024-12-04 00:42:23 +00:00
Asger F
3f0d0e3a05
JS: Deprecate DataFlow::BarrierGuardNode
2024-12-03 14:30:50 +01:00
Asger F
b3461989b1
JS: Remove use of SanitizerGuardNode in experimental SSRF query
...
Makes a quick effort attempt to restore the original behaviour, though
it is not exactly the same due to lack of recursion.
2024-12-03 14:30:36 +01:00
Asger F
0d79c7141c
JS: Update two more uses of SanitizerGuardNode
2024-12-03 14:30:35 +01:00
Asger F
62c17d3f4e
JS: Update SanitizerGuardNode use in BasicTaintTracking test
2024-12-03 14:30:34 +01:00
Asger F
f620191da4
JS: Deprecate SanitizerGuardNode
2024-12-03 14:30:33 +01:00
Asger F
2ae7386775
JS: Also apply new BarrierGuardLegacy pattern in Xss.qll
2024-12-03 14:30:32 +01:00
Asger F
2ef652da2c
JS: Add more deprecation annotations in tests
2024-12-03 14:30:31 +01:00
Asger F
21494fbdff
JS: Refactor BarrierGuardLegacy pattern to not depend on SanitizerGuardNode
...
Previously our barrier guard classes were direct descendents of SanitizerGuardNode which made it hard to deprecate that class.
Now our barrier guards are not descending from any shared class. Instead they are contributed to SanitizerGuardNode via a private helper class we can remove in the future.
2024-12-03 14:30:29 +01:00
Asger F
a574ff1669
JS: Remove use of MakeLegacyBarrierGuard in experimental SSRF
2024-12-03 14:30:28 +01:00
Asger F
08d25c122d
JS: Deprecate more uses of ConsistencyConfiguration
2024-12-03 14:30:27 +01:00
Asger F
75ab4856b8
Remove unsupported features from PoI
2024-12-03 14:30:25 +01:00
Asger F
e6680dec8f
JS: Avoid use of LabeledSanitizerGuardNode in TaintedObject
...
Drive-by bugfix: Rename sanitizes -> blocksExpr.
This fixes a bug that caused the sanitizer guard not to work in df2.
The test output reflects the fact that the barrier guard works now.
2024-12-03 14:30:24 +01:00
Asger F
0ce1fe767d
JS: Deprecate ConsistencyChecking to avoid deprecation warnings
2024-12-03 14:30:23 +01:00
Asger F
04a3a6707f
JS: Update a reference to AdditionalSanitizerGuardNode
...
Unlike most other references to this class, we're not subclassing it here, we're
just trying to reuse some standard barrier guards but with a different flow state.
2024-12-03 14:30:22 +01:00
Asger F
834d35bc42
JS: Port experimental DecompressionBombs to ConfigSig
2024-12-03 14:30:21 +01:00
Asger F
871bc3b84a
JS: Port experimental CorsPermissiveConfiguration to ConfigSig
...
The tests show a new (source, sink) pair for an already-flagged sink.
Not sure why it was not flagged originally since the data flow path seems valid, given the steps provided by our models.
2024-12-03 14:30:20 +01:00
Asger F
f5a6485ef2
JS: Port experimental decodeJwtWithoutVerificationLocalSource
2024-12-03 14:30:19 +01:00
Asger F
72e522631d
JS: Port experimental jwtDecodeWithoutVerification to ConfigSig
2024-12-03 14:30:18 +01:00
Asger F
7e162f5451
JS: Port experimental EnvValueInjection to ConfigSig
2024-12-03 14:30:17 +01:00
Asger F
4f839070a0
JS: Port experimental EnvValueAndKeyInjection to ConfigSig
2024-12-03 14:30:16 +01:00
Asger F
8887ca1722
JS: Port an experimental CodeInjection variant to ConfigSig
2024-12-03 14:30:15 +01:00
Asger F
1832e93766
JS: Port FormParsers test to ConfigSig
2024-12-03 14:30:14 +01:00
Asger F
4d7401a074
JS: Deprecate tests for deprecated APIs
...
Mainly adds 'deprecated' in front of a bunch of tests for deprecated APIs.
2024-12-03 14:30:12 +01:00
Asger F
3548544970
JS: Avoid some uses of deprecated guard classes in tests
2024-12-03 14:30:11 +01:00
Asger F
a568d8c086
JS: Port threat-model test to ConfigSig
2024-12-03 14:30:10 +01:00
Asger F
f758b67d30
JS: Openly recommend SummarizedCallable
2024-12-03 14:30:09 +01:00
Asger F
249104b8ae
JS: Update comments referring to old Configuration style
...
Also avoid the term "analysis-specific" because it's not a term we use anywhere else.
2024-12-03 14:30:08 +01:00
Asger F
13ee597848
JS: Add some proper documentation to SummarizedCallable
2024-12-03 14:30:07 +01:00
Asger F
988fa9c0ef
JS: Deprecate AdditionalSanitizerGuardNode
...
We're deprecating the class through an alias, but it is still the base class for a non-deprecated class, for backwards compatibility. For this reason we're also deprecating all of its member predicates so we can remove those in the future.
2024-12-03 14:30:06 +01:00
Asger F
0b1e859e70
JS: Remove uses of AdditionalSanitizerGuardNode
2024-12-03 14:30:05 +01:00
Asger F
c2abb0fbd0
JS: Remove reference to AdditionalSanitizerGuard from CachedStages
2024-12-03 14:30:04 +01:00
Asger F
82682d9a62
JS: Remove a non-deprecated reference to SanitizerGuardNode
2024-12-03 14:30:03 +01:00
Asger F
bc7753de29
JS: Remove non-deprecated reference to AdditionalBarrierGuardNode
2024-12-03 14:30:02 +01:00
Asger F
0cd2e3f9eb
JS: Deprecate old data flow library, except some guard-related nodes
2024-12-03 14:30:01 +01:00
Asger F
071189a9e9
Merge pull request #18175 from asgerf/jss/documentation
...
JS: Update data flow documentation and tutorials for JavaScript
2024-12-03 14:23:29 +01:00
Asger F
e1aff15f29
Merge pull request #18125 from asgerf/jss/summary-type-tracker
...
JS: Derive type-tracking steps from flow summaries
2024-12-03 12:40:56 +01:00
Asger F
27e61a1f3d
JS: Also update cheat sheet
2024-12-03 12:00:30 +01:00
Asger F
89463d73f5
JS: Remove mention of isAdditionalTaintStep
2024-12-03 11:51:46 +01:00
Asger F
935e1c065a
Update docs/codeql/codeql-language-guides/using-flow-labels-for-precise-data-flow-analysis.rst
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2024-12-03 11:49:45 +01:00
Asger F
89849fae87
Update docs/codeql/codeql-language-guides/using-flow-labels-for-precise-data-flow-analysis.rst
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2024-12-03 11:49:34 +01:00
Asger F
5e27257405
Update docs/codeql/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript.rst
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2024-12-03 11:49:22 +01:00
Asger F
054558d7b5
JS: Include content properties in type-tracker properties
...
Reminder: we have two PropertyName classes because the one in Contents.qll can't depend on DataFlow::Node.
2024-12-03 09:58:54 +01:00
Asger F
8bca66493f
JS: Add test showing lack of inclusion in PropertyName
2024-12-03 09:57:02 +01:00
Asger F
404b0f24f2
JS: Fix another stray reference to BarrierGuardNode/SanitizerGuardNode
2024-12-02 13:29:52 +01:00
Asger F
422c089a39
JS: Remove redundant base class in TruthinessCheck
2024-12-02 13:26:37 +01:00
Asger F
628f60d2e3
JS: Update flow label tutorial
2024-12-02 10:34:02 +01:00
Asger F
2db89c1b02
JS: Update query17 from intro tutorial
2024-12-02 10:04:09 +01:00
Asger F
2722c45737
JS: Update global data flow tutorial .rst file
2024-12-02 10:04:08 +01:00
Asger F
103a6ea8a6
JS: Port tutorial query5
2024-12-02 10:04:07 +01:00
Asger F
02c5e49de8
JS: Port tutorial query4
2024-12-02 10:04:05 +01:00
Asger F
1f6335f9ba
JS: Port tutorial query3
2024-12-02 10:04:04 +01:00
Asger F
3319870d00
JS: Port tutorial query2
2024-12-02 10:04:02 +01:00
Asger F
32f020ee6f
JS: Port tutorial query1
2024-12-02 10:04:00 +01:00
Owen Mansel-Chan
5c99c8cc37
Improve suggestion for ECB
2024-11-29 14:05:07 +00:00
Asger F
cab8a40d00
JS: Fix accidental recursion
2024-11-29 14:23:57 +01:00
Asger F
9c6b6981e2
JS: Add test to restrict dependencies
2024-11-29 14:23:56 +01:00
Asger F
2f0c80a98b
JS: Include summary steps in type tracking
2024-11-29 14:23:55 +01:00
Asger F
440cbb7f0a
JS: Add inline-expectation test for type tracking
2024-11-29 14:23:54 +01:00
Asger F
6349903110
JS: Move FlowSummary/Summaries.qll into testUtilities
2024-11-29 14:23:52 +01:00
Asger F
e34064e3b5
JS: Initial instantiation of sumamry type tracking
...
Instantiates the library without using it yet.
2024-11-29 14:23:50 +01:00
Asger F
df12f255ac
JS: Rename propagatesFlowExt -> propagatesFlow
2024-11-29 14:23:49 +01:00
Owen Mansel-Chan
95d26d96d2
Add change note
2024-11-29 11:54:30 +00:00
Owen Mansel-Chan
09240e46f2
Refactor: use concat instead of hand-written version
...
This changes the order of the algorithms in the regex, but I don't think
that makes any difference.
2024-11-29 11:54:29 +00:00
Owen Mansel-Chan
e6409e159f
Give reason why crypto algorithm is insecure
2024-11-29 11:54:27 +00:00
Asger F
66d6bda716
Merge pull request #18044 from asgerf/js/shared-dataflow-bump
...
JS: Merge 'main' and implement 'speculativeTaintStep'
2024-11-27 15:43:27 +01:00
Asger F
805fd0b46e
JS: Refine speculative step definition
2024-11-26 15:56:56 +01:00
Asger F
8818fcc207
JS: Benign test output changes
2024-11-26 15:47:13 +01:00
Asger F
c94a01e6b6
JS: Remove reference to argsParseStep
...
This was removed as part of the PR that introduced threat models.
2024-11-26 15:36:47 +01:00
Asger F
bf62582f53
JS: Implement 'speculativeTaintStep'
...
It is a mandatory part of the interface now; just providing a bare-bones implementation for rather than 'none()'
2024-11-26 15:36:46 +01:00
Asger F
82d61e4194
Merge branch 'js/shared-dataflow-branch' into js/shared-dataflow-merge-main
2024-11-26 15:36:16 +01:00
Asger F
c2e9dca1de
Merge pull request #18043 from asgerf/jss/jump-and-test-exclusion
...
JS: Fix jump steps generated by IIFEs and exception flow
2024-11-26 14:33:42 +01:00
Asger F
f073f3b791
JS: Rename file to foo.test.js
2024-11-26 13:44:00 +01:00
Asger F
65da9b41b5
JS: Add cross-file test in InsecureRandom
2024-11-26 13:43:24 +01:00
Asger F
b4bd8e701c
JS: Add test for file classification change
2024-11-26 12:33:39 +01:00
Asger F
930a7b6e28
JS: Update output changes to nodes/edges/subpaths
2024-11-21 13:33:39 +01:00
Asger F
7a77432024
JS: Update lost result in insecure-download
...
The VariableCapture library consumes one component of the access path limit, which means we lose this result
2024-11-21 13:33:10 +01:00
Asger F
1ac7591faf
JS: Update missed flow in capture-flow.js
...
We previously caught this flow because of a heuristic in capture flow. We'll have to fix it properly later.
2024-11-21 12:57:34 +01:00
Asger F
9dad2d62d7
JS: Update DataFlowConsistency
2024-11-21 12:54:11 +01:00
Asger F
ce00bd2cc9
JS: More docs
2024-11-21 11:06:43 +01:00
Asger F
4e62a512c5
JS: Only apply exception propagator when no other summary applies
...
Previously a few Promise-related methods were special-cased, which is no longer needed.
2024-11-21 11:01:05 +01:00
Asger F
84820adf3c
Add test for exception flow out of finally()
2024-11-21 11:01:03 +01:00
Asger F
948d21ca07
JS: Propagate exceptions from summarized callables by default
2024-11-21 10:24:31 +01:00
Asger F
dcdb2e5133
JS: Fix callback check so it works without parameters
2024-11-21 10:24:29 +01:00
Asger F
b7dd455aff
JS: Add test case
2024-11-21 09:21:36 +01:00
Asger F
d52bc971b8
Merge branch 'main' into js/shared-dataflow-merge-main
2024-11-20 14:05:03 +01:00
Asger F
d1c9e47d23
JS: More aggressive test file classification
2024-11-19 13:23:32 +01:00
Asger F
01669908f2
JS: Block InsecureRandomness flow into test files
2024-11-19 13:23:31 +01:00
Asger F
80a5a5909e
JS: Use getUnderlyingValue() a few places in VariableCapture
2024-11-19 13:23:29 +01:00
Asger F
d2daec4c66
JS: Add tests explaining why the IIFE in f2 didn't work
2024-11-19 13:23:24 +01:00
Asger F
023dcce400
JS: Disable variable capture heuristic
...
Bailing out can be more expensive as the resulting jump steps themselves
cause perf issues. The limit of 100 variables per scope has also been
added in the interim, which handles the cases that this needed to cover.
2024-11-18 13:44:10 +01:00
Asger F
37676f41aa
JS: Remove jump steps from IIFE steps
2024-11-18 13:38:34 +01:00
Asger F
7f2eae0966
JS: Add test case for false flow through IIFEs
...
We generate local flow steps into and out of IIFEs, but these come jump steps automatically, resulting in FPs.
2024-11-18 13:34:35 +01:00
Asger F
7acc5689cf
JS: Port exception steps to a universal summary
2024-11-18 13:27:58 +01:00
Asger F
5ed362f7d6
JS: Add exception test case
2024-11-18 13:23:09 +01:00
Asger F
33b7ba41ca
Merge pull request #17535 from asgerf/jss/use-use-flow
...
JS: Follow use-use flow after a post-update
2024-11-18 12:48:58 +01:00
Rasmus Lerchedahl Petersen
065f3d1d7a
cpp: locations in range analysis
2024-11-15 14:10:51 +01:00
Rasmus Lerchedahl Petersen
cd5509a0f9
Java: locations for range analysis
2024-11-15 13:11:25 +01:00
Asger F
80ee372ddf
JS: Replace an unused value with _
2024-11-12 11:24:17 +01:00
Asger F
637baabe37
JS: Clarify why there are no SSA definitions
2024-11-12 11:23:35 +01:00
Asger F
2fb108419c
JS: Only parameter-calls as lambda calls
2024-10-29 08:32:15 +01:00
Asger F
1e9e57e46e
JS: Fix missing qldoc
2024-10-29 08:32:14 +01:00
Asger F
52ba91a7f8
JS: Updates to nodes/edges in tests
...
Only changes to nodes/edges for various reasons, no actual result changes
2024-10-29 08:32:13 +01:00
Asger F
1243188825
JS: Update CleartextLogging with fixed FP
2024-10-29 08:32:11 +01:00
Asger F
18b39460f5
JS: Add regained results in UnsafeJQueryPlugin
...
These were marked as 'NOT OK' in the test file, but weren't previously flagged for some reason
2024-10-29 08:32:10 +01:00
Asger F
d3e70c1e97
JS: Add in-barrier to XSS query
...
This is a bit of a bandaid to cover issues with the push() method on next/router being
treated as an array push, which causes it to flow into other taint sources.
2024-10-29 08:32:08 +01:00
Asger F
1b85feb1fa
JS: Add imprecise post-update steps for when a captured var/this is not tracked precisely
...
With the capture library we sometimes bails out of handling certain functions for scalability reasons.
This means we have a notion of "captured but imprecisely-tracked" variables and 'this'. In these cases we go back to propagating flow from a post-update node to the local source.
2024-10-29 08:32:07 +01:00
Asger F
d557c7689c
JS: Update a test that now has more precise output
2024-10-29 08:32:06 +01:00
Asger F
1efef2ca3c
JS: Change rule for getPostUpdateForStore
...
This causes less wobbles in test outputs
2024-10-29 08:32:05 +01:00
Asger F
ad52b71922
JS: Update immutable.js test to clarify why it stopped working
...
The Immutable model uses the 'd' and 'f' properties to model Map content, but the test doesn't actually mention those properties, so they were missing from the PropertyName class.
The flow was previously found spuriously by the regular Map model, which also adds flow through the get/set calls. This flow is however no longer found since it relied on a step from post-update back to getALocalSource which is no longer present.
2024-10-29 08:32:03 +01:00
Asger F
c0997c28cb
JS: Reveal issue with immutable.js test
...
Fixed in the next commit
2024-10-29 08:32:02 +01:00
Asger F
4473e6d977
JS: Update test with some post-update consistency checks gone
...
For a constructor call, the return value acts as the post-update node for the 'this' argument. The fact that constructor calls are sometimes PostUpdateNodes causes some of these harmless alerts.
The warnings have disappeared in some cases because we no longer target getALocalSource() so the target is no longer the constructor call.
2024-10-29 08:32:01 +01:00
Asger F
cb874945bf
Test updates from introduction of implicit 'this'
2024-10-29 08:31:59 +01:00
Asger F
bd94fe1574
JS: Explain false positive in test case
2024-10-29 08:31:58 +01:00
Asger F
e05e077b33
JS: Block jump steps through 'this' now that the capture lib handles 'this'
2024-10-29 08:31:57 +01:00
Asger F
16b08b74eb
JS: Add test showing potential for FPs when handling refinement guards
2024-10-29 08:31:55 +01:00
Asger F
958602e43e
JS: Cache getARead (as per instructions in the SSA library)
2024-10-22 12:46:20 +02:00
Asger F
e784813c3b
JS: Make barrier guards work with use-use flow
2024-10-22 12:46:19 +02:00
Asger F
67fdd864c9
JS: Add TODO
2024-10-22 12:46:18 +02:00
Asger F
81af9a1658
Fix missing flow through super calls
2024-10-22 12:46:17 +02:00
Asger F
12370e9210
JS: Use VariableOrThis in variable capture as well
2024-10-22 12:46:16 +02:00
Asger F
0ebe8bdd91
JS: Add test for missing capture flow for 'this'
2024-10-22 12:46:15 +02:00
Asger F
d31499d727
JS: introduce implicit this uses in general
2024-10-22 12:46:14 +02:00
Asger F
8dc0505f84
JS: Add test for missing flow into 'this' in field initializers
2024-10-22 12:46:13 +02:00
Asger F
c3c003b275
JS: Fix post-update flow into 'this'
2024-10-22 12:46:11 +02:00
Asger F
9fc99d6f9d
JS: Fix store into object literals that have a post-update node
2024-10-22 12:46:11 +02:00
Asger F
d626e79ed3
JS: Add two test cases for missing flow
2024-10-22 12:46:10 +02:00
Asger F
992c144559
JS: Add qldoc to file
2024-10-22 12:46:09 +02:00
Asger F
beaacf96b3
JS: Rename Internal -> Cached since whole file is internal now
2024-10-22 12:46:08 +02:00
Asger F
3fca27bee2
JS: Fix indentation
...
Only formatting changes
2024-10-22 12:46:07 +02:00
Asger F
ed0af958a9
JS: Add Public module and only expose that
...
Indentation will be fixed in next commit
2024-10-22 12:46:06 +02:00
Asger F
3b663bd2f6
JS: Remove BasicBlockInternal module and mark relevant predicates as public
...
This exposes the predicates publicly, but will be hidden again in the next commit.
2024-10-22 12:46:04 +02:00
Asger F
211b42d0ce
JS: Move BasicBlocks.qll -> internal/BasicBlocksInternal.qll
2024-10-22 12:46:03 +02:00
Asger F
9e600424cc
JS: Remove unused predicate
2024-10-22 12:46:02 +02:00
Asger F
78e961cef3
JS: Add use-use flow
2024-10-22 12:46:01 +02:00
Asger F
81e74d8bb5
JS: Add test case for spurious flow from lack of use-use
2024-10-22 12:46:00 +02:00
Asger F
7363b578b1
JS: Instantiate shared SSA library
...
JS: Remove with statement comment
2024-10-22 12:45:58 +02:00
Asger F
a258489551
JS: Refactor some internal methods to make them easier to alias
...
We need these to return the dominator instead of declaring it in the parameter list, so that we can use it directly to fulfill part of the signature for the SSA library.
We can't rewrite it with an inline predicate since the SSA module calls with a transitive closure '*', which does not permit inline predicates.
2024-10-22 12:45:57 +02:00
Asger F
443987b484
Merge branch 'main' into js/shared-dataflow-merge-main
2024-10-22 10:30:53 +02:00
yoff
e46722f3be
Update python/ql/lib/semmle/python/dataflow/new/internal/TypeTrackingImpl.qll
2024-10-17 17:23:00 +02:00
Rasmus Lerchedahl Petersen
22d621c625
shared: add locations to typetracking nodes
2024-10-16 15:16:18 +02:00
Asger F
12e316b99d
JS: Update test output after merging in 'main'
...
- Paths are now relative to the test case, not the qlpack
- Paths going through an implicit reads have changed slightly
2024-10-08 10:11:15 +02:00
Asger F
e2e91ac7d9
Merge branch 'main' into js/shared-dataflow-merge-main
2024-10-08 09:28:26 +02:00
Asger F
72daa980a0
Merge pull request #17643 from asgerf/jss/cached-barriers
...
JS: Fix bug causing re-evaluation of cached barriers
2024-10-03 12:59:53 +02:00
Asger F
5d2ce172eb
JS: Update a test to handle AdditionalSanitizerGuardNode
2024-10-02 14:44:42 +02:00
Asger F
6cbe04dcb7
JS: Consistently use the shared XSS barrier guards in the XSS queries
...
Previously only reflected XSS used shared barrier guards.
2024-10-02 14:44:17 +02:00
Asger F
341bacfe55
JS: Fix bug causing re-evaluation of cached barriers
2024-10-02 14:43:18 +02:00
Asger F
1cd00a118c
Merge branch 'main' into js/shared-dataflow-merge-main
2024-09-18 14:57:50 +02:00
Asger F
5e4c0906d8
Merge pull request #17412 from asgerf/jss/array-index-constant
...
JS: Fix handling of constant array index reads, and fix the fallout
2024-09-18 12:28:44 +02:00
Asger F
7ba6995854
JS: Clarify a comment
2024-09-17 15:59:04 +02:00
Asger F
1df69ec1d2
JS: Actually don't propagate into array element 0
...
Preserving tainted-url-suffix into array element 0 seemed like a good idea, but didn't work out so well.
2024-09-12 13:42:36 +02:00
Asger F
0e4e0f4fdd
JS: Preverse tainted-url-suffix when stepping into prefix
...
A URL of form https://example.com?evil#bar will contain '?evil' after splitting out the '#' suffix, and vice versa.
2024-09-12 13:42:28 +02:00
Asger F
74ab346348
JS: Do not include taint steps in TaintedUrlSuffix::step
...
TaintedUrlSuffix is currently only used in TaintTracking configs meaning it is already propagated
by taint steps. The inclusion of these taint steps here however meant that implicit reads could appear prior to any of these steps.
This was is problematic for PropRead steps as an expression like x[0] could spuriously read from array element 1 via the path:
x [element 1]
x [empty access path] (after implicit read)
x[0] (taint step through PropRead)
2024-09-12 13:42:25 +02:00
Asger F
2712bf821a
JS: Fix a bug in isSafeClientSideUrlProperty
2024-09-12 13:42:23 +02:00
Asger F
bc04131c72
JS: Disallow implicit reads before an optional step
2024-09-12 13:42:22 +02:00
Asger F
e1bed42481
JS: Add inline expectation test specifically for TaintedUrlSuffix
2024-09-12 13:42:20 +02:00
Asger F
cf90c83604
JS: Accept changes to nodes/edges results
2024-09-12 13:42:19 +02:00
Asger F
3b09bc548e
JS: Add taint step for shift()
2024-09-12 13:42:17 +02:00
Asger F
3ea1134cc1
JS: Add inline test for .shift() method
2024-09-12 13:42:16 +02:00
Asger F
3fcf4ef7a1
JS: More precise model of .shift()
...
Array.prototype.shift only returns the first array element.
The mutation of Argument[this] is not yet modelled, and is better handled when we have use-use flow.
2024-09-12 13:42:15 +02:00
Asger F
e4f7560bcd
JS: Add missing qldoc
2024-09-12 13:42:14 +02:00
Asger F
15fc450a9e
JS: Add reminder to update ClientSideUrlRedirect
2024-09-12 13:42:13 +02:00
Asger F
da696817a3
JS: Convert 'split' taint step to legacy taint step
2024-09-12 13:42:05 +02:00
Asger F
133b016c7c
JS: Remove old 'split' handling from TaintedUrlSuffix
2024-09-12 13:41:56 +02:00
Asger F
e87e543850
JS: Ensure optional steps/barriers are computed in the correct stage
2024-09-12 13:35:38 +02:00
Asger F
7790f68fe2
JS: Make the TaintedUrlSuffix library use optional steps/barriers
2024-09-12 13:35:36 +02:00
Asger F
3b34cd72f2
JS: Handle split() with '#' or '?' separator in a separate summary
...
This summary uses the notion of optional steps/barriers so it becomes configurable whether there is flow into the zero'th array element.
Also makes sure we handle the second-argument version of split().
2024-09-12 13:35:33 +02:00
Asger F
24983a5836
JS: Add OptionalStep and OptionalBarrier MaD tokens
...
OptionalStep[foo] and OptionalBarrier[foo] contribute steps/barriers that are not active by default, but can be opted into by specific queries or for specific flow states.
(Will be used in the following commits)
2024-09-12 13:30:39 +02:00
Asger F
87454a4f11
JS: Remove unused predicate
2024-09-10 14:44:49 +02:00
Asger F
0ddb1c87f5
JS: Test update indicating a problem with .split()
2024-09-10 13:14:37 +02:00
Asger F
e0ca1b0482
JS: Benign test updates
2024-09-10 13:07:24 +02:00
Asger F
3d4287b7cc
JS: Remove ContentSet#asArrayIndex()
...
For ContentSet it is ambiguous whether asArrayIndex() should get a singleton content set, or the KnownArrayElement content set. The user will now have to choose between asSingleton().asArrayIndex() or ContentSet::arrayElementKnown.
2024-09-09 13:28:32 +02:00
Asger F
013d226ae3
JS: Update comment
2024-09-09 13:26:27 +02:00
Asger F
55d4e7e742
JS: Use ArrayElementKnown when reading a constant array index
2024-09-09 13:26:25 +02:00
Asger F
094112c905
Merge pull request #17213 from asgerf/jss/spread-argument
...
JS: Improve handling of spread arguments and rest parameters [shared data flow branch]
2024-09-09 13:15:22 +02:00
Asger F
fb9732a33f
JS: Add another test and TODO about an issue with constant array indices
2024-09-06 08:43:11 +02:00
Asger F
1da68aac73
JS: Benign test output change
...
This happened as a result of the bugfix in the previous commit
2024-09-06 08:43:10 +02:00
Asger F
a9a8351cce
JS: Fix one case of missing handling of unknown array index
2024-09-06 08:43:09 +02:00
Asger F
379c7ef20a
JS: Add test to show lack of unknown array element being propagated
2024-09-06 08:43:08 +02:00
Asger F
92bb4b3da8
JS: Address some comments from hvitved
2024-09-05 11:32:07 +02:00
Asger F
4568967a76
JS: Do not use legacy taint steps in TaintedUrlSuffix
...
Tainted URL suffix steps are added as configuration-specific additional
steps, which means implicit reads may occur before any of these steps.
These steps accidentally included the legacy taint steps which include
a step from 'arguments' to all positional parameters. Combined with the
implicit read, arguments could escape their array index and flow to
any parameter while in the tainted-url flow state.
2024-08-29 13:48:30 +02:00
Asger F
65a36b0b3b
JS: Add regression test for argument position confusion
2024-08-29 13:42:28 +02:00
Asger F
f65879eef1
JS: Update a test that no longer fails
2024-08-27 11:35:37 +02:00
Asger F
cb5dbb919d
JS: Update test to reflect implicit read flow has been fixed
...
Shows the effect of https://github.com/github/codeql/pull/17262
2024-08-27 11:35:36 +02:00
Asger F
a2d53c261b
JS: Update test output and add related TODO in model of 'async'
2024-08-27 11:35:35 +02:00
Asger F
837a8be1b8
JS: Update test output and add related TODO in 'markdown-table' model
2024-08-27 11:35:34 +02:00
Asger F
2e2181be2c
JS: Update test output that only affects nodes/edges/subpaths
2024-08-27 11:35:33 +02:00
Asger F
3e196f83f1
JS: Update Promises/flow2 test
2024-08-27 11:35:32 +02:00
Asger F
aa8bd332bf
JS: Add a few more tests
2024-08-27 11:35:31 +02:00
Asger F
371f7ef551
JS: Add implicit taint read of array elements
2024-08-27 11:35:31 +02:00
Asger F
df42e7c527
JS: Add test showing lack of implicit reads for ArrayElement
2024-08-27 11:35:30 +02:00
Asger F
4e7bd9ddd8
JS: Update Arrays test now that array elements do not taint the whole array
2024-08-27 11:35:29 +02:00
Asger F
4389b5c999
JS: Fix issue for .apply() calls
2024-08-27 11:35:28 +02:00
Asger F
34e6864fa3
JS: Note issue with .apply() calls
2024-08-27 11:35:27 +02:00
Asger F
ac1dd1850e
JS: Remove taint step from array element to whole array
2024-08-27 11:35:26 +02:00
Asger F
5084d0260f
Update tests.expected
...
The 'arguments' node is only materialised for functions that use 'arguments
2024-08-27 11:35:25 +02:00
Asger F
895cb872ad
JS: Add taint into dynamic argument array
2024-08-27 11:35:24 +02:00
Asger F
079a622cf9
JS: Add tests showing missing taint flow
...
When the spread argument itself is tained and not
inside any content, the read steps currently fail
to propagate the data.
2024-08-27 11:35:23 +02:00
Asger F
6a083136d7
JS: Hide some nodes
2024-08-27 11:35:22 +02:00
Asger F
acdc896c04
JS: Support for dynamic args to flow summaries
2024-08-27 11:35:21 +02:00
Asger F
53a2a66dd0
Add new nodes to early stage
2024-08-27 11:35:20 +02:00
Asger F
5c7e623c47
JS: Add some tests for missing handling of dynamic args in flow summaries
2024-08-27 11:35:19 +02:00
Asger F
c04f0beb8a
Update DataFlowConsistency.expected
2024-08-27 11:35:18 +02:00
Asger F
60c3d077b2
Update DataFlowImplConsistency.qll
2024-08-27 11:35:17 +02:00
Asger F
bbb1c8c374
Remove old arguments-array position
2024-08-27 11:35:16 +02:00
Asger F
ed33a6e91b
JS: Add explicit model of .join()
2024-08-27 11:35:15 +02:00
Asger F
fa7ad03068
JS: Add store/load steps for the new argument arrays
2024-08-27 11:35:15 +02:00
Asger F
623dbda77d
Do not pass regular positional args into the rest parameter
2024-08-27 11:35:14 +02:00
Asger F
a72f79576a
JS: Add corresponding argument positions
2024-08-27 11:35:13 +02:00
Asger F
6c7d745a2b
JS: Add nodes for static/dynamic argument/parameter arrays
2024-08-27 11:35:12 +02:00
Asger F
5d77c336fc
Test case for spread and rest args/params
2024-08-27 11:35:11 +02:00
Asger F
4cdaccd22e
JS: Add InlineFlowTest
2024-08-27 11:35:10 +02:00
Asger F
2adaf0f935
Merge pull request #17261 from asgerf/jss/dynamic-import-step
...
JS: Port step for dynamic imports
2024-08-27 08:27:16 +02:00
Asger F
47c519fc0a
JS: Add test for flow through dynamic imports
2024-08-26 15:15:49 +02:00
Asger F
4b8ae2a4f3
Merge branch 'main' into js/shared-dataflow-merge-main
2024-08-26 12:43:16 +02:00
Asger F
7cfe3dae85
JS: Port step for dynamic imports
2024-08-23 10:07:28 +02:00
Asger F
379952febc
Merge pull request #17285 from asgerf/js/shared-dataflow-bump
...
JS: Resolve conflicts after merging 'main' into shared data flow branch
2024-08-23 09:58:27 +02:00
Asger F
a2dd47aeb2
JS: Update test output
...
These files conflicted and have been regenerated.
2024-08-22 14:27:15 +02:00
Asger F
423fd04545
JS: Update new xsjs-specific code to respect TEarlyStageNode
2024-08-22 13:22:35 +02:00
Asger F
c54f5858b1
Merge branch 'main' into js/shared-dataflow-merge-main
2024-08-22 13:22:05 +02:00
Asger F
c66000d2fa
Merge pull request #17136 from asgerf/js/shared-dataflow-bump
...
JS: Merge 'main' into shared dataflow branch
2024-08-06 14:14:47 +02:00
Asger F
2d814428d6
JS: Update expected output with provenance
2024-08-06 12:45:08 +02:00
Asger F
0a143a5f52
JS: Do not include type in path explanation
2024-08-06 12:45:07 +02:00
Asger F
1a532dac29
JS: Update VariableCapture instantiation after merge
2024-08-06 12:45:06 +02:00
Asger F
c8bbad6c4d
Merge branch 'main' into js/shared-dataflow-merge-main
2024-08-06 12:43:13 +02:00
Asger F
df64388d79
Merge branch 'main' into js/shared-dataflow-merge-main
2024-08-02 13:18:38 +02:00
Asger F
5c222f7b05
Merge pull request #14412 from asgerf/js/shared-dataflow
...
[Feature branch] JS: Migrate to shared dataflow library
2024-08-02 12:48:01 +02:00
Asger F
1d267efb6b
JS: Fix missing qldoc
2024-06-28 14:30:56 +02:00
Asger F
e5924c1f84
JS: Another messy test update
2024-06-28 13:08:38 +02:00
Asger F
14fc790617
Update DataFlowConsistency.expected
2024-06-28 13:08:09 +02:00
Asger F
1c730bc66e
JS: Fix compilation error in DataFlowImplConsistency.qll
2024-06-27 12:47:15 +02:00
Asger F
c3806a2210
JS: Messy test output updates
...
These initially got messed up by a merge conflict where I couldn't rerun the tests due to breaking
changes in the data flow library. I wanted the breaking-change updates to live in their own commits,
not just eaten by a merge resolution commit, so the test output became broken for a while.
The '#select' result set is unchanged in all of these, so they should be safe to accept.
2024-06-27 11:59:56 +02:00
Asger F
90f0e07e49
JS: Benign update after fixing PropertyName charpred
2024-06-27 11:56:22 +02:00
Asger F
ee10702e73
JS: Another provanance test output update
2024-06-27 11:56:01 +02:00
Asger F
df0488a470
Ensure Member tokens from flow summaries are seen in PropertyName
2024-06-27 10:22:14 +02:00
Asger F
c52a4b0621
JS: Provide RenderSummarizedCallable
2024-06-27 09:44:45 +02:00
Asger F
e53c0cdce7
Fix unknown Parameter/Argument decoding
2024-06-27 09:39:06 +02:00
Asger F
2473274681
JS: Benign test output changes
2024-06-27 09:06:45 +02:00
Asger F
af7b4e3063
Accept flow difference due to added test cases
...
New library gets FN for spread arguments in a call to splice(), which
was added to the old version in this PR:
https://github.com/github/codeql/pull/16739
2024-06-26 13:52:27 +02:00
Asger F
53efb5837b
JS: Update some tests with provenance columns
...
Only includes the changes that purely contain the new provenance columns
2024-06-26 13:51:44 +02:00
Asger F
88edc06517
Avoid bad join in compatibleTypesCached
...
This is identical to the code in Ruby and seems to prevent a bad join ordering
in a cached version of this predicate in DataFlowCommon
2024-06-26 13:51:41 +02:00
Asger F
fc7c2c5b17
Remove unused code
2024-06-26 13:51:40 +02:00
Asger F
e67e89dd70
Implement decodeUnknownArgument/ParameterPosition
2024-06-26 13:51:39 +02:00
Asger F
3bebd709b3
Handle AnyMemberDeep and ArrayElementDeep in encodeContent
2024-06-26 13:51:38 +02:00
Asger F
6c0c67dce4
Implement encodeWith/WithoutContent
2024-06-26 13:51:37 +02:00
Asger F
b0ea81276b
Implement encodeReturn
2024-06-26 13:51:36 +02:00
Asger F
5811a3c5a6
Port getMadStringFromContentSet -> encodeContent
2024-06-26 13:51:35 +02:00
Asger F
8c4e5e8876
Boilerplate implementation of default predicates from FlowSummaryImpl.qll
2024-06-26 13:51:34 +02:00
Asger F
6b35a766a6
Migrate to shared FlowSummary library
2024-06-25 14:43:29 +02:00
Asger F
dd7aff555d
Instantiate shared FlowSummary library
2024-06-25 13:35:49 +02:00
Asger F
f0d7c3a7f0
Remove bindingsets
2024-06-25 13:33:06 +02:00
Asger F
6e32f27652
Rename predicates to be consistent with qlpack
...
In preparation for migrating to the FlowSummary module in the qlpack,
rename predicates to be consistent with the qlpack.
2024-06-25 13:30:33 +02:00
Asger F
6c8fb61f60
Js: Update FlowSummaryImpl.qll to make things compile
2024-06-25 13:10:24 +02:00
Asger F
64a9598b89
JS: Update interface for isUnreachableInCall
2024-06-25 13:01:23 +02:00
Asger F
505c532af7
JS: Implement totalorder()
2024-06-25 12:58:35 +02:00
Asger F
102ca77acf
Switch to getLocation() in DataFlowCall
2024-06-25 11:49:19 +02:00
Asger F
ecf418b8f6
Merge branch 'main' into js/shared-dataflow
2024-06-25 11:48:41 +02:00
Asger F
bd3fccd1a8
JS: Update test output with provenance column
2024-06-25 10:30:56 +02:00
Asger F
20df5adbaa
JS: Bugfix in DeduplicatePathGraph
...
This was introduced after a quick fix to handle the addition of
provenance.
2024-06-25 10:30:14 +02:00
Asger F
f43a189f06
JS: Make CaptureNode.toString() more explicit
2024-06-25 09:56:39 +02:00
Asger F
536c115c1c
JS: Fix location override in CaptureNode
2024-05-06 13:51:25 +02:00
Asger F
23d28fc098
Shared: add location for 'this' nodes
2024-05-06 13:50:40 +02:00
Asger F
5a2260b481
JS: Update to match changes to API
2024-05-06 10:13:25 +02:00
Asger F
19f14622f3
JS: Update use of Locations
2024-05-06 10:13:24 +02:00
Asger F
2de9af2236
JS: Update to getLocation() in DeduplicatePathGraph
2024-05-06 10:13:07 +02:00
Asger F
c408ab9e6a
Merge branch 'main' into js/shared-dataflow
2024-05-02 19:43:34 +02:00
Asger F
711a08b0d4
JS: Add TODO about switching to the shared library
2024-03-15 09:26:19 +01:00
Asger F
eff5f3b7d6
JS: Remove duplicate dependency from qlpack.yml
2024-03-13 20:43:44 +01:00
Asger F
ddf6eb3a04
JS: Quick fix to make DeduplicatePathGraph compile
...
There's an open PR for this where a real fix should be written
2024-03-13 15:24:53 +01:00
Asger F
8ecdb5cefe
Update VariableCapture.qll
2024-03-13 15:24:20 +01:00
Asger F
82abd867a0
JS: Update uses of AccessPathSyntax
...
This doesn't yet migrate to the FlowSummaryImpl.qll in a qlpack, just trying to make things compile first
2024-03-13 15:17:58 +01:00
Asger F
e5bc8db2f0
JS: Fix conflicting default for visbleImplInCallContext
2024-03-13 15:17:08 +01:00
Asger F
bb1f729a3f
Update VariableCapture.qll
2024-03-13 15:16:37 +01:00
Asger F
97567f412e
JS: Update VariableCapture.qll after changes to API
2024-03-13 14:53:00 +01:00
Asger F
5e7d1d5c2c
Merge branch 'main' into js/shared-dataflow-merged
2024-03-13 14:27:16 +01:00
Asger F
fa8933eb41
JS: Reduce duplication in UnsafeDynamicMethodAccessQuery
2024-03-13 12:30:05 +01:00
Asger F
ea4bc9cdbb
JS: Comment about manually applying taint steps
2024-03-13 12:30:05 +01:00
Asger F
406b080ce3
JS: Add comment about allowImplicitRead in PostMessageStar
2024-03-13 11:30:52 +01:00
Asger F
0a2050bc42
JS: Deduplicate predicate in HostHeaderPoisoningQuery
2024-03-13 11:27:18 +01:00
Asger F
11983faccf
JS: Remove out-commented code
2024-03-13 11:26:56 +01:00
Asger F
b31f20a64e
JS: Explain why ObjetWrapperFlowLabel is deprecated
2024-03-13 11:08:25 +01:00
Asger F
e0aae53ac7
JS: Remove unnecessary BarrierGuardLegacy class
2024-03-13 11:05:23 +01:00
Asger F
fce2be0af3
JS: Use BarrierGuardLegacy in TaintedPath
2024-03-13 11:02:09 +01:00
Asger F
e640154048
JS: Be backwards compatible with AdditionalBarrierGuardNode
...
I've confirmed that the 'legacyBarrier' predicate does not occur in the DIL
2024-03-13 10:54:02 +01:00
Asger F
14e75be510
JS: Expand comments and synthetic node name in ForOfLoops
2024-03-13 09:27:00 +01:00
Asger F
e66f27cfe3
JS: Move hasWildcardReplaceRegExp to a shared place
2024-03-13 09:19:26 +01:00
Asger F
4043bc13ab
JS: Explicit mark comment as a TODO
2024-03-13 09:19:03 +01:00
Asger F
858c79e395
JS: Add plain taint step through Promise.all()
2024-03-13 08:57:42 +01:00
Asger F
13a8e0fbf0
JS: Add failing test for Promise.all()
2024-03-13 08:54:06 +01:00
Asger F
2c1aa08f79
JS: Rename Strings2 -> Strings
2024-03-12 21:18:14 +01:00
Asger F
478dd25f3e
JS: Rename Sets2 -> Sets
2024-03-12 21:17:29 +01:00
Asger F
433489478d
JS: Rename Promise2 -> Promise
2024-03-12 21:16:43 +01:00
Asger F
e2f3565227
JS: Rename Maps2 -> Maps
2024-03-12 21:14:29 +01:00
Asger F
b3fad7a8dc
JS: Rename Iterators2 -> Iterators
2024-03-12 15:12:07 +01:00
Asger F
5aafd33cec
JS: Rename Arrays2 -> Arrays
2024-03-12 15:11:29 +01:00
Asger F
76e0445af0
JS: Be consistent about caching in PreCallGraphStep
2024-03-12 15:08:59 +01:00
Asger F
28fc8ba0c1
JS: Remove EmptyType
2024-03-12 14:59:04 +01:00
Asger F
f94aa2ceec
Update javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowNode.qll
2024-03-12 14:41:11 +01:00
Asger F
a02ab2ad88
JS: Port heuristic versions of standard queries
2023-10-13 13:15:08 +02:00
Asger F
3c7c5377ec
JS: Add content approximation
...
This seems to fix a performance issue for RegExpInjection in angular
2023-10-13 13:15:08 +02:00
Asger F
5775fe6d6e
JS: Use TAnyType in FlowSummaryPrivate
2023-10-13 13:15:08 +02:00
Asger F
9faf300dd0
JS: Use type-pruning to restrict callback flow
2023-10-13 13:15:08 +02:00
Asger F
e738b5d125
JS: Expand callback test case
...
Type-based pruning is confused by the different tests being interleaved, so we additionally want to have a test that is independent from the other parts of this test.
2023-10-13 13:15:08 +02:00
Asger F
d3f5169e66
JS: Lower field-flow branch limit on Polynomial ReDoS
2023-10-13 13:15:08 +02:00
Asger F
51dec79401
JS: Lower access path limit to 2
2023-10-13 13:15:08 +02:00
Asger F
24bab27ffe
JS: Add TODO for dynamic import step
2023-10-13 13:15:08 +02:00
Asger F
7c5eb89491
JS: Add tests for captured 'this' (genuine FN)
2023-10-13 13:15:08 +02:00
Asger F
98c79e7674
JS: Update test output showing lack of global flow (geniune FN)
2023-10-13 13:15:08 +02:00
Asger F
9b46c4596c
JS: Update HeuristicSoruceCodeInjection test
2023-10-13 13:15:08 +02:00
Asger F
bab639f23c
JS: Update ReflectedXssWithCustomSanitizer test
2023-10-13 13:15:08 +02:00
Asger F
85e8998067
JS: Update ImportEquals test
2023-10-13 13:15:08 +02:00
Asger F
2eff07f476
JS: Update TaintTracking test
2023-10-13 13:15:08 +02:00
Asger F
b5ad36686e
JS: Block flow into window.location
2023-10-13 13:15:08 +02:00
Asger F
75c915b2a3
JS: Update Spife test
2023-10-13 13:15:07 +02:00
Asger F
c2f66c0f93
JS: Update Restify2 test
2023-10-13 13:15:07 +02:00
Asger F
b304fb4337
JS: Reorder result sets in ReactJS test output
2023-10-13 13:15:07 +02:00
Asger F
32eddd3c07
JS: Update ReactJS test output
2023-10-13 13:15:07 +02:00
Asger F
b8a0afbb9f
JS: Make overriding ConsistencyChecking.getATestFile() optional
2023-10-13 13:15:07 +02:00
Asger F
6c9f4a10ac
JS: Port TaintBarriers test
2023-10-13 13:15:07 +02:00
Asger F
e5946bf43b
JS: Port HeuristicSource test
2023-10-13 13:15:07 +02:00
Asger F
771519bbc5
JS: Port Routing test
2023-10-13 13:15:07 +02:00
Asger F
2364bd84e0
JS: Fix whitespace in a test (trivial change)
2023-10-13 13:15:07 +02:00
Asger F
98d1bb3826
JS: Reorder result sets in a test (trivial change)
2023-10-13 13:15:07 +02:00
Asger F
81bd292a16
JS: Port Promises test
...
Result changes are benign
2023-10-13 13:15:07 +02:00
Asger F
dd8a24c6c0
JS: Port LabelledBarrierGuards test
2023-10-13 13:15:07 +02:00
Asger F
458f0a077c
JS: Port InterProceduralFlow test
...
All the new results are benign
2023-10-13 13:15:07 +02:00
Asger F
0d10aba67d
Revert "JS: Add global post-update steps"
...
This resulted in huge performance issues from too much global flow
2023-10-13 13:15:07 +02:00
Asger F
50aace3fa3
JS: Add global post-update steps
2023-10-13 13:15:07 +02:00
Asger F
9372f7993d
JS: Update Generators test
...
Data flow difference is benign
2023-10-13 13:15:07 +02:00
Asger F
995df41532
JS: Update Vuex test
2023-10-13 13:15:07 +02:00
Asger F
3983530983
JS: Update Templating/Xss test
2023-10-13 13:15:07 +02:00
Asger F
b9344134d3
JS: Update Redux test
2023-10-13 13:15:07 +02:00
Asger F
d2053445a7
JS: Update frameworks/PropertyProjection test
2023-10-13 13:15:07 +02:00
Asger F
2eec47b52c
JS: Update frameworks/Next test
2023-10-13 13:15:07 +02:00
Asger F
644f9683b1
JS: Update frameworks/immutable test
2023-10-13 13:15:07 +02:00
Asger F
a2d4a03c0e
JS: Update framework/data test
2023-10-13 13:15:06 +02:00
Asger F
6600fe9d51
JS: Port ComposedFunctions test
2023-10-13 13:15:06 +02:00
Asger F
09892279e6
JS: Port Collections test
2023-10-13 13:15:06 +02:00
Asger F
466ffdf8f5
JS: Port AsyncTaintTracking test
2023-10-13 13:15:06 +02:00
Asger F
09b0ba0c1f
JS: Port Angular2 test
2023-10-13 13:15:06 +02:00
Asger F
92812eee78
JS: Add test for flow summaries
2023-10-13 13:15:06 +02:00
Asger F
af05789cbf
JS: Remove noise from data flow test
2023-10-13 13:15:06 +02:00
Asger F
c652470e2f
JS: Do not port CustomLoadStoreStep test
2023-10-13 13:15:06 +02:00
Asger F
1a95961bac
JS: Port Classes test
2023-10-13 13:15:06 +02:00
Asger F
9a15a557b4
JS: Port SimpleBarrierGuard test
2023-10-13 13:15:06 +02:00
Asger F
ff086377cb
JS: Port Arrays test
2023-10-13 13:15:06 +02:00
Asger F
d35959a098
JS: Add utility for comparing results in tests
2023-10-13 13:15:06 +02:00
Asger F
43be45207d
JS: Port meta queries
2023-10-13 13:15:06 +02:00
Asger F
c55300d4b0
JS: Port PolynomialReDoS
2023-10-13 13:15:06 +02:00
Asger F
b8847dbc5d
JS: Port Xxe
2023-10-13 13:15:06 +02:00
Asger F
c2d170b4fd
JS: Port XpathInjection
2023-10-13 13:15:06 +02:00
Asger F
03f8c0fc5e
JS: Port XmlBomb
2023-10-13 13:15:06 +02:00
Asger F
83095535f9
JS: Port UnvalidatedDynamicMethodCall
2023-10-13 13:15:06 +02:00
Asger F
ba9edb4e54
JS: Port UnsafeShellCommandConstruction
2023-10-13 13:15:06 +02:00
Asger F
d08e4504ff
JS: Port UnsafeJQueryPlugin
2023-10-13 13:15:06 +02:00
Asger F
6e3f4bd7d8
JS: Port UnsafeHtmlConstruction
2023-10-13 13:15:06 +02:00
Asger F
7f4d42ddcd
JS: Port UnsafeDynamicMethodAccess
2023-10-13 13:15:06 +02:00
Asger F
758f42495c
JS: Port UnsafeDeserialization
2023-10-13 13:15:05 +02:00
Asger F
32022ccbda
JS: Port UnsafeCodeConstruction
2023-10-13 13:15:05 +02:00
Asger F
5af608c937
JS: Port TypeConfusionThroughParameterTampering
2023-10-13 13:15:05 +02:00
Asger F
25962a9ba6
JS: Port TemplateObjectInjection
2023-10-13 13:15:05 +02:00
Asger F
51624c02a2
JS: Port TaintedFormatString
2023-10-13 13:15:05 +02:00
Asger F
63343b1ba4
JS: Port StackTraceExposure
2023-10-13 13:15:05 +02:00
Asger F
d446444667
JS: Port ShellCommandInjectionFromEnvironment
2023-10-13 13:15:05 +02:00
Asger F
06835a800c
JS: Port SecondOrderCommandInjection
2023-10-13 13:15:05 +02:00
Asger F
4af7694309
JS: Port ResourceExhaustion
2023-10-13 13:15:05 +02:00
Asger F
b9bd0520e2
JS: Port RemotePropertyInjection
2023-10-13 13:15:05 +02:00
Asger F
dcc73a7f90
JS: Port RegExpInjection
2023-10-13 13:15:05 +02:00
Asger F
2400af4bc3
JS: Port PostMessageStar
2023-10-13 13:15:05 +02:00
Asger F
e1fae3d16d
JS: Port InsufficientPasswordHash
2023-10-13 13:15:05 +02:00
Asger F
fd98b2546d
JS: Port InsecureTemporaryFile
2023-10-13 13:15:05 +02:00
Asger F
cd1a1e25ae
JS: Port InsecureRandomness
2023-10-13 13:15:05 +02:00
Asger F
99f63b1cfa
JS: Port InsecureDownload
2023-10-13 13:15:05 +02:00
Asger F
8c001916b6
JS: Port IndirectCommandInjection
2023-10-13 13:15:05 +02:00
Asger F
e3ab5bdd16
JS: Port IncompleteHtmlAttributeSanitization
2023-10-13 13:15:05 +02:00
Asger F
9128722627
JS: Port ImproperCodeSanitization
2023-10-13 13:15:05 +02:00
Asger F
8715c1b324
JS: Port HostHeaderPoisoningInEmailGeneration
2023-10-13 13:15:05 +02:00
Asger F
bc88f50a5f
JS: Port HardcodedDataInterpretedAsCode
2023-10-13 13:15:04 +02:00
Asger F
4bac90252c
JS: Port HardcodedCredentials
2023-10-13 13:15:04 +02:00
Asger F
f4d62c3225
JS: Port HttpToFileAccess
2023-10-13 13:15:04 +02:00
Asger F
2935aac559
JS: Port FileAccessToHttp
2023-10-13 13:15:04 +02:00
Asger F
8e95a90d03
JS: Port UntrustedDataToExternalAPI
2023-10-13 13:15:04 +02:00
Asger F
abd937a49d
JS: Port DifferentKindsComparisonBypass
2023-10-13 13:15:04 +02:00
Asger F
d324e554f3
JS: Port DeepObjectResourceExhaustion
2023-10-13 13:15:04 +02:00
Asger F
30f1fbc10d
JS: Port CorsMisconfigurationForCredentials
2023-10-13 13:15:04 +02:00
Asger F
f14303acea
JS: Port ConditionalBypass
2023-10-13 13:15:04 +02:00
Asger F
2296a273c4
JS: Port BuildArtifactLeak
2023-10-13 13:15:04 +02:00
Asger F
85617c292e
JS: Port BrokenCryptoAlgorithm
2023-10-13 13:15:04 +02:00
Asger F
395f52303c
JS: Port barriers in UrlConcatenation.qll
2023-10-13 13:15:04 +02:00
Asger F
7a1aead831
JS: Port ZipSlip
2023-10-13 13:15:04 +02:00
Asger F
e9189f965f
JS: Port LogInjection
2023-10-13 13:15:04 +02:00
Asger F
ae680e747b
JS: Port LoopBoundInjection
2023-10-13 13:15:04 +02:00
Asger F
40d68cb4dc
JS: Port CleartextStorage
2023-10-13 13:15:04 +02:00
Asger F
b8a6f81669
JS: Port CleartextLogging
2023-10-13 13:15:04 +02:00
Asger F
a5c221fcfc
JS: Port PrototypePollutingMergeCall
2023-10-13 13:15:04 +02:00
Asger F
adf7d5409d
JS: Port PrototypePollutingFunction
2023-10-13 13:15:04 +02:00
Asger F
f1f45927b1
JS: Port PrototypePollutingAssignment
2023-10-13 13:15:04 +02:00
Asger F
81d2721248
JS: Port ClientSideUrlRedirect
2023-10-13 13:15:04 +02:00
Asger F
46fd727a55
JS: Port ServerSideUrlRedirect
2023-10-13 13:15:04 +02:00
Asger F
92816b1c9a
JS: Port ClientSideRequestForgery
2023-10-13 13:15:03 +02:00
Asger F
b2216627be
JS: Port RequestForgery
2023-10-13 13:15:03 +02:00
Asger F
d7b4e0c206
JS: Port ExceptionXss
2023-10-13 13:15:03 +02:00
Asger F
cf5450dbd5
JS: Port XssThroughDom
2023-10-13 13:15:03 +02:00
Asger F
5f05232e02
JS: Port StoredXss
2023-10-13 13:15:03 +02:00
Asger F
46b90e51fc
JS: Port ReflectedXss
2023-10-13 13:15:03 +02:00
Asger F
e091fdefa4
JS: Port DomBasedXss
2023-10-13 13:15:03 +02:00
Asger F
2818fa62d6
JS: Updates to shared Xss.qll
2023-10-13 13:15:03 +02:00
Asger F
547a8a958a
JS: Port SqlInjection
2023-10-13 13:15:03 +02:00
Asger F
65e9706c8e
JS: Port TaintedPath
2023-10-13 13:15:03 +02:00
Asger F
fcfab5238e
JS: Port CodeInjection
2023-10-13 13:15:03 +02:00
Asger F
17233a6749
JS: Port CommandInjection
2023-10-13 13:15:03 +02:00
Asger F
ccd6d3dcd7
JS: Port example queries
2023-10-13 13:15:03 +02:00
Asger F
449ec72dbe
JS: Port experimental queries
2023-10-13 13:15:03 +02:00
Asger F
aa5a2836f5
JS: Update barriers in TaintedObject
2023-10-13 13:15:03 +02:00
Asger F
bc68b6a7f8
JS: Add AdHocWhitelistSanitizer::getABarrierNode()
...
This sanitizer guard is opt-in, i.e. not an AdditionalSanitizerGuardNode.
2023-10-13 13:15:03 +02:00
Asger F
26f7f94246
JS: Expose default taint steps/sanitizers
...
We need access to these in order to port taint-tracking configurations
where only some flow labels should use taint steps. This isn't supported
by the shared data flow library.
Such queries must therefore be converted to plain data-flow
configurations that explicitly add taint steps to the relevant flow
states.
2023-10-13 13:15:03 +02:00
Asger F
c924b4a220
JS: Expose shared API in DataFlow/TaintTracking modules
2023-10-13 13:15:03 +02:00
Asger F
1ed3235639
JS: use BarrierGuards
2023-10-13 13:15:03 +02:00
Asger F
277292e3b9
JS: Improve performance of barrier guards without pruning
2023-10-13 13:15:03 +02:00
Asger F
06fd9c2359
JS: Add barrier guard library
2023-10-13 13:14:43 +02:00
Asger F
46e4cdc623
JS: Disallow consecutive captured contents
2023-10-13 13:14:43 +02:00
Asger F
7bcf8b858b
JS: Capture flow
2023-10-13 13:14:43 +02:00
Asger F
16df2c31bb
Create DataFlowImplConsistency.qll
2023-10-13 12:42:41 +02:00
Asger F
3ef478669b
JS: Collapse some cached stages
2023-10-13 12:42:41 +02:00
Asger F
9fef8803ed
JS: Avoid BarrierGuardNode's range from depending on Configuration
2023-10-13 12:42:41 +02:00
Asger F
e31ae3a1bf
JS: Model JSON.stringify with "deep" read operators
2023-10-13 12:42:41 +02:00
Asger F
0c2e52baba
JS: Summary/steps for iterators and generators
2023-10-13 12:42:41 +02:00
Asger F
da3a0de814
JS: Port String#replace to flow summary
2023-10-13 12:42:41 +02:00
Asger F
f0c2afe39e
JS: Add flow summaries for maps and sets
2023-10-13 12:42:40 +02:00
Asger F
5054c43b18
JS: Add flow summaries/steps for promises and async/await
2023-10-13 12:42:40 +02:00
Asger F
4319b07798
JS: Add flow summaries for Arrays
2023-10-13 12:42:40 +02:00
Asger F
a31e251529
JS: Add flow summaries for core methods
2023-10-13 12:42:40 +02:00
Asger F
46fec8ea7e
JS: Add AdditionalFlowInternal
...
This provides access to more features than we want to expose publicly at the moment, but is useful for modelling certain language features.
2023-10-13 12:42:40 +02:00
Asger F
3f20d71a9b
JS: Add legacy post-update step
...
This is to ensure getALocalSource() can be replaced by getPostUpdateNode() as the base of a store
2023-10-13 12:42:40 +02:00
Asger F
6037ff553c
JS: Add LegacyPreUpdateStep
...
This contributes to both LegacyFlowStep and SharedTypeTrackingStep.
That is, this is for steps that are used by type-tracking and the old data flow library, but not the new data flow library.
2023-10-13 12:42:40 +02:00
Asger F
27c7d5004a
JS: Do the same for additional taint steps
2023-10-13 12:42:40 +02:00
Asger F
1afe06e3a5
JS: Add "additional" and "legacy" steps
...
See the comment at the top of AdditionalFlowSteps.qll
2023-10-13 12:42:40 +02:00
Asger F
c24a0e00f5
JS: Move SharedTaintStep to AdditionalTaintSteps.qll
...
NOTE that this commit only moves around code. There are no changes.
2023-10-13 12:42:40 +02:00
Asger F
5bccc652c8
JS: Move SharedFlowStep to AdditionalFlowSteps.qll
...
NOTE that this commit only moves around code. There are no changes.
2023-10-13 12:42:40 +02:00
Asger F
293899d648
JS: Add 'Awaited' token
2023-10-13 12:42:40 +02:00
Asger F
32070abb27
JS: Implicitly treat array steps as taint steps
2023-10-13 12:42:40 +02:00
Asger F
60101f5e6a
JS: Instantiate flow summary library
2023-10-13 12:42:40 +02:00
Asger F
8dc0800526
JS: Add the shared FlowSummaryImpl.qll file
2023-10-13 12:42:40 +02:00
Asger F
f316da78d2
JS: Add FunctionSelfReferenceNode
2023-10-13 12:42:40 +02:00
Asger F
760873c01c
JS: Basic instantiation of shared library
2023-10-13 12:42:40 +02:00
Asger F
3455463e71
JS: Add instantiation boilerplate
...
Note that this commit won't compile on its own, but putting the boilerplate in its own commit
2023-10-13 12:42:40 +02:00
Asger F
c839822eb9
JS: Add PostUpdateNode
2023-10-13 12:42:40 +02:00
Asger F
01952f17bf
JS: Add some missing getContainer() predicates
2023-10-13 12:42:40 +02:00
Asger F
21300eef4c
JS:Add ConstructorThisArgumentNode
2023-10-13 12:42:40 +02:00
Asger F
b499c6075a
JS: Add Contents.qll
2023-10-13 12:42:40 +02:00
Asger F
79e7aae9f6
JS: Add TEarlyStageNode
2023-10-13 12:42:39 +02:00
Asger F
51ef0e5836
JS: Move TNode into a cached module
2023-10-13 12:42:39 +02:00
Asger F
60b179bda2
Shared: add DeduplicatePathGraph
...
Note that there is a separate PR open with this library
2023-10-13 12:42:39 +02:00