pypickle load() function allows remote code execution via insecure deserialization
A vulnerability in the pypickle library's load() function allows remote code execution through insecure deserialization of pickle files. The developer added a validation mechanism with a validate parameter enabled by default to block loading of high-risk modules.
What happened
The load() function in pypickle.py uses Python's pickle.load() to deserialize data from a file without validating or sanitizing the input.
An attacker who supplies a malicious pickle file can execute arbitrary code when the file is loaded, resulting in remote code execution.
Reported impact
Arbitrary code execution and remote system compromise are possible when a malicious pickle file is loaded.
Index analysis
The vulnerability stems from pickle.load() deserializing untrusted data without restrictions, allowing instantiation of arbitrary Python objects and system calls.
The developer implemented a validate parameter set to True by default, which checks for high-risk modules and prevents loading of dangerous content.
Classification
Sources and evidence
Sources not yet published
This record was researched and written by the Index from original reporting. Its sources are still being verified by an editor, and they are listed here once that check is complete. Until then the record carries no reviewer.