Граф коммитов

699 Коммитов

Автор SHA1 Сообщение Дата
Anders Schack-Mulligen 71f8ccf45f
Merge pull request #15654 from aschackmull/java/static-init-vec-query-perf
Java: Switch helper flow from Global to SimpleGlobal in StaticInitializationVectorQuery.
2024-02-21 10:51:16 +01:00
github-actions[bot] 37f8fa3413 Post-release preparation for codeql-cli-2.16.3 2024-02-20 16:50:47 +00:00
github-actions[bot] 6d061fbc35 Release preparation for version 2.16.3 2024-02-20 14:26:23 +00:00
Anders Schack-Mulligen 5a348a5048 Dataflow: SimpleGlobal / Typetracker perf fix. 2024-02-20 14:40:28 +01:00
Tony Torralba 1704bfe2bf
Merge pull request #15585 from atorralba/atorralba/go/promote-jwt-unsafe-verification
Go: Promote `go/missing-jwt-signature-check` from experimental
2024-02-19 15:35:44 +01:00
Anders Schack-Mulligen 2fa8c2f992
Merge pull request #15634 from aschackmull/dataflow/simpleglobal-fixreads
Dataflow: Bugfix for field reads in SimpleGlobal.
2024-02-19 14:02:38 +01:00
Anders Schack-Mulligen 53801e8efb Dataflow: Bugfix for field reads in SimpleGlobal. 2024-02-16 14:00:04 +01:00
Anders Schack-Mulligen 03f7968dbf Dataflow: Fix flow-feature bug. 2024-02-16 11:38:30 +01:00
Tony Torralba 551875cb5a Add 'jwt' as valid sink kind 2024-02-14 17:25:08 +01:00
Anders Schack-Mulligen 393251dde6
Merge pull request #15582 from hvitved/dataflow/cache-viable-callable-ext
Data flow: Cache `viableCallableExt`
2024-02-14 10:31:43 +01:00
Tom Hvitved bc8761c51b Data flow: Cache `viableCallableExt` 2024-02-13 14:12:50 +01:00
Asger F faefa056eb
Merge pull request #15507 from asgerf/shared/outbarrier-bugfix
Shared: fix a bug in stateful outbarriers
2024-02-12 21:44:49 +01:00
Nick Rolfe b2ee5808f0
Merge pull request #15496 from github/nickrolfe/loc-fresh-ids
Tree-sitter extractors: use fresh IDs for locations
2024-02-12 09:54:09 +00:00
Tom Hvitved 1ea7717714 Capture flow: Take overwrites in nested scopes into account 2024-02-09 14:49:23 +01:00
Anders Schack-Mulligen 4fcb90298d Dataflow: Add change note. 2024-02-09 11:32:08 +01:00
Anders Schack-Mulligen b7d4a6926f Dataflow: Add empty provenance column to PathGraph. 2024-02-09 11:27:30 +01:00
github-actions[bot] b5139078d0 Post-release preparation for codeql-cli-2.16.2 2024-02-06 19:22:35 +00:00
github-actions[bot] c1b35fbf47 Release preparation for version 2.16.2 2024-02-05 17:58:57 +00:00
Nick Rolfe 514a92d5bd Tree-sitter extractors: use fresh IDs for locations
Since locations for any given source file are never referenced in any
TRAP files besides the one for that particular source file, it's not
necessary to use global IDs. Using fresh IDs will reduce the size of the
ID pool (both on disk and in memory) and the speed of multi-threaded
TRAP import.

The one exception is the empty location, which still uses a global ID.
2024-02-02 15:06:10 +00:00
Joe Farebrother 031bd8bd0c
Merge pull request #15281 from joefarebrother/android-sensitive-ui-notif
Java: Add query for exposure of sensitive information to android notifiactions
2024-01-26 16:42:55 +00:00
Asger F f15ead6130 Shared: check stateful outBarrier as part of pathStep SCC 2024-01-26 11:14:23 +01:00
Asger F d1310c74fc Shared: remove old stateful outBarrier check 2024-01-26 11:14:23 +01:00
Mathias Vorreiter Pedersen 2db76c7fad
Merge pull request #15434 from MathiasVP/fix-dataflow-join-order
DataFlow: Fix join order
2024-01-25 16:32:14 +00:00
Henry Mercer 10343dd822
Merge pull request #15416 from github/post-release-prep/codeql-cli-2.16.1
Post-release preparation for codeql-cli-2.16.1
2024-01-25 14:15:25 +00:00
erik-krogh 396da117bb
remove an FP in overly-large-range for [@-Z] 2024-01-25 14:15:06 +01:00
Mathias Vorreiter Pedersen db929ccf9b DataFlow: Fix join order. 2024-01-25 12:51:35 +00:00
github-actions[bot] d0b74c00fe Post-release preparation for codeql-cli-2.16.1 2024-01-23 23:02:29 +00:00
github-actions[bot] 7ef611e6dc Release preparation for version 2.16.1 2024-01-23 19:45:16 +00:00
Joe Farebrother 0acb647e7d Fix tests and add notification sink kind to model verification 2024-01-23 09:51:41 +00:00
erik-krogh 865df920f9
add change-notes 2024-01-22 19:30:57 +01:00
erik-krogh 8be7eadace
delete outdated deprecations 2024-01-22 09:11:35 +01:00
Rasmus Wriedt Larsen f20d4e22fe
Handle only `exclude` 2024-01-18 13:54:45 +01:00
Rasmus Wriedt Larsen 54c7c5e8be
Tree sitter extractor: Proper handling of `LGTM_INDEX_FILTERS`
If someone had used `LGTM_INDEX_FILTERS=exclude:**/*\ninclude:*.rb`
before, we would have mistakenly excluded all files :|
(LGTM_INDEX_FILTERS is a prioritized list where later matches take
priority over earlier ones)

