psycopg2 is the canonical PostgreSQL driver for Python. Cursor.execute() and executemany() are SQL injection sinks when the query is built by string concatenation or f-strings. Use %s placeholders for safe binding.
.execute().executemany().execute()Sinkcursor.execute(query: str, vars: Sequence | Mapping = None) -> None
Executes a query. SQL injection sink when query is built from user input.
0.executemany()Sinkcursor.executemany(query: str, vars_list: Iterable) -> None
Executes a query for each element in vars_list. Same injection risk.
0| FQN | Field | |
|---|---|---|
| psycopg2 | fqns[0] | |
| psycopg2.extensions.cursor | fqns[1] |
Wrong FQN → 0 findings. Verify with: change fqns to garbage → must produce 0 results.
from codepathfinder.go_rule import PyPsycopg2