CVE-2026-22606: CWE-184: Incomplete List of Disallowed Inputs in trailofbits fickling
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 Analysis
Technical Summary
CVE-2026-22606 is a vulnerability in the Python tool Fickling, a pickling decompiler and static analyzer designed to detect malicious pickle payloads. Pickle deserialization in Python is inherently risky because it can execute arbitrary code embedded in the serialized data. Fickling attempts to mitigate this risk by analyzing pickle contents and classifying them as safe, suspicious, or overtly malicious. However, versions up to 0.1.6 fail to treat the runpy module as unsafe. The runpy module allows dynamic execution of Python code via run_path() and run_module(), which can be leveraged by attackers to execute arbitrary code during deserialization. Due to this oversight, malicious pickles using runpy are only flagged as suspicious rather than overtly malicious, potentially misleading users or automated systems relying on Fickling's classification. This can lead to attacker-controlled code execution if such pickles are deserialized. The vulnerability does not require authentication or user interaction and can be exploited remotely by supplying crafted pickle data. The flaw is categorized under CWE-184 (Incomplete List of Disallowed Inputs) and CWE-502 (Deserialization of Untrusted Data). The issue was publicly disclosed on January 10, 2026, with a CVSS 4.0 score of 8.9, indicating high severity. No known exploits have been reported yet, but the risk is significant given the nature of pickle deserialization. The vulnerability is fixed in Fickling version 0.1.7, which properly treats runpy as unsafe, preventing misclassification.
Potential Impact
For European organizations, the impact of this vulnerability is substantial, particularly for those relying on Fickling as a security gate in workflows that deserialize pickle data from untrusted or semi-trusted sources. Successful exploitation can lead to remote code execution, compromising confidentiality, integrity, and availability of affected systems. This could result in data breaches, unauthorized access, lateral movement within networks, and potential disruption of critical services. Organizations in sectors such as finance, healthcare, government, and critical infrastructure, where Python-based automation or data processing pipelines are common, are especially at risk. The vulnerability's ease of exploitation without authentication or user interaction increases the threat level. Additionally, the misclassification may lead to false confidence in the safety of deserialized data, increasing exposure. Although no exploits are currently known in the wild, the vulnerability's presence in security tooling itself amplifies risk, as it undermines trust in detection mechanisms.
Mitigation Recommendations
European organizations should immediately upgrade Fickling to version 0.1.7 or later, which patches the vulnerability by correctly classifying runpy usage as overtly malicious. Until upgrade is possible, organizations should implement additional manual or automated checks for pickle data that invoke runpy or similar dynamic execution modules. Avoid deserializing pickle data from untrusted or unauthenticated sources altogether. Employ defense-in-depth by isolating pickle deserialization processes in sandboxed or containerized environments with minimal privileges. Monitor logs and alerts for suspicious pickle deserialization activities, especially those involving runpy or unexpected module executions. Incorporate alternative safer serialization formats (e.g., JSON, protobuf) where feasible. Conduct security awareness training for developers and security teams about the risks of pickle deserialization and the limitations of current detection tools. Finally, review and update incident response plans to address potential exploitation scenarios involving malicious pickle payloads.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Italy, Spain, Poland
CVE-2026-22606: CWE-184: Incomplete List of Disallowed Inputs in trailofbits 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
Technical Analysis
CVE-2026-22606 is a vulnerability in the Python tool Fickling, a pickling decompiler and static analyzer designed to detect malicious pickle payloads. Pickle deserialization in Python is inherently risky because it can execute arbitrary code embedded in the serialized data. Fickling attempts to mitigate this risk by analyzing pickle contents and classifying them as safe, suspicious, or overtly malicious. However, versions up to 0.1.6 fail to treat the runpy module as unsafe. The runpy module allows dynamic execution of Python code via run_path() and run_module(), which can be leveraged by attackers to execute arbitrary code during deserialization. Due to this oversight, malicious pickles using runpy are only flagged as suspicious rather than overtly malicious, potentially misleading users or automated systems relying on Fickling's classification. This can lead to attacker-controlled code execution if such pickles are deserialized. The vulnerability does not require authentication or user interaction and can be exploited remotely by supplying crafted pickle data. The flaw is categorized under CWE-184 (Incomplete List of Disallowed Inputs) and CWE-502 (Deserialization of Untrusted Data). The issue was publicly disclosed on January 10, 2026, with a CVSS 4.0 score of 8.9, indicating high severity. No known exploits have been reported yet, but the risk is significant given the nature of pickle deserialization. The vulnerability is fixed in Fickling version 0.1.7, which properly treats runpy as unsafe, preventing misclassification.
Potential Impact
For European organizations, the impact of this vulnerability is substantial, particularly for those relying on Fickling as a security gate in workflows that deserialize pickle data from untrusted or semi-trusted sources. Successful exploitation can lead to remote code execution, compromising confidentiality, integrity, and availability of affected systems. This could result in data breaches, unauthorized access, lateral movement within networks, and potential disruption of critical services. Organizations in sectors such as finance, healthcare, government, and critical infrastructure, where Python-based automation or data processing pipelines are common, are especially at risk. The vulnerability's ease of exploitation without authentication or user interaction increases the threat level. Additionally, the misclassification may lead to false confidence in the safety of deserialized data, increasing exposure. Although no exploits are currently known in the wild, the vulnerability's presence in security tooling itself amplifies risk, as it undermines trust in detection mechanisms.
Mitigation Recommendations
European organizations should immediately upgrade Fickling to version 0.1.7 or later, which patches the vulnerability by correctly classifying runpy usage as overtly malicious. Until upgrade is possible, organizations should implement additional manual or automated checks for pickle data that invoke runpy or similar dynamic execution modules. Avoid deserializing pickle data from untrusted or unauthenticated sources altogether. Employ defense-in-depth by isolating pickle deserialization processes in sandboxed or containerized environments with minimal privileges. Monitor logs and alerts for suspicious pickle deserialization activities, especially those involving runpy or unexpected module executions. Incorporate alternative safer serialization formats (e.g., JSON, protobuf) where feasible. Conduct security awareness training for developers and security teams about the risks of pickle deserialization and the limitations of current detection tools. Finally, review and update incident response plans to address potential exploitation scenarios involving malicious pickle payloads.
Affected Countries
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/17/2026, 7:44:01 AM
Last updated: 2/7/2026, 8:43:36 AM
Views: 77
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Related Threats
CVE-2026-2078: Improper Authorization in yeqifu warehouse
MediumCVE-2026-25533: CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop') in agentfront enclave
MediumCVE-2026-25123: CWE-918: Server-Side Request Forgery (SSRF) in homarr-labs homarr
MediumCVE-2025-68621: CWE-208: Observable Timing Discrepancy in TriliumNext Trilium
HighCVE-2026-2074: XML External Entity Reference in O2OA
MediumActions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
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.