Fickling Python Pickling Decompiler and Analyzer Arbitrary Code Execution Vulnerability
Vulnerability
A vulnerability in Fickling, a Python pickling decompiler and static analyzer, allows for arbitrary code execution. This issue affects versions prior to 0.1.6, which do not include 'marshal' and 'types' in the block list of unsafe module imports. As a result, an attacker can create a malicious pickle file that exploits this oversight by using 'types.FunctionType' and 'marshal.loads' to execute arbitrary code upon deserialization. This vulnerability impacts any user or system relying on Fickling to analyze pickle files for security risks.
Impact
Exploitation of this vulnerability allows for arbitrary code execution on the system where the malicious pickle file is deserialized.
Reproduction
The vulnerability can be reproduced by creating a pickle file that uses 'marshal.loads' and 'types.FunctionType' to execute code. This crafted pickle file can then be analyzed with Fickling, version 0.1.5 or earlier, which will fail to detect the malicious content and instead allow the code execution to occur.
Remediation
Users can upgrade to Fickling version 0.1.6 or later, which addresses this vulnerability by adding 'marshal' and 'types' to the list of unsafe module imports.
Vulnerability Rating
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.
