You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Chained function calls separated into multiple assignments
Take the example from examples/vulnerable_code/sql/sqli.py:
`result = session.query(User).filter("username={}".format(TAINT))`
The `filter` function is marked as a sink. However, previously this did
not get marked as a vulnerability.
The call label used to be `session.query`, ignoring the filter function.
Now, when the file is read, it is transformed into 2 lines:
```
__chain_tmp_1 = session.query(User)
result = __chain_tmp_1.filter("username={}".format(TAINT))
```
And the vulnerability is found.
We don't find everything here: just ordinary assignments and return
statements. We can't just transform all Call nodes here since Call nodes
can appear in many different scenarios e.g. comprehensions, bare
function calls.
0 commit comments