- Analyzer
- semgrep
- Category
- Injection
- Default severity
- HIGH
- CWE
- CWE-502
- Execution
- Passive
- Authentication
- Not required
- Applicability
- python
- Availability
- stable
What it detects
pickle.loads() on a non-literal byte string: an injection check run by the semgrep analyzer.
Evidence
The Semgrep source location, rule identity, and bounded match context normalized into Fendix evidence.
Remediation
pickle.loads() on a non-literal byte string — arbitrary code execution on deserialization. Replace with json.loads() for untrusted input. If pickle is strictly required, sign the payload (hmac) and verify before unpickling.
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