Standard Library

GoSQLDB

Represents database/sql.DB and database/sql.Tx from the Go standard library. Query(), Exec(), and Prepare() are SQL injection sinks when the query string is built from user input instead of using ? placeholders.

4 sinks
Taint flow0 sources 4 sinks
Sinks — dangerous call
.Query()
.QueryRow()
.Exec()
.Prepare()

Sinks

.Query()Sink
#
Signature
Query(query string, args ...any) (*Rows, error)

Executes parameterized SELECT. Sink when query is built via string concatenation.

tracks:0
.QueryRow()Sink
#
Signature
QueryRow(query string, args ...any) *Row

Executes parameterized SELECT returning one row. Same injection risk.

tracks:0
.Exec()Sink
#
Signature
Exec(query string, args ...any) (Result, error)

Executes parameterized DML. Sink when query contains user input.

tracks:0
.Prepare()Sink
#
Signature
Prepare(query string) (*Stmt, error)

Creates prepared statement. Sink when query string is user-controlled.

tracks:0

Fully-Qualified Names

FQNField
database/sql.DBfqns[0]
database/sql.Txfqns[1]
database/sql.Stmtfqns[2]
*.DBpatterns
*.Txpatterns

Wrong FQN → 0 findings. Verify with: change fqns to garbage → must produce 0 results.

Import

go.mod
// standard library — no go.mod entry required
rule.py
from codepathfinder.go_rule import GoSQLDB

Rules Using This Class