Rasmus Wriedt Larsen
81b29316e1
Merge pull request #4737 from yoff/python-dataflow-add-cast-nodes
...
Python: Force read- and store steps to add nodes.
2021-02-25 14:28:54 +01:00
Taus
d326d40d71
Merge pull request #5252 from RasmusWL/test-cleanup
...
Python: Minor cleanup of test setup
2021-02-25 13:33:10 +01:00
Rasmus Lerchedahl Petersen
64c0eaf305
Python: Update test expectations
2021-02-25 11:49:57 +01:00
Rasmus Wriedt Larsen
5c6989cf02
Revert "Python: Accept RequestWithoutValidation expected output change"
...
Apparently CI is able to produce the ../ path, I have absolutely no clue what is
goign on...
2021-02-24 11:14:18 +01:00
Rasmus Wriedt Larsen
0b9a65d234
Python: Accept RequestWithoutValidation expected output change
...
I have no clue why this changed, but since it's only the `..` part, I guess
we'll live with it
2021-02-24 10:13:25 +01:00
Rasmus Wriedt Larsen
cef37d19ce
Python: Split CWE-295 tests
...
Mostly just because it's nice. But now we can avoid having the same `options`
files for the tests.
2021-02-24 10:12:45 +01:00
Rasmus Wriedt Larsen
0ffc801f9b
Python: Remove options for InsecureTemporaryFile tests
2021-02-24 09:57:51 +01:00
Rasmus Wriedt Larsen
a19da54c9e
Python: Exclude flask.request imports as RemoteFlowSource
...
When I changed the taint modeling in 19b7ea8d85 , that obviously also means that
some of the related locations for alerts will change. So that's why all the
examples needs to be updated.
Besides this, I had to fix a minor problem with having too many alerts. If
running a query agaisnt code like in the example below, there would be 3 alerts,
2 of them originating from the import.
```
from flask import Flask, request
app = Flask(__name__)
@app.route("/route")
def route():
SINK(request.args.get['input'])
```
The 2 import sources where:
- ControlFlowNode for ImportMember
- GSSA Variable request
I removed these from being a RemoteFlowSource, as seen in the diff.
I considered restricting `FlaskRequestSource` so it only extends
`DataFlow::CfgNode` (and make the logic a bit simpler), but I wasn't actually
sure if that was safe to do or not... If you know, please let me know :)
2021-02-19 12:22:05 +01:00
Rasmus Wriedt Larsen
7afe3972d8
Revert "Merge pull request #5171 from RasmusWL/restructure-queries"
...
This reverts commit 8caafb3710 , reversing
changes made to ec79094957 .
2021-02-17 16:32:53 +01:00
Rasmus Wriedt Larsen
cf9ad0cdc5
Python: Move ExternalAPI queries back under Security
...
This was raised as a question at review, and I don't really have a good enough
argument for moving it under POI. At the end of the day, they are _security_
related enough I guess :)
2021-02-17 11:29:33 +01:00
Rasmus Wriedt Larsen
dec026a820
Python: Fix security qlref to have single empty line
2021-02-17 11:26:02 +01:00
Rasmus Wriedt Larsen
2927d888cf
Python: Fix location of PathInjection tests
2021-02-17 11:20:00 +01:00
Rasmus Wriedt Larsen
8494fcf45f
Python: Move query tests to reflect new file layout
2021-02-16 13:15:01 +01:00
Rasmus Wriedt Larsen
1d6f9bee08
Python: Update qlrefs
2021-02-16 11:48:36 +01:00
Rasmus Wriedt Larsen
526ccdd227
Python: Add safe example from qhelp to qltests
2021-01-20 11:35:48 +01:00
Rasmus Wriedt Larsen
37aa9b9d06
Python: Add prefix sanitizer on URL redirect query
...
This doesn't cover 100% of what we want to, but matches what we used to.
2021-01-20 11:35:47 +01:00
Rasmus Wriedt Larsen
d8bfa3565f
Python: Simple port of URL redirect query
...
Still have not added sanitizer, but seems like old sanitizer was a bit too broad
(also covering %-formatting)
2021-01-20 11:35:44 +01:00
Rasmus Wriedt Larsen
9d8925ae6a
Python: Extend url-redirect tests
...
Specifically to show how it currently handles prefixing user-input with known
constant.
I changed test to be Python 3 only since I wanted to use f-string.
2021-01-19 15:37:41 +01:00
yoff
39acc9a40b
Merge pull request #4735 from RasmusWL/python-untrusted-flow
...
Python: Untrusted data used in external APIs
2020-12-18 00:15:08 +01:00
yoff
9dd6439e3c
Merge pull request #4749 from RasmusWL/command-injection-tests
...
Python: Add some command injection tests
2020-12-17 23:36:06 +01:00
Rasmus Lerchedahl Petersen
a757a69f36
Python: Add example FP
2020-12-08 17:02:05 +01:00
yoff
3bddb946b7
Merge pull request #4773 from RasmusWL/path-injection-improvements
...
Python: Path injection improvements
2020-12-08 14:05:53 +01:00
Rasmus Wriedt Larsen
5aa2c2f9d4
Python: Add command injection regex restricted FP
2020-12-07 15:26:56 +01:00
Rasmus Wriedt Larsen
32b547b3f2
Python: Add example of bad command injection sanitizer
2020-12-07 15:26:55 +01:00
Rasmus Wriedt Larsen
8444654117
Python: Adjust whitespace in command injection test
2020-12-07 15:26:54 +01:00
Rasmus Wriedt Larsen
a9ce067e15
Python: Add examples of Path Injection FPs seen
...
Not quite sure how to deal with these cases of safe if UNIX-only, otherwise not
safe.
If/when we actually try to deal with these, we also need to figure that
out. We _could_ split this queyr into 3: (1) for path injection on any
platform, (2) path injection on windows, (3) path injection on UNIX. Then
UNIX-only projects could disable the path-injection on windows query. -- that's
my best idea, if you have better ideas, DO tell 👍
2020-12-03 13:41:55 +01:00
Rasmus Wriedt Larsen
e8f63311ac
Python: Model abspath and realpath (for Path Injection)
2020-12-03 13:41:54 +01:00
Rasmus Wriedt Larsen
bd5cf80352
Python: Add Path Injection tests for realpath and abspath
...
Not supported currently
2020-12-03 13:41:53 +01:00
Rasmus Wriedt Larsen
4d9f24a24c
Python: Rewrite path injection tests
...
To match how you would normally structure your application code. In itself not
that important, but makes it easier to add more tests :)
2020-12-03 13:41:26 +01:00
Rasmus Wriedt Larsen
4ab3fff973
Python: Fix untrusted data to external API example
...
The hmac.digest function was only added in python 3.7, so obviously doesn't work
on Python 2
2020-11-30 10:42:30 +01:00
Rasmus Wriedt Larsen
9e4910f863
Python: Untrusted data used in external APIs
...
A port of the one for Java that was added in https://github.com/github/codeql/pull/3938
2020-11-26 18:19:35 +01:00
Rasmus Wriedt Larsen
4c7c940273
Python: Add example of Code Injection FP
2020-11-19 15:05:51 +01:00
Rasmus Lerchedahl Petersen
0710963fc3
Python: update test expectations
...
EssaNode -> ControlFlowNode
2020-11-10 23:58:55 +01:00
Taus Brock-Nannestad
b620b9b7c6
Python: Fixup CWE-022 tests
...
This was a bit of a mess, since there was crosstalk between the
TarSlip and PathInjection queries. (Also one of these needs the
`options` file to be in one way, and the other not). To fix this, I
split these out into separate directories.
2020-11-02 11:46:28 +01:00
Taus Brock-Nannestad
af7626a6b3
Python: Fixup CWE-079 tests
2020-11-02 11:46:02 +01:00
Taus Brock-Nannestad
57b51090ef
Python: Fixup CWE-094 tests
2020-11-02 11:45:44 +01:00
Taus Brock-Nannestad
ebb593466d
Python: Fixup CWE-089 tests
2020-11-02 11:45:14 +01:00
Taus Brock-Nannestad
7a395bf7c8
Python: Fixup CWE-078 tests.
2020-11-02 11:44:42 +01:00
Taus Brock-Nannestad
52dc905037
Python: Fixup CWE-502 tests.
2020-11-02 11:44:00 +01:00
Rasmus Wriedt Larsen
4adc26eb62
Python: Fix command injection example code
...
`subprocess.Popen(["ls", "-la"], shell=True)` correspond to running `sh -c "ls" -la`
So it doesn't follow the pattern of the rest of the test file.
2020-09-30 13:38:37 +02:00
Porcupiney Hairs
49df4169cf
Python : Add query to detect Server Side Template Injection
2020-07-21 18:01:27 +05:30
Rasmus Wriedt Larsen
67be45f045
Merge branch 'master' into python-fix-django-taint-sinks
2020-07-02 11:55:42 +02:00
Rasmus Wriedt Larsen
1e5eeb8009
Python: Move lxml.etree library stub to reduce clutter
2020-06-25 12:07:41 +02:00
Rasmus Wriedt Larsen
0b36cd44b8
Merge pull request #3522 from porcupineyhairs/pythonXpath
...
Python : Add Xpath injection query
2020-06-25 11:21:45 +02:00
Porcupiney Hairs
a519132407
add support for libxml2
2020-06-22 02:01:07 +05:30
Taus Brock-Nannestad
01fb1e3786
Python: Get rid of deprecated terms in code and .qhelp.
2020-06-19 16:51:09 +02:00
Rasmus Wriedt Larsen
c0043eb9db
Python: Don't treat re.escape(...) as a regex
...
Fixes https://github.com/github/codeql/issues/3712
2020-06-15 11:54:14 +02:00
Rasmus Wriedt Larsen
7601bd497e
Python: Add tests for re.escape FP
2020-06-15 11:34:42 +02:00
Porcupiney Hairs
8c5a97170d
Python : Add Xpath injection query
...
This PR adds support for detecting XPATH injection in Python.
I have included the ql files as well as the tests with this.
2020-05-28 03:15:12 +05:30
Rasmus Wriedt Larsen
e04d1ffcd2
Python: Add test for fabric.api.execute
2020-05-26 10:20:22 +02:00