Rasmus Wriedt Larsen
71c017f053
Python: Apply suggestions from code review
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2023-11-21 10:07:42 +01:00
Rasmus Wriedt Larsen
e1c47f5584
Python: Reorganize taint tests of re
...
Mostly to highlight that with flow-summary modeling, we don't expect
taint for a lot of these.
I aslo opted to make `finditer()` tainted for consistency.
2023-11-13 10:56:29 +01:00
Rasmus Wriedt Larsen
ffc27b5301
Python: Solve problems with missing TTupleElementContent
...
Ruby uses 10 as their number. I considered doing the same, but didn't
really care _too_ much about it 🤷
14cfb82a8c/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll (L636)
2023-11-13 10:48:51 +01:00
Rasmus Wriedt Larsen
c3fa3f26a7
Python: Fix problems with missing TAttributeContent
2023-11-13 10:46:40 +01:00
Rasmus Wriedt Larsen
943b2a2ed1
Python: Highlight problem with flow summaries and TAttributeContent
2023-11-13 10:42:13 +01:00
Rasmus Wriedt Larsen
c85d99d949
Merge branch 'main' into re-modeling
2023-11-10 16:32:50 +01:00
Rasmus Wriedt Larsen
4943fc5a57
Python: Model taint from re.<func> calls
2023-11-08 17:18:40 +01:00
Rasmus Wriedt Larsen
851c30e797
Python: Add taint modeling of re.Match objects
2023-11-08 17:18:09 +01:00
Rasmus Wriedt Larsen
ea4761d3b6
Python: Add tests of taint-flow for re module
2023-11-08 16:05:22 +01:00
Rasmus Wriedt Larsen
6d4e000c7c
Merge pull request #14590 from RasmusWL/fix-dataflow-class-scope
...
Python: Fix dataflow consistency error due to missing class scope
2023-11-08 14:30:34 +01:00
Rasmus Wriedt Larsen
43d9d2ceb7
Merge pull request #14603 from github/max-schaefer/broken-crypto-algorithm-link
...
JavaScript/Python/Ruby: Improve alert message for `*/weak-cryptographic-algorithm`.
2023-11-08 14:29:24 +01:00
Rasmus Wriedt Larsen
5220a8d3f8
Update python/ql/test/experimental/dataflow/validTest.py
...
Co-authored-by: Taus <tausbn@github.com >
2023-11-07 11:30:13 +01:00
Rasmus Wriedt Larsen
9f43108ba8
Python: Fix DataFlowCall.getEnclosingCallable
...
Now it is aligned with the implementation of DataFlow::Node
See 4bc4e0845d/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll (L134-L138)
2023-11-07 11:29:23 +01:00
Rasmus Wriedt Larsen
904a8b1ea9
Python: Add consistency tests for class scope
2023-11-07 11:29:23 +01:00
Rasmus Wriedt Larsen
43f1d092f1
Python: Misc: show that all tests passed in validTest
2023-11-06 16:04:58 +01:00
Rasmus Lerchedahl Petersen
58bf70d61b
Python: filter self steps from use-use flow
...
Factor out use-use flow in order to do this.
Also improve names and comments.
I also wanted to change the types in `difinitionFlowStep`, but
that broke the module instantiation.
2023-11-02 09:31:28 +01:00
Rasmus Lerchedahl Petersen
613831b2e1
Python: add test for post-update loop flow
2023-11-02 09:31:28 +01:00
yoff
c26c68c286
Merge pull request #14617 from yoff/python/module-for-import-time-flow
...
Python: module for import time flow
2023-11-02 09:28:51 +01:00
Rasmus Lerchedahl Petersen
0b45b63bd2
Python: Update debug query to changed API
...
The change is commented out by default
which is why no compilation tests failed
when the API changed.
2023-11-01 11:39:51 +01:00
Rasmus Lerchedahl Petersen
38b811b050
Python: Separate -> PhaseDependentFlow
2023-10-31 21:50:33 +01:00
Rasmus Lerchedahl Petersen
e745df6478
Python: module for import time flow
...
The logic for separating local flow into _import time_
and _runtime_ was duplicated a few times.
Create a module for it instead, and add a good qldoc.
2023-10-27 15:07:49 +02:00
Max Schaefer
104700f6d3
Address review comment.
2023-10-27 10:19:28 +01:00
yoff
867a39083e
Merge pull request #14114 from yoff/python/allow-namespace-packages
...
Python: Allow namespace packages
2023-10-26 16:56:05 +02:00
Max Schaefer
3939167ba2
Include more details in the message for py/weak-cryptographic-algorithm.
...
Specifically, we add a link to the location where the cryptographic algorithm is configured, which can be far away from its use.
2023-10-26 11:28:09 +01:00
Rasmus Wriedt Larsen
80506f1028
Python: Accept .expected changes
2023-10-17 10:11:39 +02:00
Rasmus Wriedt Larsen
2bf4c32433
Python: Add syntactic support for yield in contextlib.contextmanager
2023-10-17 09:51:20 +02:00
Rasmus Wriedt Larsen
2399793c8a
Python: Expand contextmanager test even more
2023-10-17 09:41:30 +02:00
Rasmus Wriedt Larsen
883bd9f3b3
Python: Add test for type-tracking with yield
2023-10-16 12:09:07 +02:00
Rasmus Lerchedahl Petersen
a4117538ab
Python: update test expectations
...
This update looks different locally for me,
so this is slightly sketchy..
2023-10-11 16:31:56 +02:00
Rasmus Wriedt Larsen
68d00a829e
Merge pull request #14430 from RasmusWL/api-graph-import-star
...
Python: Better allow `import *` to work with API graphs
2023-10-11 10:03:46 +02:00
Rasmus Wriedt Larsen
72d0dcdaba
Python: Workaround for module level items from import * not being LocalSourceNodes
2023-10-10 17:45:11 +02:00
Rasmus Wriedt Larsen
6521e5165c
Python: Extend import * with plain use
...
(no calls or anything)
2023-10-10 17:45:11 +02:00
yoff
f1266a3e81
Merge pull request #14417 from github/tausbn/python-add-flow-for-assignment-expressions
2023-10-10 17:09:20 +02:00
Rasmus Wriedt Larsen
2d947a4f53
Merge pull request #13781 from maikypedia/maikypedia/python-unsafe-deserialization
...
Python: Add unsafe deserialization sinks (CWE-502)
2023-10-10 13:30:38 +02:00
Taus
8e1bb4b364
Python: Accept moved consistency test results
...
Co-authored-by: Rasmus Lerchedahl Petersen <yoff@github.com >
2023-10-10 09:22:36 +00:00
Taus
e8ac258994
Python: Add missing flow for AssignmentExpr nodes
...
Also extend the tests surrounding this construct to be a bit more comprehensive.
Co-authored-by: Rasmus Lerchedahl Petersen <yoff@github.com >
2023-10-09 14:16:03 +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
Rasmus Wriedt Larsen
3162033d56
Python: Make tests run for django rest framework
2023-09-29 16:21:04 +02:00
Mathew Payne
19c93b0228
Add RestFramework tests
2023-09-29 14:41:57 +01:00
Rasmus Lerchedahl Petersen
be506c64ba
Python: update test-expectations
...
These are semantic differences.
They generally look good, except perhaps
we should exclude illegal package names?
(It passes `legalShortName`, though).
2023-09-29 15:10:19 +02:00
Rasmus Lerchedahl Petersen
1d4832cbfe
python: allow namespace packages as packages
...
remove the logic around isPotentialPackage
2023-09-29 15:10:19 +02:00
Rasmus Lerchedahl Petersen
362cf107a4
python: add tests for module import
...
- `--max-import-depth=3` to give points-to a chance
- `not_root` dir to force namespace package logic
- add usage in `example.py` to get files extracted
2023-09-29 15:10:19 +02:00
yoff
dbecb1bd0f
Merge pull request #14070 from yoff/python/promote-nosql-query
...
Python: promote nosql query
2023-09-29 14:21:22 +02:00
Rasmus Wriedt Larsen
9b73bbfc31
Python: Add keyword argument support
...
and a fair bit of refactoring
2023-09-29 13:54:21 +02:00
Rasmus Wriedt Larsen
3676262313
Python: Clean trailing whitespace
2023-09-29 13:54:21 +02:00
Rasmus Wriedt Larsen
16e1a00e88
Python: NoSQLInjection -> NoSqlInjection
2023-09-29 13:52:51 +02:00
Rasmus Lerchedahl Petersen
2d845e3e55
Python: nicer paths
...
turn "the long jump" that would end up
straight at the argument into a short jump
that ends up at the dictionary being written to.
Dataflow takes care of the rest of the path.
2023-09-29 12:02:16 +02:00
erik-krogh
5d4b542995
escape unicode chars in overly-large-range
2023-09-28 20:16:09 +02:00
Rasmus Lerchedahl Petersen
d5b64c5ff2
Python: update test expectations
2023-09-28 14:20:30 +02:00
Rasmus Lerchedahl Petersen
3fb579eaff
Python: add test for type tracking
2023-09-28 12:14:12 +02:00