CVE-2025-67747: CWE-184: Incomplete List of Disallowed Inputs in trailofbits fickling
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 Analysis
Technical Summary
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.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Italy, Spain
CVE-2025-67747: CWE-184: Incomplete List of Disallowed Inputs in trailofbits 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
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.
Affected Countries
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/4/2026, 10:42:17 PM
Views: 93
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-25585: CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer in InternationalColorConsortium iccDEV
HighCVE-2026-25584: CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer in InternationalColorConsortium iccDEV
HighCVE-2026-25583: CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer in InternationalColorConsortium iccDEV
HighCVE-2026-25582: CWE-122: Heap-based Buffer Overflow in InternationalColorConsortium iccDEV
HighCVE-2026-25541: CWE-680: Integer Overflow to Buffer Overflow in tokio-rs bytes
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.