Views
No views yet
marshal.loads + types.FunctionTypepicklescan 1.0.5.cyfra_marker containing EXEC_OK. It does not touch the network, delete
anything, or write outside the working directory.picklescan blocks types.CodeType ("can construct arbitrary code objects") but:marshal is absent from the blocklist entirely — and marshal.loads(bytes) returns a
code object, so the CodeType entry is bypassable by design.types.FunctionType is not blocked, so that code object can be turned into a callable
and invoked through a second REDUCE.pickle.load() is reported as merely
suspicious, with Infected files: 0 and Dangerous globals: 0.1pip install picklescan==1.0.5
2python generate_poc.py
3
4python -m picklescan.cli --path chain.pkl
5# Scanned files: 1
6# Infected files: 0
7# Suspicious globals: 2
8# Dangerous globals: 0 <-- not flagged as dangerous
9
10python -c "import pickle; pickle.load(open('chain.pkl','rb'))"
11cat cyfra_marker # EXEC_OK -> arbitrary code executedfickling 0.1.12 flags the identical file as
LIKELY_OVERTLY_MALICIOUS, showing detection is feasible.marshal (loads/load) to _unsafe_globals as dangerous.types.FunctionType (and consider types.MethodType) alongside CodeType.