Security issue with pickle.load - dvc 3.67.1
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 15.9k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
Hello!
My CICD on Github blocks because of a security issue related to dvc 3.67.1 using pickle.load. I din't have this issue in the version 3.66.1.
This is the report:
Potential security risk (AI signal): pypi dvc is 68.0% likely risky
Notes: The fragment contains a major security risk: it uses pickle.load on a locally stored file (repro.dat) during experiment reproduction, which is an arbitrary code execution primitive if the file can be tampered with. Other notable risks include potential unintended filesystem operations (copying/staging) and network telemetry/exfiltration via post_live_metrics and optional auto-push based on environment/config. There is no clear evidence of stealthy backdoors or explicit malicious network endpoints in this fragment, but the deserialization behavior is sufficiently dangerous to require immediate remediation (replace pickle with a safe serialization format and validate inputs).
Confidence: 0.68
Severity: 0.80
From: uv.lock→ pypi/dvc@3.67.1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with uv.lock and compare dvc 3.67.1 against 3.66.1, then trace the pickle.load use of the locally stored repro.dat during experiment reproduction. Determine the intended safe handling and validation for that file, and verify that reproduction still works without the reported security finding.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100