Rasmus Wriedt Larsen
c69b857662
Python: Add self.request as RemoteFlowSource for aiohttp View
...
Just like we do for Django in
7393443f8c/python/ql/src/semmle/python/frameworks/Django.qll (L1786-L1804)
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
c4b618dcf5
Python: Model view-classes in aiohttp.web
...
No taint modeling of them yet though
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
fb21bc04fa
Python: Add taint-steps for yarl.URL
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
72e6a1489c
Python: Add taint-steps for MultiDictProxy
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
e76f02b016
Python: Minor refactor to use LocalSourceNode
...
This just more correctly reflects the reality, since the type-tracking
predicate just below only holds for LocalSourceNode anyway.
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
dd131e6bf7
Python: Add taint-step for methods on aiohttp.web.Request
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
63c7fa0c2c
Python: aiohttp match_info should be tainted
...
Whoops
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
597a9dfc80
Python: Don't consider has_body tainted
...
Although it technically is, I think it belong in the section of things
that are unlikely to be exploitable
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
d953ea47d4
Python: Basic handling of tainted attributes in aiohttp
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
88158e7414
Python: Add basic model setup for aiohttp.web.Request
2021-06-03 10:55:34 +02:00
Rasmus Wriedt Larsen
3cbb909a3a
Python: Add modeling of coroutine routes in aiohttp.web
2021-06-03 10:55:33 +02:00
Rasmus Wriedt Larsen
fa1d4e6de7
Python: Extract poor mans function resolution (from django)
...
Since I also want to use this for aiohttp.web modeling
2021-06-03 10:55:33 +02:00
Anders Schack-Mulligen
ce509eb7e1
Merge pull request #5927 from aschackmull/dataflow/flowthrough-dispatch-perf
...
Dataflow: Improve performance in flow-through pruning
2021-06-01 11:46:22 +02:00
Anders Schack-Mulligen
5d21c64247
Dataflow: qldoc fix.
2021-06-01 10:49:47 +02:00
Anders Schack-Mulligen
4f9a6c151b
Dataflow: Code review fixes.
2021-06-01 10:29:17 +02:00
Anders Schack-Mulligen
683f853fa5
Dataflow: Fix another bad join order.
2021-05-31 15:14:13 +02:00
Taus
bae3728e3c
Merge pull request #5945 from RasmusWL/minor-qldoc-cleanup
...
Python: Minor QLDoc cleanup
2021-05-31 11:40:44 +02:00
Aditya Sharad
b41a06a15c
Python: Treat py/summary/lines-of-user-code as the primary summary metric
...
Move the `lines-of-code` tag from `py/summary/lines-of-code`.
Code Scanning will eventually look for this tag.
The intent is to treat the number of lines of user code for Python as the summary of
how much code was analysed, ignoring both external libraries and generated code.
This matches the current baseline metric the CodeQL Action computes for Python.
We'll revisit this decision, and the baseline, if necessary.
2021-05-27 13:20:24 -07:00
Ian Lynagh
f0bec74ce3
python: Correct the ReturnValueIgnored.qhelp docs
2021-05-26 17:40:57 +01:00
Rasmus Wriedt Larsen
f807c2f52b
Python: autoformat
2021-05-26 11:07:48 +02:00
Rasmus Wriedt Larsen
d5f2846394
Merge branch 'main' into jorgectf/python/ldapInjection
2021-05-26 11:01:48 +02:00
Rasmus Wriedt Larsen
1b3f857a2f
Python: Promote ClickHouse SQL models
2021-05-25 16:27:23 +02:00
Rasmus Wriedt Larsen
eb1da152a0
Python: Rewrite ClickHouse SQL lib modeling
...
This did turn into a few changes, that maybe could have been split into
separate PRs 🤷
* Rename `ClickHouseDriver` => `ClickhouseDriver`, to better follow
import name in `.qll` name
* Rewrote modeling to use API graphs
* Split modeling of `aioch` into separate `.qll` file, which does re-use
the `getExecuteMethodName` predicate. I feel that sharing code between
the modeling like this was the best approach, and stuck the
`INTERNAL: Do not use.` labels on both modules.
* I also added handling of keyword arguments (see change in .py files)
2021-05-25 16:13:31 +02:00
Rasmus Wriedt Larsen
ee3477c20a
Python: Remove dummy clickhouse SQL injection query
2021-05-25 14:27:29 +02:00
Rasmus Wriedt Larsen
35793a10bb
Merge pull request #5889 from japroc/python-clickhouse-driver
...
Python: Implement module ClickHouseDriver.qll
2021-05-25 14:25:28 +02:00
Anders Schack-Mulligen
017bf68906
Dataflow: Fix bad join order.
2021-05-25 11:40:53 +02:00
jorgectf
37d6ff76a3
Update tests and .expected
2021-05-21 17:47:53 +02:00
Rasmus Wriedt Larsen
71a93ad311
Python: Fix QLDoc for PyYAML to follow convention
2021-05-21 17:17:23 +02:00
Rasmus Wriedt Larsen
6f50b12333
Python: Fix QLDoc for Werkzeug
2021-05-21 17:16:09 +02:00
Rasmus Wriedt Larsen
c4e244eb80
Python: Add getAwaited to API::Node
...
I _really_ wanted to call this `.await()`, but that did not fit in with
the convention, or the corresponding `getPromised` in JS.
54f191cfe3/javascript/ql/src/semmle/javascript/ApiGraphs.qll (L184)
2021-05-21 17:11:20 +02:00
Jorge
9e9678b3ca
Apply documentation suggestions
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2021-05-21 16:17:39 +02:00
Rasmus Wriedt Larsen
e29b7568bf
Python: Add missing QLDoc for subclass label
2021-05-21 16:17:17 +02:00
Rasmus Wriedt Larsen
0292ca6b67
Merge pull request #5880 from tausbn/python-limit-builtins
...
Python: Limit set of globals that may be built-ins
2021-05-20 14:47:22 +02:00
Tom Hvitved
2a7ceb2e19
Merge pull request #5928 from hvitved/python/type-tracker-split
...
Python: Split up `(small)step` into intra/interprocedural predicates
2021-05-20 14:13:44 +02:00
Tom Hvitved
1fc95a68ca
Python: Add more type tracking QL doc
2021-05-20 13:47:23 +02:00
Taus
c4bb3c27e0
Python: Update python/ql/src/semmle/python/ApiGraphs.qll
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2021-05-20 13:14:09 +02:00
CodeQL CI
17afbdf258
Merge pull request #5635 from RasmusWL/port-weak-crypto-algorithm
...
Approved by yoff
2021-05-20 01:22:32 -07:00
Tom Hvitved
f63c1d2383
Python: Split up (small)step into intra/interprocedural predicates
2021-05-19 19:59:25 +02:00
Anders Schack-Mulligen
4406b8e339
Dataflow: Sync.
2021-05-19 19:22:36 +02:00
Rasmus Wriedt Larsen
753dca91b1
Python: weak-crypto: Make algorithm selection less brittle
...
As discussed in https://github.com/github/codeql/pull/5635#discussion_r633477154
2021-05-19 17:47:09 +02:00
Rasmus Wriedt Larsen
22d4d7956a
Python: Fix typo in QLDoc
2021-05-19 17:47:05 +02:00
Rasmus Wriedt Larsen
8d1e7da851
Python: Apply suggestions from code review
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2021-05-19 17:42:46 +02:00
Taus
75a43e76e8
Python: Address review comments.
...
- Removes the version check on the set of built-in names.
- Renames the predicate used to represent said set.
- Documents how these lists of names were obtained.
- Gets rid of a superfluous import.
2021-05-19 11:54:47 +00:00
CodeQL CI
23e8092452
Merge pull request #5864 from RasmusWL/some-framework-modeling
...
Approved by tausbn
2021-05-19 02:31:06 -07:00
Rasmus Wriedt Larsen
904eacf9a2
Python: Use absolute import for PEP249
2021-05-19 11:10:06 +02:00
yoff
60da193620
Update python/ql/src/semmle/python/frameworks/Cryptodome.qll
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2021-05-19 08:08:59 +02:00
Evgenii Protsenko
af75d85b2e
ClickHouseSQLInjection.qll : add tests
2021-05-18 22:49:11 +03:00
Rasmus Wriedt Larsen
97fadd9970
Merge branch 'main' into port-weak-crypto-algorithm
2021-05-18 14:04:18 +02:00
Rasmus Wriedt Larsen
6c755024ac
Python: Refactor code, inline some type-tracking
2021-05-18 14:03:36 +02:00
Rasmus Wriedt Larsen
770429fd68
Python: Autoformat
2021-05-18 14:02:46 +02:00