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-2025-67747: CWE-184: Incomplete List of Disallowed Inputs in trailofbits fickling

0
High
VulnerabilityCVE-2025-67747cvecve-2025-67747cwe-184cwe-502
Published: Tue Dec 16 2025 (12/16/2025, 00:32:52 UTC)
Source: CVE Database V5
Vendor/Project: trailofbits
Product: fickling

Description

Fickling is a Python pickling decompiler and static analyzer. Versions prior to 0.1.6 are missing `marshal` and `types` from the block list of unsafe module imports. Fickling started blocking both modules to address this issue. This allows an attacker to craft a malicious pickle file that can bypass fickling since it misses detections for `types.FunctionType` and `marshal.loads`. A user who deserializes such a file, believing it to be safe, would inadvertently execute arbitrary code on their system. This impacts any user or system that uses Fickling to vet pickle files for security issues. The issue was fixed in version 0.1.6.

AI-Powered Analysis

AILast updated: 12/23/2025, 01:28:17 UTC

Technical Analysis

Fickling is a Python tool designed to decompile and statically analyze pickle files to detect potentially unsafe serialized data. Pickle files can contain serialized Python objects, and deserializing them without proper validation can lead to arbitrary code execution. Fickling attempts to mitigate this risk by blocking unsafe module imports during analysis. However, versions prior to 0.1.6 did not include 'marshal' and 'types' modules in its block list, which are critical because 'types.FunctionType' and 'marshal.loads' can be used to execute arbitrary code during deserialization. An attacker can craft a malicious pickle file that leverages these modules to bypass Fickling's detection mechanisms. When a user or system deserializes such a file, believing it to be safe due to Fickling's vetting, arbitrary code execution can occur on the host system. This vulnerability is classified under CWE-184 (Incomplete List of Disallowed Inputs) and CWE-502 (Deserialization of Untrusted Data). The flaw was fixed in Fickling version 0.1.6 by adding 'marshal' and 'types' to the block list of unsafe imports. The CVSS 4.0 vector indicates the attack requires local access and user interaction but no privileges or authentication, with high impact on confidentiality, integrity, and availability. No known exploits have been reported in the wild, but the risk remains significant for users relying on vulnerable versions of Fickling to vet pickle files.

Potential Impact

For European organizations, this vulnerability poses a significant risk if they use Fickling versions prior to 0.1.6 as part of their security or development workflows involving Python pickle files. Arbitrary code execution can lead to data breaches, system compromise, and disruption of services, impacting confidentiality, integrity, and availability of critical systems. Organizations in sectors such as finance, healthcare, and critical infrastructure that rely heavily on Python-based applications and secure deserialization practices are particularly at risk. The local attack vector and requirement for user interaction mean that insider threats or social engineering attacks could exploit this vulnerability. Additionally, organizations using automated pipelines or CI/CD systems that incorporate Fickling for security vetting could inadvertently allow malicious pickle files to be deployed, leading to widespread compromise. The lack of known exploits in the wild suggests limited active exploitation currently, but the high severity and ease of exploitation warrant urgent attention to patch or mitigate.

Mitigation Recommendations

1. Immediately upgrade Fickling to version 0.1.6 or later to ensure the block list includes 'marshal' and 'types' modules. 2. Implement strict controls on the sources of pickle files, ensuring only trusted and verified data is deserialized. 3. Employ defense-in-depth by combining static analysis tools like Fickling with runtime protections such as sandboxing or containerization when processing pickle files. 4. Educate developers and security teams about the risks of deserializing untrusted pickle data and the importance of using updated analysis tools. 5. Monitor systems for unusual activity that could indicate exploitation attempts, especially around processes handling pickle files. 6. Consider alternative serialization formats that are safer than pickle, such as JSON or protobuf, where feasible. 7. Review and harden CI/CD pipelines and automated workflows to prevent deployment of malicious pickle files. 8. Conduct regular security audits and vulnerability assessments focusing on deserialization components in Python applications.

Need more detailed analysis?Upgrade to Pro Console

Technical Details

Data Version
5.2
Assigner Short Name
GitHub_M
Date Reserved
2025-12-11T18:08:02.947Z
Cvss Version
4.0
State
PUBLISHED

Threat ID: 6940abb2d9bcdf3f3d143158

Added to database: 12/16/2025, 12:45:38 AM

Last enriched: 12/23/2025, 1:28:17 AM

Last updated: 2/7/2026, 11:08:38 AM

Views: 94

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