GHSA-vqmv-47xg-9wpr json
Picklescan missing detection when calling pty.spawn
published 10mo ago modified 10mo ago
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
### Summary Using pty.spawn, which is a built-in python library function to execute arbitrary commands on the host system.
### Details The attack payload executes in the following steps: First, the attacker craft the payload by calling to `pty.spawn` function in the `__reduce__` method. Then the victim attempts to use picklescan to scan the pickle file for issues and sees this - ``` ----------- SCAN SUMMARY ----------- Scanned files: 1 Infected files: 0 Dangerous globals: 0 ``` The victim proceeds to load the pickle file and execute attacker-injected arbitrary code.
### PoC ``` class PtyExploit: def __reduce__(self): return (pty.spawn, (["/bin/sh", "-c", "id; exit"],)) ```
### Impact **Who is impacted?** Any organization or individual relying on picklescan to detect malicious pickle files inside PyTorch models. **What is the impact?** Attackers can embed malicious code in pickle file that remains undetected but executes when the pickle file is loaded. **Supply Chain Attack**: Attackers can distribute infected pickle files across ML models, APIs, or saved Python objects.
### Collaborators https://github.com/ajohnston9 https://github.com/geo-lit
Patch / fix
- pypi picklescan 0.0.33
Is GHSA-vqmv-47xg-9wpr in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerAffected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | picklescan | <0.0.33 |
0.0.33 |
Classification
- Weakness
-
- CWE-502 Deserialization of Untrusted Data
References
-
github.com
/mmaitre314/picklescan/pull/53
web
-
github.com
/mmaitre314/picklescan/commit/70c1c6c31beb6baaf52c8db1b6c3c0e84a6f9dab
web
-
github.com
/mmaitre314/picklescan/security/advisories/GHSA-vqmv-47xg-9wpr
web
-
github.com
/mmaitre314/picklescan
package
-
github.com
/mmaitre314/picklescan/releases/tag/v0.0.33
web
Sources
- GitHub Advisory GHSA-vqmv-47xg-9wpr
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.