This change is needed to support adding `exclude:**/*` as the first
filter if `paths` include a glob, which currently causes bad behavior in
the Python extractor. However, we can first introduce that change once
this PR has been merged.

I realize this change can cause more folders and files to be traversed
(since they are not just skipped with --exclude). We plan to make a
better long term fix which should bring back the previous performance.
2024-01-18 11:44:31 +01:00
Calum Grant 4660a25d44
Merge pull request #15354 from github/calumgrant/shared-diagnostics
C++/Swift: Create shared library and share Diagnostics
2024-01-17 15:40:12 +00:00
Calum Grant d57fc3d7db C++: Remove unneeded includes 2024-01-17 14:34:28 +00:00
Calum Grant 51c5afff8b Create shared/cpp library and move Diagnostics there 2024-01-17 14:23:18 +00:00
erik-krogh 1a8a70dc1b
mark the range [0-?] as good in the overly-large-range query 2024-01-17 13:11:57 +01:00
Alexander Eyers-Taylor 934474681d
Merge pull request #15254 from github/post-release-prep/codeql-cli-2.16.0
Post-release preparation for codeql-cli-2.16.0
2024-01-16 14:50:40 +00:00
github-actions[bot] 57df8b92df Post-release preparation for codeql-cli-2.16.0 2024-01-15 15:00:50 +00:00
Tom Hvitved 295198744b Ruby: Handle captured `yield` calls 2024-01-10 14:25:15 +01:00
Tom Hvitved c9cf2a899c
Merge pull request #15260 from hvitved/dataflow/may-benefit-from-cctx-simplify
Data flow: Remove column from `mayBenefitFromCallContext`
2024-01-10 11:43:15 +01:00
Tom Hvitved f90201eb56 Data flow: Remove column from `mayBenefitFromCallContext` 2024-01-09 11:34:43 +01:00
Ed Minnix 65d05bf3de Add environment-injection to Model Validation 2024-01-08 09:38:43 -05:00
github-actions[bot] a6c8cc9551 Release preparation for version 2.16.0 2024-01-08 13:11:26 +00:00
Tom Hvitved 25e2271b2f
Merge pull request #15157 from hvitved/dataflow/fwd-flow-in-non-linear-rec
Data flow: Avoid unnecessary non-linear recursion in `fwdFlowIn`
2024-01-08 10:31:51 +01:00
Aditya Sharad b1803d0ac2
Merge rc/3.12 into main 2023-12-21 16:40:51 -08:00
Tom Hvitved 5be4fe1887 Data flow: Avoid unnecessary non-linear recursion in `fwdFlowIn` 2023-12-19 21:03:03 +01:00
github-actions[bot] 8f72b0e4f7 Post-release preparation for codeql-cli-2.15.5 2023-12-19 10:32:57 +00:00
github-actions[bot] 19af35b29a Release preparation for version 2.15.5 2023-12-18 21:22:44 +00:00
yoff e0c027f13c
Merge pull request #14848 from hvitved/python/shared-type-tracking
Python: Adopt shared type tracking library
2023-12-18 21:14:42 +01:00
Anders Schack-Mulligen 07ad770437 Dataflow: Deprecate FlowStateString. 2023-12-14 15:05:33 +01:00
Tom Hvitved 84aa9f17a0 Python/Ruby: Use `SummaryTypeTracker` from `typetracking` pack 2023-12-14 13:25:18 +01:00
Tom Hvitved 1e24de7e83 Copy `SummaryTypeTracker.qll` to `typetracking` pack 2023-12-14 13:22:48 +01:00
Tom Hvitved 4776e9ccd2 Type tracking: Allow for a non-standard `flowsTo` predicate 2023-12-14 12:36:09 +01:00
Tom Hvitved c8b4a215bc
Merge pull request #14573 from hvitved/flow-summary-impl-param
Move `FlowSummaryImpl.qll` to `dataflow` pack
2023-12-14 12:24:15 +01:00
Tom Hvitved 8f0e0b6559
Merge pull request #15090 from hvitved/inline-flow-test-get-arg-string
InlineFlowTest: Allow for custom `getArgString`
2023-12-14 10:53:55 +01:00
Tom Hvitved 7da10e0013
Merge pull request #15095 from hvitved/dataflow/boolean-class
Data flow: Use `Boolean` class
2023-12-14 10:29:52 +01:00
Tom Hvitved 8fc6fb1ec0
Apply suggestions from code review
Co-authored-by: yoff <lerchedahl@gmail.com>
2023-12-14 10:10:53 +01:00
Tom Hvitved 098afb935b Address more review comments 2023-12-14 09:48:45 +01:00
Tom Hvitved 5a426d1800 Data flow: Use `Boolean` class 2023-12-14 09:04:16 +01:00
Jeroen Ketema 99e65df6ce
Merge remote-tracking branch 'upstream/rc/3.12' into mb12 2023-12-13 15:43:39 +01:00
Tom Hvitved 28a2d05cf8 InlineFlowTest: Allow for custom `getArgString` 2023-12-13 13:58:44 +01:00
Tom Hvitved 3c2336e40b
Merge pull request #15074 from hvitved/dataflow/get-node-type-cached
Data flow: Use cached `nodeDataFlowType` instead of `getNodeType`
2023-12-12 14:49:41 +01:00
Tom Hvitved b3929e2375 Data flow: Use cached `nodeDataFlowType` instead of `getNodeType` 2023-12-12 13:46:39 +01:00
Anders Schack-Mulligen 3bf6c0fe02 Rangeanalysis: Focus pre-bound calculation. 2023-12-11 14:07:10 +01:00
Anders Schack-Mulligen c14d917a76 Rangeanalysis: Prune range calculation. 2023-12-11 14:07:10 +01:00
Anders Schack-Mulligen 58d463dd33 Rangeanalysis: Minor refactor for bound steps. 2023-12-11 14:07:10 +01:00
Anders Schack-Mulligen 73671b6da3 Rangeanalysis: Refactor base bounds. 2023-12-11 14:07:10 +01:00
Anders Schack-Mulligen 6b178fb64a Rangeanalysis: Preparatory refactor for bounds sharing. 2023-12-11 14:07:10 +01:00
Tom Hvitved cdf59e1e1d Ruby: Cache more predicates 2023-12-11 10:15:17 +01:00
Tom Hvitved adc4455f09 Parameterize `FlowSummaryImpl.qll` 2023-12-10 11:11:05 +01:00
Tom Hvitved 41fa39eb7c Parameterize `AccessPathSyntax.qll` 2023-12-10 11:11:05 +01:00
Tom Hvitved fd7e3454d6 Copy `FlowSummaryImpl.qll` to `dataflow` pack 2023-12-10 11:11:05 +01:00
Tom Hvitved 4fbd806d70 Copy `AccessPathSyntax.qll` to `dataflow` pack 2023-12-10 11:11:05 +01:00
Anders Schack-Mulligen 75d8da9007 Dataflow: Add change note about deprecation. 2023-12-08 14:25:20 +01:00
github-actions[bot] 92af5f5386 Post-release preparation for codeql-cli-2.15.4 2023-12-06 22:59:22 +00:00
github-actions[bot] c04457e9e7 Release preparation for version 2.15.4 2023-12-06 21:11:50 +00:00
Mathias Vorreiter Pedersen 911f1543e0 DataFlow: Adjust QLDoc. 2023-11-28 15:26:48 +00:00
Mathias Vorreiter Pedersen 339bf1363a DataFlow: s/flowThroughStepAllowed/validParameterAliasStep. 2023-11-28 14:32:23 +00:00
Mathias Vorreiter Pedersen 064f68fdca DataFlow: Add a predicate for modifying which dataflow steps participate in flow-through summaries. 2023-11-28 14:27:15 +00:00
Tom Hvitved 1a6886cf99 SSA: Add locations to ease debugging 2023-11-22 08:37:02 +01:00
Tom Hvitved fab6813a49
Merge pull request #14815 from hvitved/type-tracking/param-consistency-checks
Type tracking: Parameterize consistency checks
2023-11-20 11:05:06 +01:00
github-actions[bot] bad499e360 Post-release preparation for codeql-cli-2.15.3 2023-11-17 14:35:41 +00:00
Tom Hvitved 40a07de566 Type tracking: Parameterize consistency checks 2023-11-16 15:23:23 +01:00
github-actions[bot] 6ec9b95072 Release preparation for version 2.15.3 2023-11-16 13:07:16 +00:00
Tom Hvitved 57f6859ddc Shared: Update type tracking consistency checks 2023-11-15 17:08:05 +01:00
Tom Hvitved 5f087f0084 Shared: Port features from Ruby's type tracking library to the shared library
- Cache relevant predicates.
- Expose some predicates and classes (only exposed internally).
- Make some top-level `inline_late` predicates member predicates.
- Actually eliminate type check in `flowsTo`.
- Fix bug in `getACompatibleTypeTracker`.
- Adopt the `CallGraphConstruction` module.
2023-11-15 17:08:05 +01:00
Tom Hvitved f66f7ce8d7 Shared: Split up `TypeTracking.qll` into two files 2023-11-15 17:07:27 +01:00
Anders Schack-Mulligen bf6cfd3bef Rangeanalysis: Simplify api. 2023-11-13 10:35:44 +01:00
Anders Schack-Mulligen 30aefabb2a Rangeanalysis: Rename predicate. 2023-11-13 10:35:44 +01:00
Anders Schack-Mulligen f05b75e04f Rangeanalysis: RIP standard order. 2023-11-13 10:35:44 +01:00
Anders Schack-Mulligen c28f54a78b Rangeanalysis: Remove superfluous pragmas. These appear useless after the abolishment of the different delta orders. 2023-11-13 10:35:44 +01:00
Anders Schack-Mulligen 71e25521cf Rangeanalysis: Use SsaReadPositionBlock.getAnSsaRead. 2023-11-13 10:35:44 +01:00
Anders Schack-Mulligen 3a73faf061 Rangeanalysis: Remove unused getAlternateType predicates. 2023-11-13 10:35:43 +01:00
Anders Schack-Mulligen 657c29f409 Java/C++: Share valueFlowStep. 2023-11-09 20:24:28 +01:00
Anders Schack-Mulligen b8e7e1d15e Java/C++: Share ssaUpdateStep. 2023-11-09 16:02:44 +01:00
Anders Schack-Mulligen daffae020b Java/C++: Share eqFlowCond. 2023-11-09 16:00:46 +01:00
Anders Schack-Mulligen 1f4cd74a1c Java/C++: Move SsaReadPosition to shared qlpack. 2023-11-08 12:11:17 +01:00
Anders Schack-Mulligen 45ae4ed362
Merge pull request #14711 from aschackmull/shared/rangeutil-share2
Java/C++/RangeAnalysis: Move a couple of utility predicates to shared qlpack
2023-11-08 08:33:12 +01:00
Anders Schack-Mulligen 12cba7909b Java/C++: Move range util guard-controls predicates to shared pack. 2023-11-07 15:14:34 +01:00
Anders Schack-Mulligen f2ca52d951 Java/C++: Move range util backEdge predicate to shared pack. 2023-11-07 15:14:34 +01:00
Geoffrey White e8a466a02c Update dead link. 2023-11-07 09:26:07 +00:00
Anders Schack-Mulligen f2b52650d5 Rangeanalysis: Filter useless modulo results. 2023-11-02 15:29:56 +01:00
Anders Schack-Mulligen 7bf271fb6c RangeAnalysis: Improve bounds that rely on relative modulus. 2023-11-02 12:51:48 +01:00
Anders Schack-Mulligen 484d0fe4cd
Merge pull request #14659 from aschackmull/shared/modulus-analysis
Java/C++: Share modulus analysis
2023-11-02 12:45:35 +01:00
Geoffrey White 431d9d58f1
Merge pull request #14639 from geoffw0/anchorquery
Swift: New query for Missing Regular Expression Anchor
2023-11-02 09:20:19 +00:00
Anders Schack-Mulligen 7c3684dbb7 RangeAnalysis: Rename semExprModulus to exprModulus. 2023-11-02 08:19:23 +01:00
Anders Schack-Mulligen ac115e0a6f Rangeanalysis: Reshuffle perf fix. This should result in the same join-order, but with less materialisation. 2023-11-01 15:59:24 +01:00
Anders Schack-Mulligen bb2bbd2d4d Rangeanalysis: Remove useless pragma. 2023-11-01 15:59:24 +01:00
Anders Schack-Mulligen f6794fe859 Rangeanalysis: Adjust modulo analysis comment. 2023-11-01 15:59:24 +01:00
Anders Schack-Mulligen a7f3ef1a6c Rangeanalysis: Parameterise shared modulus analysis. 2023-11-01 15:59:24 +01:00
Anders Schack-Mulligen 8e2b17cd86 Rangeanalysis: Copy C++ ModulusAnalysis file verbatim. 2023-11-01 15:59:24 +01:00
Anders Schack-Mulligen 6d859daf3d
Merge pull request #14656 from aschackmull/shared/range-utils
Rangeanalysis: Share ssaRead predicate
2023-11-01 15:57:52 +01:00
Anders Schack-Mulligen 048a7c4e42 Rangeanalysis: Rename SsaBound.getAVariable to getVariable. 2023-11-01 11:58:06 +01:00
Anders Schack-Mulligen 48291dd32d Rangeanalysis: Remove superfluous ignoreZeroLowerBound. 2023-11-01 11:51:46 +01:00
Edward Minnix III 1ec1dd368d
Merge pull request #13978 from egregius313/egregius313/java/mad/convert-sensitive-api-to-mad
Java: Convert `SensitiveApi.qll` to use Models-as-Data
2023-10-31 15:25:42 -04:00
Anders Schack-Mulligen 34b9791e46 Rangeanalysis: Remove superfluous ignoreSsaReadCopy. 2023-10-31 15:32:25 +01:00
Anders Schack-Mulligen 322e6c91be Rangeanalysis: Remove superfluous specificSsaRead. 2023-10-31 15:30:36 +01:00
Anders Schack-Mulligen 8b6c940e76 Rangeanalysis: Remove superfluous ignoreSsaReadAssignment. 2023-10-31 15:28:37 +01:00
Anders Schack-Mulligen 6d6f89e71e Rangeanalysis: Remove superfluous ignoreSsaReadArithmeticExpr. 2023-10-31 15:25:28 +01:00
Anders Schack-Mulligen a39a94ca8e Rangeanalysis: Switch to shared ssaRead predicate. 2023-10-31 15:23:05 +01:00
Anders Schack-Mulligen 19644a8f07 Rangeanalysis: Implement shared ssaRead predicate 2023-10-31 15:07:11 +01:00
github-actions[bot] 2b939fdf08 Post-release preparation for codeql-cli-2.15.2 2023-10-30 16:06:51 +00:00
Geoffrey White 8f115bfd06 Swift: Implement 'isUsedAsReplace'. 2023-10-30 14:33:42 +00:00
github-actions[bot] 4641990021 Release preparation for version 2.15.2 2023-10-30 11:05:53 +00:00
Dave Bartolomeo b18a6d5e0b
Merge pull request #14582 from github/dbartol/threat-models-2
Java: Threat model implementation with priorities.
2023-10-27 09:33:53 -04:00
Anders Schack-Mulligen e9cb272396
Merge pull request #14615 from aschackmull/dataflow/stage-alias
Dataflow: simplify using stage aliases.
2023-10-27 14:17:30 +02:00
Anders Schack-Mulligen 10c657bc23 Dataflow: simplify using stage aliases. 2023-10-27 13:40:21 +02:00
Mathias Vorreiter Pedersen 9cae488ef4
Merge pull request #14612 from aschackmull/dataflow/type-doc
Dataflow: Improve qldoc on the type system.
2023-10-27 10:39:57 +01:00
Anders Schack-Mulligen 776e35279d Dataflow: Improve qldoc on the type system. 2023-10-27 10:43:54 +02:00
Michael Nebel e4276f7adb
Java: Apply suggestions from code review
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com>
2023-10-27 10:34:20 +02:00
Anders Schack-Mulligen b106db6fda Dataflow: Add change note for partial flow api change. 2023-10-27 09:46:46 +02:00
Dave Bartolomeo d2afb20f3f Merge remote-tracking branch 'origin/main' into dbartol/threat-models-2 2023-10-26 14:05:40 -04:00
Dave Bartolomeo 9800458467
Update shared/threat-models/codeql/threatmodels/ThreatModels.qll
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2023-10-26 13:46:55 -04:00
Dave Bartolomeo 927eb8424d
Update shared/threat-models/codeql/threatmodels/ThreatModels.qll
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2023-10-26 13:46:37 -04:00
Dave Bartolomeo 8d9e4d391f
Update shared/threat-models/codeql/threatmodels/ThreatModels.qll
Co-authored-by: Michael Nebel <michaelnebel@github.com>
2023-10-26 13:46:28 -04:00
Mathias Vorreiter Pedersen 30ecb4b0c8
Merge pull request #14588 from aschackmull/shared/rangeanalysis
C++/Java: Share core range analysis
2023-10-26 16:32:46 +01:00
Anders Schack-Mulligen a2e3b37847 Dataflow: Fix accidental visibility. 2023-10-26 11:28:52 +02:00
Anders Schack-Mulligen 4dca4a7389 Dataflow: Restrict partial flow to either forward or reverse flow. 2023-10-26 10:33:03 +02:00
Ed Minnix 3b0b5e403c Replace crypto-parameter with credentials-key 2023-10-25 14:31:55 -04:00
Ed Minnix 24c809b3b5 Move `credentials-%` sink kinds to "shared" status 2023-10-25 14:31:54 -04:00
Ed Minnix c6641dfbf3 fix model validator to credentials-password 2023-10-25 14:31:54 -04:00
Ed Minnix a85df81b67 Rename sink kind to "credentials-username" to match naming convention 2023-10-25 14:31:54 -04:00
Ed Minnix 958c6ff289 Remove credential-other 2023-10-25 14:31:53 -04:00
Ed Minnix 4aec302fb7 Create new sink kinds 2023-10-25 14:31:53 -04:00
Anders Schack-Mulligen 283d6efdf8 Rangeanalysis/Java/C++: Address some ql4ql findings. 2023-10-25 14:06:35 +02:00
Anders Schack-Mulligen c1c4a5bfcf Rangeanalysis: Copy qldoc and simplification from Java. 2023-10-25 11:17:02 +02:00
Anders Schack-Mulligen cd44d67529 Rangeanalysis: Add temporary Java compatibility flag. 2023-10-25 11:17:02 +02:00
Anders Schack-Mulligen 06fe10bbe9 Rangeanalysis: Bugfix division with float representation. 2023-10-25 11:17:02 +02:00
Anders Schack-Mulligen 232c147f6b Rangeanalysis: Port join-order fix from Java version. 2023-10-25 11:17:02 +02:00
Anders Schack-Mulligen 38274db205 Rangeanalysis: Parameterise library. 2023-10-25 11:17:01 +02:00
Anders Schack-Mulligen 169ba03778 Rangeanalysis: Copy C++ version verbatim. 2023-10-25 11:17:01 +02:00
Anders Schack-Mulligen aed830cf1b Rangeanalysis: Make new qlpack 2023-10-25 11:17:01 +02:00
Dave Bartolomeo 33f10d8d19 Better handling of `all` threat model without too many binding sets 2023-10-24 13:59:15 -04:00
Dave Bartolomeo 5fd56ce866 Alternate threat model implementation 2023-10-24 13:12:37 -04:00
Joe Farebrother 3f11d83b7b
Merge pull request #14500 from joefarebrother/shared-filepath-normalize
Shared: Add library for filepath normalization
2023-10-23 16:09:44 +01:00
Dave Bartolomeo 15e9838f16 Add a readme file 2023-10-19 17:27:21 -04:00
Dave Bartolomeo c268163804 warnOnImplicitThis 2023-10-19 17:18:47 -04:00
Dave Bartolomeo 910b2a98f1 Merge remote-tracking branch 'origin/main' into dbartol/threat-models 2023-10-19 17:07:38 -04:00
Dave Bartolomeo bd7de83aab Use extension packs for threat models 2023-10-19 17:07:26 -04:00
github-actions[bot] 8dcd8b9e5b Post-release preparation for codeql-cli-2.15.1 2023-10-17 20:24:00 +00:00
Joe Farebrother aa418dc7d0 Add more line breaks in qldoc 2023-10-17 12:51:22 +01:00
github-actions[bot] 3b3c036626 Release preparation for version 2.15.1 2023-10-16 17:49:39 +00:00
Joe Farebrother 05162c68ec Fix typo 2023-10-16 13:43:06 +01:00
Joe Farebrother aade79f723 Improve qldoc and fix changenote 2023-10-16 13:02:28 +01:00
Joe Farebrother 9097d93ac7 Add shared library for filepath normalization 2023-10-13 17:07:47 +01:00
erik-krogh fa1e8ee426
add getACodepoint to the shared Strings library, and use it in NfaUtils 2023-10-12 13:38:19 +02:00
erik-krogh 116025c569
use the new codePointAt and codePointCount methods instead of regex hacks 2023-10-12 13:38:19 +02:00
Henry Mercer 1a370bfbbe
Merge pull request #14443 from github/post-release-prep/codeql-cli-2.15.0
Post-release preparation for codeql-cli-2.15.0
2023-10-11 17:39:04 +01:00
github-actions[bot] ae6af17c74 Post-release preparation for codeql-cli-2.15.0 2023-10-11 14:19:20 +00:00
Erik Krogh Kristensen 625e889c62
Merge pull request #14339 from erik-krogh/range-printing
JS/PY/RB/Java: escape unicode chars in overly-large-range
2023-10-09 14:22:38 +02:00
Edward Minnix III 8e653d01a8
Merge pull request #14127 from egregius313/egregius313/java/mad/localuserinput
Java: Convert implementations of `LocalUserInput` to Models-as-Data
2023-10-04 12:55:44 -04:00
github-actions[bot] 9fe993bec3 Release preparation for version 2.15.0 2023-10-04 14:15:27 +00:00
Ed Minnix e122d81336 Add new source kinds for threat modeling 2023-10-03 22:29:00 -04:00
Henry Mercer da92da2204 Bump minor versions of packs we regularly release 2023-10-03 16:31:23 +01:00
Henry Mercer f3847b3f51 Merge branch 'main' into henrymercer/rc-3.11-mergeback 2023-10-03 16:30:23 +01:00
Tom Hvitved 2684a22484
Merge pull request #14255 from hvitved/dataflow/perf-improvements
Data flow: Performance improvements
2023-10-02 16:37:24 +02:00
Tom Hvitved 4fa93a077c Address review comments 2023-10-02 09:03:12 +02:00
erik-krogh 5d4b542995
escape unicode chars in overly-large-range 2023-09-28 20:16:09 +02:00
Asger F 0d96ed8aee
Merge pull request #14305 from asgerf/shared/flow-state-inout-barriers
Shared: add in/out barriers with flow state
2023-09-28 11:07:23 +02:00
Anders Schack-Mulligen 80f00bcb0b FileSystem: Improve regex by only matching once instead of 3x. 2023-09-28 08:58:55 +02:00
Anders Schack-Mulligen cfd08f23a5 FileSystem: Fix qldoc. 2023-09-28 08:58:55 +02:00
Asger F ba1f8766aa Shared: update PartialPathNode accordingly 2023-09-27 14:38:28 +02:00
Asger F 6792592a15 Shared: add late checks for stateful in/out barriers 2023-09-27 14:38:28 +02:00
Taus ff35f9fb8c Shared: Clean up `NodeInfo` in shared extractor
I was perusing the shared extractor the other day, when I came across
the `NodeInfo` struct. I noticed that the `fields` and `subtypes` fields
on this struct had two seemingly identical ways of expressing the same
thing: `None` and `Some(empty)` (where `empty` is respectively the empty
map and the empty vector). As far as I can tell, there's no semantic
difference in either case, so we can just elide the option type entirely
and use the empty value directly. This has the nice side-effect of
cleaning up some of the other code.
2023-09-27 12:29:07 +00:00
Tom Hvitved e7a3dc83bc Data flow: Performance improvements 2023-09-26 20:42:03 +02:00
Asger F 6e869452b5 Shared: remove pragma[inline] implied by bindingset 2023-09-26 15:42:24 +02:00
Asger F c7e892fa8e Shared: change note 2023-09-26 15:24:29 +02:00
Asger F cfed7e9b6c Shared: add in/out barriers with flow state 2023-09-25 09:58:49 +02:00
Anders Schack-Mulligen aa2c7a79d6 Dataflow: Add bindingset 2023-09-25 08:55:09 +02:00
Anders Schack-Mulligen 66da997b7b Dataflow: Make use of defaults for language-specific hooks. 2023-09-22 14:54:22 +02:00
Anders Schack-Mulligen 7e04ac55b7
Merge pull request #14268 from aschackmull/java/xmlparsers-typetrack
Java/Dataflow: Add new light-weight data flow api and use it in XmlParsers
2023-09-21 13:33:21 +02:00
Anders Schack-Mulligen 13f7daf71e
Merge pull request #13982 from aschackmull/dataflow/typeflow-calledge-pruning
Dataflow: Add type-based call-edge pruning.
2023-09-21 13:33:08 +02:00
Anders Schack-Mulligen 3dadfa2243 Dataflow: review fixes 2023-09-21 11:52:41 +02:00
Anders Schack-Mulligen d285afba08 Typetracking: minor perf fix. 2023-09-20 14:52:49 +02:00
github-actions[bot] 3acf5244b0 Post-release preparation for codeql-cli-2.14.6 2023-09-20 10:25:10 +00:00
Anders Schack-Mulligen d7e965f863 Dataflow: Add lightweight api based on TypeTracking. 2023-09-20 10:21:21 +02:00
Anders Schack-Mulligen d7bd8c7ffd Shared/TypeTracking: Add support for flow from non-LocalSourceNode source and bugfix in smallstep. 2023-09-20 10:19:33 +02:00
Tom Hvitved 7c2df87ea2
Merge pull request #14247 from hvitved/dataflow/fix-consitency-checks
Data flow: Fix two consistency checks
2023-09-19 15:45:21 +02:00
github-actions[bot] 0a3670727f Release preparation for version 2.14.6 2023-09-19 11:40:30 +00:00
Anders Schack-Mulligen 42054539f4 Dataflow: Minor review fixes. 2023-09-19 12:12:15 +02:00
Tom Hvitved daad69bb30 Data flow: Fix two consistency checks 2023-09-18 16:36:11 +02:00
Anders Schack-Mulligen b13d026434 Dataflow: Review fixes. 2023-09-18 13:15:26 +02:00
erik-krogh 9c0682848e
use final class aliases to use `extends` instead of `instanceof` in the shared libraries 2023-09-18 10:25:49 +02:00
Anders Schack-Mulligen 74787bfba8 Dataflow: One more minor perf tweak. 2023-09-13 15:43:46 +02:00
Anders Schack-Mulligen b63d518114 Dataflow: Minor perf tweak. 2023-09-13 15:43:46 +02:00
Anders Schack-Mulligen b456ba217a Dataflow: Improve rev-to-fwd call edge pruning. 2023-09-13 15:43:46 +02:00
Anders Schack-Mulligen f456bf8d57 Dataflow: Add change note. 2023-09-13 15:43:46 +02:00
Anders Schack-Mulligen 13e7e6b983 Dataflow: Improve fwd-taken call edge predicate and improve fwd-to-rev call edge pruning. 2023-09-13 15:43:46 +02:00
Anders Schack-Mulligen 47f68504a8 Dataflow: Postpone typeflow calledge pruning until stage 3. 2023-09-13 15:43:46 +02:00
Anders Schack-Mulligen c8094d34a7 Dataflow: Add type-based call-edge pruning. 2023-09-13 15:43:45 +02:00
Tom Hvitved c13a8e41ad Data flow: Add more consistency checks 2023-09-12 20:05:05 +02:00
github-actions[bot] d699880c86 Post-release preparation for codeql-cli-2.14.4 2023-09-08 21:17:52 +00:00
github-actions[bot] abf2b12b1c Release preparation for version 2.14.4 2023-09-05 16:56:14 +00:00
Tom Hvitved 73370e7282
Merge pull request #14100 from hvitved/dataflow/consistency-pack
Data flow: Add consistency checks to shared ql pack
2023-08-31 11:47:40 +02:00
Asger F 2d5c40db31
Merge pull request #14048 from asgerf/shared/variable-capture-write-source-node
Variable capture: allow arbitrary data-flow nodes to be the source of a write
2023-08-31 10:20:48 +02:00
Tom Hvitved de7c9bdd9b Data flow: Add consistency checks to shared ql pack 2023-08-30 15:29:41 +02:00
Tom Hvitved c32c4bb6d2
Merge pull request #14086 from hvitved/csharp/perf-fixes
C#: Various performance fixes
2023-08-30 12:13:52 +02:00
yoff ae4c76c788
Merge pull request #13975 from yoff/python/parsemodechars-not-chars 2023-08-29 14:05:57 +02:00
Tom Hvitved 1ac9d2ee5b CFG: Compute `splitsToString` using `concat`, and exclude partial split sets 2023-08-29 11:23:56 +02:00
Jeroen Ketema 0d1fd88729
Merge pull request #14050 from jketema/inline-6
Consolidate all `InlineFlowTest` libraries in the dataflow qlpack
2023-08-29 09:30:35 +02:00
Dave Bartolomeo 3343b78015
Merge pull request #14074 from github/post-release-prep/codeql-cli-2.14.3
Post-release preparation for codeql-cli-2.14.3
2023-08-28 13:34:10 -04:00
github-actions[bot] 3eba77421a Post-release preparation for codeql-cli-2.14.3 2023-08-28 15:53:49 +00:00
Tom Hvitved 42fd9f0c54
Merge pull request #14047 from hvitved/dataflow/join-fix
Data flow: Fix a bad join order
2023-08-25 12:18:24 +02:00
Jeroen Ketema 9d573e5544
Consolidate all `InlineFlowTest` libraries in the dataflow qlpack 2023-08-24 21:38:46 +02:00
Rasmus Lerchedahl Petersen e9e6bce80a shared: handle empty groups in delta 2023-08-24 21:21:49 +02:00
Asger F 6c664e93ef
Merge pull request #14035 from asgerf/shared/variable-capture-nested
Variable capture: synchronize with aliases in nested scopes
2023-08-24 15:39:34 +02:00
Asger F cd7c851d64 VariableCapture: add VariableWriteSourceNode 2023-08-24 14:06:44 +02:00
Asger F 1286235773 Address review comments 2023-08-24 13:58:33 +02:00
Erik Krogh Kristensen 59de92ce64
Merge pull request #14027 from erik-krogh/py-reg-app
ReDoS: limit concretize to strings of at most length 100
2023-08-24 12:57:42 +02:00
Tom Hvitved f2eed4d8c4 Data flow: Fix a bad join order
Before
```
Evaluated relational algebra for predicate DataFlowImpl#248dabc3::MakeImpl#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Impl#DataFlow#167ac380::DataFlowMake#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Global#XSS#e59174e9::OrmTracking::Config#::C#::MkStage#Stage2#::Stage#Stage3Param#::flowThroughIntoCall#6#ffffff@0ea4e2mt with tuple counts:
           1065437   ~0%    {4} r1 = SCAN project#DataFlowImpl#248dabc3::MakeImpl#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Impl#DataFlow#167ac380::DataFlowMake#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Global#XSS#e59174e9::OrmTracking::Config#::C#::MkStage#Stage2#::Stage#Stage3Param#::fwdFlow#9#fffffffff#2 OUTPUT In.0, In.3, In.1, In.2
        1158508760   ~0%    {6} r2 = JOIN r1 WITH project#DataFlowImpl#248dabc3::MakeImpl#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Impl#DataFlow#167ac380::DataFlowMake#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Global#XSS#e59174e9::OrmTracking::Config#::C#::MkStage#Stage2#::Stage#Stage3Param#::flowIntoCallApa#6#ffffff_14023#join_rhs ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Rhs.2, Rhs.3, Rhs.4

                            {6} r3 = SELECT r2 ON In.5 != false
        1158470345   ~4%    {6} r4 = SCAN r3 OUTPUT In.4, In.1, In.2, In.0, In.3, In.5

                            {6} r5 = SELECT r2 ON In.5 = false
             38415   ~0%    {5} r6 = SCAN r5 OUTPUT In.2, In.0, In.1, In.3, In.4
                 4   ~0%    {5} r7 = JOIN r6 WITH DataFlowImplCommon#f7de413b::MakeImplCommon#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Cached::TApproxFrontNil#f ON FIRST 1 OUTPUT Lhs.4, Lhs.2, Lhs.0, Lhs.1, Lhs.3
                 4   ~0%    {6} r8 = SCAN r7 OUTPUT In.0, In.1, In.2, In.3, In.4, false

        1158470349   ~4%    {6} r9 = r4 UNION r8
             44065   ~3%    {6} r10 = JOIN r9 WITH project#DataFlowImpl#248dabc3::MakeImpl#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Impl#DataFlow#167ac380::DataFlowMake#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Global#XSS#e59174e9::OrmTracking::Config#::C#::MkStage#Stage2#::Stage#Stage3Param#::returnFlowsThrough#8#ffffffff ON FIRST 3 OUTPUT Lhs.4, Lhs.3, Lhs.0, Lhs.5, Lhs.2, Rhs.3
                            return r10
```

