Skip to main content
Press slash or control plus K to focus the search. Use the arrow keys to navigate results and press enter to open a threat.
Reconnecting to live updates…

CVE-2026-22606: CWE-184: Incomplete List of Disallowed Inputs in trailofbits fickling

0
High
VulnerabilityCVE-2026-22606cvecve-2026-22606cwe-184cwe-502
Published: Sat Jan 10 2026 (01/10/2026, 01:35:00 UTC)
Source: CVE Database V5
Vendor/Project: trailofbits
Product: fickling

Description

Fickling is a Python pickling decompiler and static analyzer. Fickling versions up to and including 0.1.6 do not treat Python’s runpy module as unsafe. Because of this, a malicious pickle that uses runpy.run_path() or runpy.run_module() is classified as SUSPICIOUS instead of OVERTLY_MALICIOUS. If a user relies on Fickling’s output to decide whether a pickle is safe to deserialize, this misclassification can lead them to execute attacker-controlled code on their system. This affects any workflow or product that uses Fickling as a security gate for pickle deserialization. This issue has been patched in version 0.1.7.

AI-Powered Analysis

AILast updated: 01/10/2026, 02:00:23 UTC

Technical Analysis

Fickling is a Python tool designed to decompile and statically analyze pickle files to detect potentially malicious payloads before deserialization. Pickle deserialization is inherently risky because it can execute arbitrary code embedded in the pickle data. To mitigate this, Fickling attempts to identify unsafe constructs. However, versions up to 0.1.6 fail to consider the runpy module unsafe. The runpy module allows dynamic execution of Python code by running modules or scripts programmatically. An attacker can craft a malicious pickle that uses runpy.run_path() or runpy.run_module() calls to execute arbitrary code when deserialized. Because Fickling classifies such pickles as merely suspicious rather than overtly malicious, users relying on its output may proceed with deserialization, inadvertently executing attacker-controlled code. This vulnerability is categorized under CWE-184 (Incomplete List of Disallowed Inputs) and CWE-502 (Deserialization of Untrusted Data). The vulnerability requires no authentication or user interaction, has network attack vector, and impacts confidentiality, integrity, and availability severely. The flaw was assigned CVE-2026-22606 and has a CVSS 4.0 base score of 8.9, indicating high severity. The issue was addressed in Fickling version 0.1.7 by properly flagging runpy usage as unsafe, preventing misclassification. Organizations using Fickling as a security gate for pickle deserialization should upgrade immediately and audit their deserialization processes to prevent exploitation.

Potential Impact

For European organizations, this vulnerability poses a significant risk especially to those relying on Python-based workflows that incorporate Fickling for security analysis of pickle deserialization. Successful exploitation allows remote attackers to execute arbitrary code without authentication or user interaction, potentially leading to full system compromise. This can result in data breaches, service disruption, and lateral movement within networks. Industries with critical infrastructure, financial services, healthcare, and technology sectors are particularly vulnerable due to their reliance on Python automation and data processing. The misclassification of malicious pickles as suspicious may lead to false security assurances, increasing the likelihood of exploitation. Given the high CVSS score and the lack of known exploits, the threat is primarily from targeted attackers or automated scanning. However, the ease of exploitation and the widespread use of Python in European enterprises elevate the risk. Failure to patch could lead to significant operational and reputational damage.

Mitigation Recommendations

1. Immediately upgrade Fickling to version 0.1.7 or later, where the vulnerability is patched. 2. Review and harden all workflows and products that use Fickling as a security gate for pickle deserialization; do not rely solely on Fickling’s classification for safety decisions. 3. Implement strict input validation and sandboxing around pickle deserialization processes to limit the impact of potential code execution. 4. Consider replacing pickle with safer serialization formats (e.g., JSON, protobuf) where feasible. 5. Employ runtime monitoring and anomaly detection to identify suspicious process executions related to runpy or unexpected Python module invocations. 6. Conduct security awareness training for developers and security teams about the risks of deserializing untrusted data and the limitations of static analysis tools. 7. Maintain an inventory of Python tools and dependencies to ensure timely patching of security vulnerabilities. 8. Apply the principle of least privilege to services performing deserialization to minimize potential damage from exploitation.

Need more detailed analysis?Upgrade to Pro Console

Technical Details

Data Version
5.2
Assigner Short Name
GitHub_M
Date Reserved
2026-01-07T21:50:39.533Z
Cvss Version
4.0
State
PUBLISHED

Threat ID: 6961b006ed32c7f018eb8ff3

Added to database: 1/10/2026, 1:48:54 AM

Last enriched: 1/10/2026, 2:00:23 AM

Last updated: 1/10/2026, 8:17:50 PM

Views: 19

Community Reviews

0 reviews

Crowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.

Sort by
Loading community insights…

Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.

Actions

PRO

Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.

Please log in to the Console to use AI analysis features.

Need more coverage?

Upgrade to Pro Console in Console -> Billing for AI refresh and higher limits.

For incident response and remediation, OffSeq services can help resolve threats faster.

Latest Threats