Go logoGo/
GO-S7000

Audit required: Tainted value reached a sinkGO-S7000

Major severityMajor
Security categorySecurity

Unsanitized user input reaches a sink.

Examples

Bad practice

package main

import (
    "context"
    "database/sql"
    "fmt"
)

func foo(db *sql.Conn, input string) {
    db.ExecContext(context.TODO(), fmt.Sprintf("SELECT * FROM users where id = %s", input))
}
package main

import (
    "context"
    "database/sql"
)

func foo(db *sql.Conn, input string) {
    db.ExecContext(context.TODO(), "SELECT * FROM users where id = ?", id)
}