Rasmus Lerchedahl Petersen
ef4461ce54
Python: Address review comments
2020-09-22 23:48:28 +02:00
yoff
aece0ff652
Apply suggestions from code review
...
Co-authored-by: Taus <tausbn@github.com >
2020-09-22 22:33:46 +02:00
Rasmus Wriedt Larsen
71a75ce596
Python: Handle bound methods in flask modeling
2020-09-22 16:33:35 +02:00
Rasmus Wriedt Larsen
e614365963
Python: Adopt new approach in flask modeling
...
Removed all the dict-like stuff, not sure that is how we should do things.
2020-09-22 16:33:33 +02:00
Rasmus Wriedt Larsen
00ea0cebc3
Python: More Flask modeling kinda works
...
It "kinda" works now, but it really is not a pretty solution. Adding all these
"tracked" objects is SUPER annoying... it _would_ be possible to skip them, but
that seems like it will give the wrong edges for dataflow/taintflow queries :|
A good chunk of it should be able to be removed with access-paths like C# does
for library modeling. Some of it could be solved by better type-tracking API
like API Graphs... but it seems like we generally are just lacking the
nice-to-have features like `.getAMemberCall` and the like. See
https://github.com/github/codeql/pull/4082/files#diff-9aa94c4d713ef9d8da73918ff53db774L33
2020-09-22 16:28:25 +02:00
Rasmus Wriedt Larsen
2bdd0284dc
Python: Port py-command-line-injection with new dataflow
2020-09-22 16:28:23 +02:00
Rasmus Wriedt Larsen
7c205dd3fc
Python: First attempt at modeling Flask
2020-09-22 16:28:21 +02:00
Rasmus Wriedt Larsen
cdc5ca7aec
Python: Model os.system and os.popen
2020-09-22 16:28:20 +02:00
Rasmus Wriedt Larsen
0265f26301
Python: Add importModule and importMember DataFlow helpers
2020-09-22 16:28:19 +02:00
Rasmus Wriedt Larsen
2551173156
Python: Update example in QLDoc for TypeTracker
2020-09-22 16:28:18 +02:00
Rasmus Lerchedahl Petersen
131cf8d2ec
Python: Fix compilation error
2020-09-22 15:02:31 +02:00
Rasmus Lerchedahl Petersen
b065d8724e
Python: Fixup comments after merge
2020-09-22 13:52:30 +02:00
Rasmus Lerchedahl Petersen
3e2331c87f
Merge branch 'main' of github.com:github/codeql into SharedDataflow_FieldFlow
2020-09-22 13:32:36 +02:00
Tom Hvitved
71da9045e5
Java/Python: Reduce size of blockPrecedesVar
2020-09-22 11:00:26 +02:00
Rasmus Lerchedahl Petersen
73d2d9b1f8
Python: Make constructor calls post-update nodes
2020-09-21 17:32:22 +02:00
Taus
724baaf26a
Merge pull request #4308 from RasmusWL/python-private-import-of-DataFlowPrivate
...
Python: Make import of DataFlowPrivate private
2020-09-21 17:13:48 +02:00
Rasmus Wriedt Larsen
6aca82fa82
Python: Make import of DataFlowPrivate private
...
Otherwise you are able to use `DataFlow::isExpressionNode` where
`isExpressionNode` is defined in `DataFlowPrivate.qll`.
2020-09-21 13:52:58 +02:00
Taus
9d7a2d2b5d
Merge branch 'main' into python-add-global-flow-steps
2020-09-21 13:50:20 +02:00
Taus Brock-Nannestad
1d6558b4e8
Python: Add a bit more documentation to ModuleVariableNode
2020-09-21 11:46:18 +02:00
Rasmus Lerchedahl Petersen
9aa0cfb35c
Python: class callable -> class call
...
Only have one type of callable, but have an extra type of call.
A constructor call directs to an init callable
(should also handle `call` overrides at some point).
2020-09-19 22:27:11 +02:00
Rasmus Lerchedahl Petersen
aa28167177
Python: Add malloc nodes
2020-09-19 22:27:10 +02:00
Rasmus Lerchedahl Petersen
27b25565ca
Python: Implement field-stores, -reads, and -content
2020-09-19 22:27:10 +02:00
Taus Brock-Nannestad
11c85f0fb5
Python: Clean up various jump/local data flow steps
...
Removes steps from `ModuleVariableNode`s from `essaFlowStep`, and
instead puts them only in `jumpStep`. This cleans up the logic a bit.
This slightly broke the type tracker implementation (as it relied on
`essaFlowStep` being fairly liberal), so I have rewritten it to
explicitly rely on just familiar predicates for local and jump steps.
Additionally, we disallow Essa-to-Essa steps where exactly one of the
two nodes corresponds to a global variable (i.e. only local-local and
global-global steps).
2020-09-18 18:14:47 +02:00
Taus Brock-Nannestad
2d3e23ebb0
Python: Cleanup, docs, and an extra test case
2020-09-16 14:46:04 +02:00
Taus Brock-Nannestad
7cdd290b90
Python: Disregard module-time reads.
2020-09-15 18:25:24 +02:00
Taus Brock-Nannestad
d5e9f36747
Python: Add "enclosing callable" for ModuleVariableNode
...
I've named this `DataFlowModuleScope` since it's not really a
callable (and all of the relevant methods are empty anyway).
2020-09-15 14:23:20 +02:00
Rasmus Lerchedahl Petersen
839cd829ce
Python: Fix formatting
2020-09-14 18:48:55 +02:00
Taus Brock-Nannestad
0bb726f21c
Python: Fix up merge weirdness
2020-09-14 17:57:45 +02:00
yoff
5efc06da2c
Update python/ql/src/experimental/dataflow/internal/DataFlowPublic.qll
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2020-09-14 17:08:39 +02:00
Rasmus Lerchedahl Petersen
4c02852358
Python: add missing * (and a rename)
2020-09-14 16:56:46 +02:00
Rasmus Lerchedahl Petersen
ecc5a4a1f6
Python: testIsTrue -> branch
2020-09-14 15:32:03 +02:00
yoff
2a4e28db16
Apply suggestions from code review
...
Will make the same renames in the changed code also..
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2020-09-14 15:28:01 +02:00
Rasmus Lerchedahl Petersen
033529e85e
Python: avoid creating big predicate
2020-09-14 15:24:46 +02:00
Taus Brock-Nannestad
e197f52b6d
Merge branch 'main' into python-add-global-flow-steps
2020-09-14 15:13:07 +02:00
Taus Brock-Nannestad
5fb33c90bc
Python: Add ModuleVariableNode to dataflow
2020-09-14 14:57:32 +02:00
Rasmus Lerchedahl Petersen
543876f980
Python: Fix getAGuardedNode
2020-09-14 14:46:15 +02:00
Faten Healy
6f20516f84
Update broken_crypto.py to AES instead of Blowfish
2020-09-13 21:07:28 +10:00
Faten Healy
826fc0a630
Update BrokenCryptoAlgorithm - Blowfish to AES
2020-09-13 21:04:07 +10:00
Rasmus Lerchedahl Petersen
0eb8b6c7b0
Python: Address review
2020-09-11 14:24:49 +02:00
Rasmus Lerchedahl Petersen
5dbb4af5b5
Python: Implement BarrierGuard
2020-09-11 11:55:51 +02:00
Rasmus Wriedt Larsen
52d8f7d395
Merge pull request #4235 from yoff/SharedDataflow_UseUseFlow
...
Python: Port use-use implementation from Java
2020-09-10 16:12:28 +02:00
Rasmus Lerchedahl Petersen
92e7a5676d
Python: Address review comments
2020-09-10 15:17:30 +02:00
yoff
3a19b1e7fd
Apply suggestions from code review
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2020-09-10 15:06:06 +02:00
Rasmus Lerchedahl Petersen
deb1a4ceb9
Merge branch 'main' of github.com:github/codeql into SharedDataflow_UseUseFlow
2020-09-10 10:55:34 +02:00
Rasmus Lerchedahl Petersen
50cc5d58e9
Merge branch 'main' of github.com:github/codeql into SharedDataflow_NestedComprehensions
2020-09-10 10:20:55 +02:00
Rasmus Lerchedahl Petersen
7b10a3a546
Python: fix comment and source uses
2020-09-10 08:36:00 +02:00
Rasmus Lerchedahl Petersen
b1567827a0
Python: Repair flow out of post-update nodes
2020-09-09 15:52:07 +02:00
Rasmus Wriedt Larsen
2172fb6e65
Dataflow: s/data flow/taint propagation/ in QLDoc for sanitizers
2020-09-09 14:30:33 +02:00
Rasmus Wriedt Larsen
d90f0be2c4
Dataflow: defaultTaintBarrier => defaultTaintSanitizer
...
Just keeping things a bit more consistent :)
2020-09-09 14:11:56 +02:00
Rasmus Lerchedahl Petersen
9e59d79a72
Python: Repair flow from pre-update nodes
2020-09-09 13:51:24 +02:00