After
```
Evaluated relational algebra for predicate DataFlowImpl#248dabc3::MakeImpl#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Impl#DataFlow#167ac380::DataFlowMake#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Global#XSS#e59174e9::OrmTracking::Config#::C#::MkStage#Stage2#::Stage#Stage3Param#::flowThroughIntoCall#6#ffffff@979c54q9 with tuple counts:
         11095   ~0%    {4} r1 = SCAN project#DataFlowImpl#248dabc3::MakeImpl#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Impl#DataFlow#167ac380::DataFlowMake#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Global#XSS#e59174e9::OrmTracking::Config#::C#::MkStage#Stage2#::Stage#Stage3Param#::returnFlowsThrough#8#ffffffff OUTPUT In.0, In.3, In.1, In.2
        470154   ~1%    {8} r2 = JOIN r1 WITH project#DataFlowImpl#248dabc3::MakeImpl#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Impl#DataFlow#167ac380::DataFlowMake#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Global#XSS#e59174e9::OrmTracking::Config#::C#::MkStage#Stage2#::Stage#Stage3Param#::flowIntoCallApa#6#ffffff_20134#join_rhs ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2, Lhs.3, Rhs.1, Rhs.2, Rhs.3, Rhs.4

                        {8} r3 = SELECT r2 ON In.6 != false
        470152   ~0%    {8} r4 = SCAN r3 OUTPUT In.5, In.2, In.3, In.7, In.0, In.1, In.4, In.6

                        {8} r5 = SELECT r2 ON In.6 = false
             2   ~0%    {7} r6 = SCAN r5 OUTPUT In.3, In.0, In.1, In.2, In.4, In.5, In.7
             0   ~0%    {7} r7 = JOIN r6 WITH DataFlowImplCommon#f7de413b::MakeImplCommon#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Cached::TApproxFrontNil#f ON FIRST 1 OUTPUT Lhs.5, Lhs.3, Lhs.0, Lhs.6, Lhs.1, Lhs.2, Lhs.4
             0   ~0%    {8} r8 = SCAN r7 OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, In.6, false

        470152   ~0%    {8} r9 = r4 UNION r8
         44065   ~3%    {6} r10 = JOIN r9 WITH project#DataFlowImpl#248dabc3::MakeImpl#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Impl#DataFlow#167ac380::DataFlowMake#DataFlowImplSpecific#21008cd7::RubyDataFlow#::Global#XSS#e59174e9::OrmTracking::Config#::C#::MkStage#Stage2#::Stage#Stage3Param#::fwdFlow#9#fffffffff#2 ON FIRST 4 OUTPUT Lhs.6, Lhs.0, Lhs.5, Lhs.7, Lhs.2, Lhs.4
                        return r10
```
2023-08-24 12:08:34 +02:00
Tom Hvitved 7723dbc6d7
Merge pull request #14026 from hvitved/dataflow/stage3-call-ctx
Data flow: Use call contexts in stage 3
2023-08-24 11:52:08 +02:00
Asger F b424f3fe83 Update a comment to be more accurate 2023-08-24 11:12:39 +02:00
erik-krogh db2b8d4bcc
remove some test code I accidentially commited 2023-08-24 07:56:05 +02:00
Harry Maclean b76842ad3d Shared: Fix clippy lint 2023-08-23 16:24:57 +01:00
Harry Maclean 3680613f2d Shared: Restrict extractor file globs to filenames 2023-08-23 16:09:56 +01:00
Harry Maclean cc7ef5dac1 Shared: Fix clippy lint in shared extractor 2023-08-23 14:11:22 +01:00
Harry Maclean ed40d72e4f Shared: Bump extractor version 2023-08-23 14:11:22 +01:00
Harry Maclean 7e2abf20c6 Shared: Support glob patterns in shared extractor
Replace the `file_extensions` field with `file_globs`, which supports
UNIX style glob patterns powered by the `globset` crate.

