CVE-2026-22606: Fickling Arbitrary Code Execution via Unsafe runpy Module
Summary
CVE-2026-22606: Fickling has a bypass via runpy.run_path() and runpy.run_module(). Affects fickling versions < 0.1.7. Fixed in 0.1.7. How to fix ↓
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
Fickling is a Python library designed to analyze and assess the safety of pickle files, which are used for serializing and deserializing Python objects. Its primary function is to identify potentially harmful code within these files, providing a security layer for applications that utilize pickle. However, Fickling versions up to 0.1.6 fail to recognize the runpy module as unsafe, exposing users to significant security risks.
Vulnerability Detail
The vulnerability arises from Fickling's incomplete blocklist of unsafe imports, specifically missing the runpy module. This oversight allows attackers to craft malicious pickles that utilize runpy.run_path() or runpy.run_module() without being flagged as overtly malicious. As a result, users may inadvertently execute attacker-controlled code when deserializing these pickles, leading to arbitrary code execution on their systems. The vulnerability is classified as CWE-184 (Incomplete Blocklist) and CWE-502 (Arbitrary Code Execution via Insecure Deserialization).
How To Fix
Latest published version: 0.1.12 as of 23 Oct 2026
pip install --upgrade "fickling==0.1.12"
Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.
If you need the minimum change
0.1.7
This is the first release that contains the fix.
pip install --upgrade "fickling==0.1.7"
Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →
Workaround
As a temporary measure, users can manually inspect and avoid deserializing pickle files that may contain the runpy module until they can update to the patched version. Additionally, consider using alternative serialization methods that do not involve pickle.
Conclusion
The vulnerability identified as CVE-2026-22606 in Fickling poses a significant risk due to its failure to classify the runpy module as unsafe. Users are strongly advised to update to version 0.1.7 or later to mitigate this risk and ensure the security of their applications when handling pickle files.
See every vulnerability recorded for fickling →
FAQ
The vulnerability has a CVSS score of 8.9, indicating a high severity level due to the potential for arbitrary code execution.
You can use Vulert, which monitors and alerts for open-source vulnerabilities in real-time. Visit the Vulert playground at Vulert Scanner to check if your application is affected without requiring any signup.
If an immediate update is not possible, avoid deserializing pickle files that may contain the runpy module and consider using alternative serialization methods.
Failing to address this vulnerability can lead to arbitrary code execution, allowing attackers to execute malicious code on your system, potentially compromising sensitive data and system integrity.
You can find more information about Fickling on its GitHub repository or official documentation, which provides insights into its features and usage.
References
Related vulnerabilities
Recent vulnerabilities recorded for fickling.