security
security_error
ai_generated
true
SQL injection vulnerability detected in raw query
ID: security/sql-injection-orm-raw
92%Fix Rate
90%Confidence
3Evidence
2023-01-01First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| any | active | — | — | — |
Root Cause
Raw SQL queries with string interpolation are vulnerable to SQL injection.
genericWorkarounds
-
95% success Use parameterized queries / prepared statements
cursor.execute("SELECT * FROM t WHERE id = %s", (user_id,)) -
90% success Use ORM query builders instead of raw SQL
Model.objects.filter(id=user_id) or db.query(Model).filter_by(id=user_id)
Dead Ends
Common approaches that don't work:
-
Escape user input manually with string replacement
85% fail
Manual escaping is error-prone and misses edge cases.
-
Validate input is alphanumeric only
70% fail
Overly restrictive and still misses injection vectors in numeric fields.