- Analyzer
- semgrep
- Category
- Injection
- Default severity
- HIGH
- CWE
- CWE-89
- Execution
- Passive
- Authentication
- Not required
- Applicability
- python
- Availability
- stable
What it detects
Django raw SQL with a non-literal argument: an injection check run by the semgrep analyzer.
Evidence
The Semgrep source location, rule identity, and bounded match context normalized into Fendix evidence.
Remediation
Django ORM raw SQL with a non-literal argument — SQL injection risk. Pass user input as params, never interpolate into the query string. Prefer Django's ORM filter() expressions when possible.
Limitations
This check is limited to the applicability and evidence delivered by semgrep. Review the evidence in context; a match is a finding input, while confidence and policy determine its disposition.
Related reference
Analyzer Registry · Findings and release decisions · Policy and confidence
Remediation guidance: Remediation and fix verification · Baselines and suppressions