CVE-2026-3490
Received Received - Intake
BaseFortify

Publication date: 2026-06-17

Last updated on: 2026-06-17

Assigner: VulnCheck

Description
picklescan before 1.0.4 fails to block pkgutil.resolve_name, allowing attackers to bypass the entire blocklist by resolving any dangerous function through indirect REDUCE calls. Remote attackers can invoke any blocked function such as os.system, builtins.exec, or subprocess.call to achieve remote code execution.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-17
Last Modified
2026-06-17
Generated
2026-06-17
AI Q&A
2026-06-17
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
picklescan picklescan to 1.0.4 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-183 The product implements a protection mechanism that relies on a list of inputs (or properties of inputs) that are explicitly allowed by policy because the inputs are assumed to be safe, but the list is too permissive - that is, it allows an input that is unsafe, leading to resultant weaknesses.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Compliance Impact

CVE-2026-3490 allows remote attackers to bypass picklescan's blocklist and execute arbitrary code remotely, which can lead to unauthorized access, data breaches, and system compromise.

Such unauthorized remote code execution and potential data exposure can negatively impact compliance with common standards and regulations like GDPR and HIPAA, which require strict controls over data confidentiality, integrity, and availability.

Organizations using vulnerable versions of picklescan in their systems, especially those handling sensitive or personal data, may face increased risk of non-compliance due to this vulnerability.

Executive Summary

CVE-2026-3490 is a critical vulnerability in picklescan versions before 1.0.4 that allows attackers to bypass the blocklist designed to prevent dangerous function calls.

The vulnerability arises because picklescan fails to block the function pkgutil.resolve_name, which can dynamically resolve any module and attribute to a Python object at runtime.

Attackers exploit this by crafting malicious pickle files that use chained REDUCE operations: first to resolve a blocked function like os.system or builtins.exec, and second to invoke that function with malicious arguments.

Since pkgutil.resolve_name itself is not blocked, picklescan's blocklist and opcode scanner fail to detect these indirect calls, allowing remote code execution.

Impact Analysis

This vulnerability allows remote attackers to execute arbitrary code on systems using vulnerable versions of picklescan.

By bypassing the blocklist, attackers can invoke any blocked dangerous function such as os.system, builtins.exec, or subprocess.call.

The impact includes full compromise of confidentiality, integrity, and availability of affected systems, as attackers can run arbitrary commands remotely without any user interaction or privileges.

Detection Guidance

This vulnerability is due to picklescan failing to block the pkgutil.resolve_name function, which allows attackers to bypass the blocklist via indirect REDUCE calls. Detection involves identifying usage or attempts to exploit this function dynamically.

Since picklescan only examines direct global imports and not dynamic resolutions, traditional static detection may fail. Monitoring for suspicious pickle files containing chained REDUCE operations that call pkgutil.resolve_name followed by dangerous functions like os.system or subprocess.call can help.

Suggested commands include inspecting pickle files for suspicious opcodes or analyzing network traffic for pickle payloads invoking pkgutil.resolve_name. For example, you can use Python scripts to parse pickle files and look for REDUCE opcodes combined with pkgutil.resolve_name calls.

  • Use a Python script to disassemble pickle files and check for REDUCE opcodes referencing pkgutil.resolve_name.
  • Monitor network traffic for pickle payloads containing suspicious chained REDUCE calls.
  • Check logs or runtime behavior for unexpected calls to os.system, builtins.exec, or subprocess.call triggered via picklescan.
Mitigation Strategies

Immediate mitigation steps include upgrading picklescan to version 1.0.4 or later, where this vulnerability is fixed.

If upgrading is not immediately possible, manually add pkgutil and similar dynamic resolution functions like importlib to the blocklist to prevent their use.

Consider restricting or disabling the use of pickle files from untrusted sources, as the blocklist approach may be fundamentally insufficient against indirect resolution gadgets.

  • Upgrade picklescan to version 1.0.4 or newer.
  • Add pkgutil and importlib to the blocklist to block dynamic resolution functions.
  • Avoid loading pickle files from untrusted or unauthenticated sources.
Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-3490. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart