Skip to content
FendixDocumentationDocs

.fendix.yaml · SEC-001 · SARIF

Current release v3.7.0
CheckStablev3.7.0

pickle.loads() on a non-literal byte string

pickle.loads() on a non-literal byte string: an injection check run by the semgrep analyzer.

On this page
python-pickle-loads-untrusted
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.

Analyzer Registry · Findings and release decisions · Policy and confidence

Remediation guidance: Remediation and fix verification · Baselines and suppressions