yoff
746e9948b0
Merge pull request #5075 from RasmusWL/crypto
...
Python: Port py/weak-crypto-key to use type-tracking
2021-03-18 20:53:28 +01:00
Rasmus Wriedt Larsen
7b92012edf
Python: Apply suggestions from code review
...
Co-authored-by: yoff <lerchedahl@gmail.com >
2021-03-18 10:58:49 +01:00
Rasmus Wriedt Larsen
27032af2eb
Python: Use API graphs for io.open
2021-03-17 15:50:02 +01:00
Rasmus Wriedt Larsen
d52d328587
Python: Use new API::builtin in stdlib modeling
2021-03-17 15:50:01 +01:00
Rasmus Wriedt Larsen
1ecee2da0d
Merge pull request #5357 from yoff/python-rework-documentation
...
Python: rework documentation
2021-03-17 14:25:23 +01:00
Rasmus Wriedt Larsen
fbbec5d2b9
Merge pull request #5118 from yoff/python-port-stacktrace-exosure
...
Python: Port stack trace exposure
2021-03-16 14:52:44 +01:00
Anders Schack-Mulligen
46bae88181
Merge pull request #5375 from aschackmull/dataflow/unbind
...
Dataflow: Switch from unbind to pragma[only_bind_into].
2021-03-16 14:03:54 +01:00
Anders Schack-Mulligen
2d8d967060
Dataflow: Address review comment.
2021-03-16 11:07:33 +01:00
yoff
a760ed8c55
Merge pull request #5388 from tausbn/python-api-graph-builtins
...
Python: Support built-ins in API graphs
2021-03-12 17:45:59 +01:00
Anders Schack-Mulligen
5aa9c2bd19
Dataflow: One more pragma.
2021-03-12 15:59:19 +01:00
Taus Brock-Nannestad
978200e2ad
Python: Distinguish between Python 2 and 3
...
Also moves the filtering on `name` to before the big disjunction in
`MkModuleImport`.
2021-03-12 12:35:23 +01:00
Taus Brock-Nannestad
c7b2b719cf
Python: Support builtins in API graphs
2021-03-11 23:03:18 +01:00
Anders Schack-Mulligen
674886a17d
Dataflow: Sync.
2021-03-10 16:53:51 +01:00
Rasmus Lerchedahl Petersen
91c0066b8b
Python: Make the documentation not lie
2021-03-09 18:17:51 +01:00
Tom Hvitved
fe6efde449
Address review comments
2021-03-09 14:30:12 +01:00
Rasmus Lerchedahl Petersen
4a9023b989
Python: add comment with ref
2021-03-08 08:17:23 +01:00
Rasmus Lerchedahl Petersen
7142ddcb25
Python: add taint step for __traceback__
2021-03-08 08:13:07 +01:00
Rasmus Lerchedahl Petersen
b36e0d0be7
Python: target SSA variable rather than Cfg node
...
also add "INTERNAL: Do not use."
also give test functions different names
2021-03-08 08:04:42 +01:00
Tom Hvitved
6e5af1a9f8
Data flow: Sync files
2021-03-05 14:56:40 +01:00
CodeQL CI
a55246c9f4
Merge pull request #5330 from RasmusWL/fix-flask-taint-prop-to-methods
...
Approved by yoff
2021-03-05 03:17:41 -08:00
Anders Schack-Mulligen
fe07630e40
Merge pull request #5219 from smowton/smowton/feature/backward-dataflow-for-fluent-methods
...
Java: Add backward dataflow edges through fluent function invocations.
2021-03-04 11:13:32 +01:00
Rasmus Wriedt Larsen
3dc0c2081e
Python: Fix taint-propagation to methods
...
Before we would add a step from _any_ request instance to _any_ method (CP).
2021-03-03 21:55:33 +01:00
Rasmus Lerchedahl Petersen
fafc36a9cb
Python: remove (do not introduce) unused import
2021-03-03 16:49:35 +01:00
Rasmus Lerchedahl Petersen
f02a19669f
Python: Make exception info concept local
2021-03-03 16:47:31 +01:00
Rasmus Wriedt Larsen
dd75ea31df
Python: Apply suggestions from code review
...
Co-authored-by: Taus <tausbn@github.com >
2021-03-03 14:17:22 +01:00
Chris Smowton
cdccc1a064
Remove needless typecasts
2021-03-01 16:47:34 +00:00
yoff
92128babef
Apply suggestions from code review
...
Co-authored-by: Rasmus Wriedt Larsen <rasmuswriedtlarsen@gmail.com >
2021-03-01 17:39:17 +01:00
Chris Smowton
c32514bf66
Sync dataflow library files
2021-03-01 10:27:28 +00:00
Rasmus Wriedt Larsen
010488c899
Python/JS: Update QLDoc for crypto algorithms before sharing
2021-02-27 11:38:45 +01:00
Rasmus Wriedt Larsen
646ea55944
Python/JS: Update Python copy of crypto algorithm modeling
...
Now to be shared accross both languages, with sync-identical-files
2021-02-27 11:38:45 +01:00
yoff
e3b3825ab0
Merge pull request #5151 from RasmusWL/django-get-redirect-url
...
Python: Model get_redirect_url in django
2021-02-25 23:07:33 +01:00
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
01d581ecf3
Merge pull request #5250 from tausbn/python-port-re-security-queries
...
Python: Port URL sanitisation queries to API graphs
2021-02-25 13:13:55 +01:00
yoff
f15084254b
Add comment explaining tacky nature of code
2021-02-25 11:49:57 +01:00
Rasmus Lerchedahl Petersen
5b51a3461d
Python: Force read- and store steps to add nodes.
...
This gives muche nicer path explanations on some snapshots.
It is achieved by making stepped-to nodes `CastNode`s.
This seems somewhat reasonable as types then to change, when we move
between content and container.
We could probably refine it, though.
2021-02-25 11:49:57 +01:00
Rasmus Wriedt Larsen
4610b1b392
Pyhton: Use type back-tracking for keysize on key-generation
...
Internal evaluation showed that this didn't perform better than normal (forward)
type-tracking, but it feels more like the right approach.
2021-02-25 11:31:00 +01:00
Rasmus Wriedt Larsen
c195c64982
Python: Use type-tracking for integer literal tracking
...
Like we've done for pretty much everything else. An experiment to see what this
means for query performance.
2021-02-25 11:30:56 +01:00
Rasmus Wriedt Larsen
27987717dc
Merge branch 'main' into crypto
2021-02-25 11:30:32 +01:00
Rasmus Lerchedahl Petersen
41743b6afa
Python: restrict to caught exceptions
...
also modernise code
2021-02-25 07:53:35 +01:00
Rasmus Lerchedahl Petersen
24b51e8851
Merge branch 'main' of github.com:github/codeql into python-port-stacktrace-exosure
2021-02-25 07:24:41 +01:00
Rasmus Lerchedahl Petersen
76f080978a
Python: Add missing QLDoc
2021-02-24 23:35:44 +01:00
CodeQL CI
bf66bdbb95
Merge pull request #5253 from RasmusWL/no-getAnArg
...
Approved by tausbn
2021-02-24 06:34:31 -08:00
Rasmus Wriedt Larsen
d05a8b8c46
Python: Remove getAnArg in DataFlow::CallCfgNode
...
Until we've had further discussion on what is the right approach to
naming (internal discussion in https://github.com/github/codeql-python-team/issues/95 )
2021-02-24 14:58:48 +01:00
yoff
8262f0343b
Merge pull request #5208 from RasmusWL/flask-clean-models
...
Python: Cleanup Flask models now that we have API graphs
2021-02-24 10:36:30 +01:00
Taus Brock-Nannestad
e77c1059a3
Python: Use source nodes and prevent bad join order
2021-02-24 10:18:54 +01:00
Taus Brock-Nannestad
cac6c4acc9
Python: Add deprecation notice to mode_from_mode_object
2021-02-24 10:18:21 +01:00
yoff
c3d2001e85
Merge pull request #5251 from tausbn/python-port-missing-host-key-validation-query
...
Python: Port missing host key validation query
2021-02-24 08:43:52 +01:00
Taus Brock-Nannestad
2942a11a69
Python: Import API graphs privately
2021-02-23 22:45:39 +01:00
Taus Brock-Nannestad
f241dbabab
Python: Clean up query a bit
2021-02-23 22:33:18 +01:00
Taus Brock-Nannestad
e812eb777d
Python: Port URL sanitisation queries to API graphs
...
Really, this boils down to "Port `re` library model to use API graphs
instead of points-to", which is what this PR actually does.
Instead of using points-to to track flags, we use a type tracker. To
handle multiple flags at the same time, we add additional flow from
`x` to `x | y` and `y | x`
and, as an added bonus, the above with `+` instead of `|`, neatly
fixing https://github.com/github/codeql/issues/4707
I had to modify the `Qualified.ql` test slightly, as it now had a
result stemming from the standard library (in `warnings.py`) that
points-to previously ignored.
It might be possible to implement this as a type tracker on
`LocalSourceNode`s, but with the added steps for the above operations,
this was not obvious to me, and so I opted for the simpler
"`smallstep`" variant.
2021-02-23 22:02:35 +01:00