This allows files with no extension (e.g. Dockerfiles) to be extracted,
by specifying a glob such as `*Dockerfile`.

One surprising aspect of this change is that the globs match against the
whole path, rather than just the file name.

This is a breaking change.
2023-08-23 14:11:21 +01:00
Asger F 8aec87ea57 Update VariableCapture.qll 2023-08-23 14:57:26 +02:00
erik-krogh 25e4f2c3a2
limit concretize to strings of at most length 100 2023-08-23 10:26:29 +02:00
Tom Hvitved 3810b796a0 Data flow: Use call contexts in stage 3 2023-08-23 10:05:57 +02:00
Tom Hvitved 12d1d04592
Merge pull request #13983 from hvitved/dataflow/reduced-dispatch-early-join
Data flow: Earlier call-context based dispatch filtering
2023-08-21 13:20:08 +02:00
Tom Hvitved 1b4520b058 Data flow: Update QL doc 2023-08-21 12:56:37 +02:00
Jeroen Ketema 2d0f73d7c2
Merge pull request #13881 from jketema/shared-taint-tracking
Introduce shared taint tracking library
2023-08-21 12:45:49 +02:00
github-actions[bot] 098dfb4242 Release preparation for version 2.14.3 2023-08-18 14:48:15 +00:00
Tom Hvitved 81ed72c96a Data flow: Revert join order changes 2023-08-18 10:49:33 +02:00
Tom Hvitved 4d951d8df1 Address review comments 2023-08-17 21:04:58 +02:00
Ed Minnix a36c12ff1f Add trust-boundary-violation sink kind 2023-08-17 13:05:37 -04:00
Tom Hvitved 7cc01ea8b5
Merge pull request #13595 from hvitved/csharp/use-shared-cfg-pack
C#: Adopt shared CFG construction library from shared `controlflow` pack
2023-08-17 10:37:09 +02:00