Jeroen Ketema
dba4460526
Python: Update more inline expectation tests to use the paramterized module
2023-06-20 10:16:15 +02:00
erik-krogh
3a436d1f84
do a quick-and-dirty conversion of py/hardcoded-credentials to the new dataflow library
2023-06-14 08:31:56 +02:00
yoff
1d65284011
Merge pull request #13209 from yoff/python/container-summaries-2
...
python: Container summaries, part 2
2023-06-13 18:17:09 +02:00
Jeroen Ketema
8f599faf85
Python: Rewrite inline expectation tests to use parameterized module
2023-06-09 10:42:29 +02:00
Nick Rolfe
c67a350e36
Python: avoid selecting getLocation() in py/unnecessary-delete
2023-06-05 11:16:13 +01:00
Rasmus Lerchedahl Petersen
9cb83fcdc9
python: add summaries for
...
copy, pop, get, getitem, setdefault
Also add read steps to taint tracking.
Reading from a tainted collection can be done in two situations:
1. There is an acces path
In this case a read step (possibly from a flow summary)
gives rise to a taint step.
2. There is no access path
In this case an explicit taint step (possibly via a flow
summary) should exist.
2023-05-26 14:04:15 +02:00
Rasmus Lerchedahl Petersen
8d4f9447b1
python: remove explicit steps
...
copy, pop, get, popitem
2023-05-26 13:22:54 +02:00
Rasmus Wriedt Larsen
62f0c64a03
Merge pull request #12552 from erik-krogh/py-type-trackers
...
Py: refactor regex tracking to type-trackers
2023-05-11 16:18:34 +02:00
Kasper Svendsen
d9f29a85d6
Python: Enable implicit this warnings
2023-05-04 10:16:52 +02:00
erik-krogh
f0254fc089
introduce RegExpInterpretation instead of RegexString, and move RegexTreeView.qll into a regexp folder
2023-05-01 10:42:13 +02:00
Rasmus Wriedt Larsen
d73289ac4e
Python: Accept .expected changes
2023-04-27 11:54:39 +02:00
Rasmus Wriedt Larsen
a168af349e
Python: Expand modeling of paramiko
2023-04-18 11:57:20 +02:00
Rasmus Wriedt Larsen
a5a0861be0
Python: Expand test of py/paramiko-missing-host-key-validation
2023-04-18 11:56:07 +02:00
Erik Krogh Kristensen
d3c3f2dc90
Merge pull request #12628 from erik-krogh/betterReDoS
...
ReDoS: better super-linear algorithm
2023-03-27 15:26:49 +02:00
yoff
2121ed784f
Merge branch 'main' into python/rewrite-InsecureContextConfiguration
2023-03-27 10:20:53 +02:00
erik-krogh
e189b36e3f
materialize less strings when ranking states
2023-03-23 10:35:58 +01:00
erik-krogh
b071d3557e
JS/PY/RB: add a worst-case test, that now performs OK
2023-03-22 10:13:18 +01:00
Rasmus Wriedt Larsen
b2f34ef4b1
Merge branch 'main' into import-refined
2023-03-21 15:12:11 +01:00
Erik Krogh Kristensen
0f813ce2e8
Merge pull request #12543 from erik-krogh/reg-perf
...
ReDoS: restrict the edges considered in polynomial-redos for complex regular expressions
2023-03-20 15:48:35 +01:00
Rasmus Wriedt Larsen
2ee09cc5d1
Merge branch 'main' into import-refined
2023-03-20 15:42:01 +01:00
Rasmus Lerchedahl Petersen
b042c60ca3
python: remove outdated comment
2023-03-20 14:13:48 +01:00
Rasmus Lerchedahl Petersen
5f438e433d
python: exclude nonlocals from query
2023-03-20 13:34:39 +01:00
Rasmus Lerchedahl Petersen
9b7a20f4ad
python: add example showing FP
2023-03-20 13:03:26 +01:00
erik-krogh
b208988675
Py: add test for problematic regex
2023-03-16 12:21:00 +01:00
erik-krogh
d001cc40d3
Merge branch 'main' into py-shell
2023-03-13 14:56:04 +01:00
Rasmus Lerchedahl Petersen
072df5dbc0
python: remove protocol family
...
this concept was due to my confusion between
TLS and SSL23, but they are aliases.
We might want to bring back the concept if we model DTLS.
Also, model what exactly creations allow,
bring this back from the unrestrictions they used to be.
We accept the changes regarding sources being reported differently.
2023-03-07 14:41:13 +01:00
Rasmus Lerchedahl Petersen
f8b5a820f4
python: revert change in expected behaviour
2023-03-06 14:31:17 +01:00
Anders Schack-Mulligen
5c7f2ac7f7
Merge pull request #12186 from aschackmull/dataflow/refactor-configuration
...
Data flow: Refactor configuration
2023-03-06 13:38:59 +01:00
Anders Schack-Mulligen
34cc93846b
Python: Adjust InsecureProtocol query.
2023-03-01 13:36:10 +01:00
Rasmus Wriedt Larsen
be7d6689b8
Merge branch 'main' into import-refined
2023-02-27 17:00:48 +01:00
Taus
25043f51a4
Merge pull request #11376 from RasmusWL/call-graph-code
...
Python: New type-tracking based call-graph
2023-02-27 14:51:21 +01:00
Rasmus Wriedt Larsen
97fefd2545
Python: Attempt to fix import flow
...
It's nice that it fixes the `InsecureProtocol` test-case (which maybe
should have been a test-case for the import resolution library in the
first place?)
But it's not quite right:
1. it adds spurious flow for `clashing_attr`
2. it runs into huge problems for typetracking_imports/tracked.expected
3. it runs into the problem for
https://github.com/github/codeql/pull/10176 with an `from <pkg>
import *` blocking flow from previously defined variable, that is NOT
overridden. (simplistic_reexport.bar_attr)
2023-02-23 00:36:30 +01:00
Rasmus Wriedt Larsen
00eec6986c
Python: Allow import of refined variable
...
However, as illustrated by the `CWE-327-InsecureProtocol` test, this fix
is NOT good enough, since now even the `secure_context` is considered to
be insecure (for both versions). Ouch.
Will fix this in a later commit, since it was only discoverd late on.
2023-02-21 17:45:58 +01:00
Rasmus Wriedt Larsen
fb425b73fc
Python: Add import test of py/insecure-protocol
2023-02-21 17:43:04 +01:00
Rasmus Wriedt Larsen
9ed021ad66
Python: Accept change to WeakFilePermissions.expected
...
💪
2023-02-16 13:27:16 +01:00
erik-krogh
759854991a
fix various nits based on feedback
2023-02-15 11:10:43 +01:00
Rasmus Wriedt Larsen
23144f584a
Merge branch 'main' into call-graph-code
2023-02-08 16:17:34 +01:00
erik-krogh
cf094c2f4f
adjust which folders are seen as exported to remove an FP
2023-02-03 14:47:55 +01:00
erik-krogh
ef44cb86c2
remove FPs related to parameters that are meant to be commands
2023-02-03 14:47:55 +01:00
erik-krogh
e9ebba3350
assume shell=False for subprocess calls, fixes FPs in e.g. youtube-dl
2023-02-03 14:47:55 +01:00
erik-krogh
d228cf0e7b
use more API-nodes to model subprocess.run (and friends)
2023-02-03 14:47:55 +01:00
erik-krogh
bce83bfc4e
add failing test for indirectly setting the shell=true flag for subprocess.run
2023-02-03 14:47:55 +01:00
erik-krogh
0a2c7d062c
add Fabric test, and add tracking of the shell flag in Fabric
2023-02-03 14:47:55 +01:00
erik-krogh
6bbc4f4a48
add more tests
2023-02-03 14:47:55 +01:00
erik-krogh
33c506d7fe
add minimal test for Array join as a sink, and learn that the order is flipped compared to JS. Thanks Copilot!
2023-02-03 14:47:55 +01:00
erik-krogh
5bddfc0d79
add test for f-strings as sink
2023-02-03 14:47:55 +01:00
erik-krogh
47a06d2824
add library inputs as a source, and get minimal test to work
2023-02-03 14:47:55 +01:00
erik-krogh
6e712b293a
add tracking of strings to compile-sites for poly-redos, in the style of Ruby
2023-02-02 22:56:20 +01:00
erik-krogh
52959d7c0a
add failing test for not tracking strings to re.compile
2023-02-02 19:10:32 +01:00
Rasmus Wriedt Larsen
db114bb104
Merge branch 'main' into call-graph-code
2023-02-02 11:56:55 +01:00