Description
picklescan before 1.0.4 contains an incomplete blocklist for the profile module that fails to block the module-level profile.run() function, allowing attackers to achieve arbitrary code execution via exec(). Attackers can craft malicious pickle files calling profile.run(statement) to execute arbitrary Python code while picklescan reports zero security issues.
Published: 2026-06-17
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability in picklescan occurs because the profile module implements an incomplete blocklist that does not prevent execution of the module‑level profile.run() function, which internally calls exec(). Attackers can craft a malicious pickle file that passes through the profile.run() call and causes arbitrary Python code to run, potentially compromising the host, all without any picklescan error reporting. This bug represents a classic code injection flaw identified as CWE‑184.

Affected Systems

All versions of the picklescan tool prior to 1.0.4 are affected. The vulnerability exists in picklescan 1.0.3 and older releases, which are still widely deployed in various data‑analysis and security‑testing pipelines. Users should verify that they are not running an older release of picklescan.

Risk and Exploitability

The CVSS score of 9.3 indicates high severity, while the EPSS score of less than 1% signals a very low probability of widespread exploitation at present. The vulnerability is not listed in the CISA KEV catalog, further suggesting limited public exploitation. Based on the description, the likely attack vector is local or remote file ingestion: an attacker who can supply a malicious pickle file to picklescan, for example via a web interface or shared directory, can trigger the bypass and execute arbitrary code. The attacker does not need to bypass standard blocklists because the profile.run() function remains accessible, giving the attacker complete control over the executed payload.

Generated by OpenCVE AI on June 18, 2026 at 19:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade picklescan to version 1.0.4 or later, which removes the profile.run() blocklist flaw.
  • Add a validation layer that rejects or sanitizes pickle payloads before they reach the profile module, ensuring that only trusted data is deserialized and executed.
  • Enable detailed logging for pickle file processing and monitor for unexpected exec() calls or anomalous Python activity to detect potential exploitation attempts.

Generated by OpenCVE AI on June 18, 2026 at 19:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-7wx9-6375-f5wh PickleScan's profile.run blocklist mismatch allows exec() bypass
History

Thu, 18 Jun 2026 04:45:00 +0000

Type Values Removed Values Added
Description picklescan before 1.0.4 contains an incomplete blocklist for the profile module that fails to block the module-level profile.run() function, allowing attackers to achieve arbitrary code execution via exec(). Attackers can craft malicious pickle files calling profile.run(statement) to execute arbitrary Python code while picklescan reports zero security issues.
Title picklescan - Arbitrary Code Execution via profile.run() Blocklist Bypass
First Time appeared Mmaitre314
Mmaitre314 picklescan
Weaknesses CWE-184
CPEs cpe:2.3:a:mmaitre314:picklescan:*:*:*:*:*:*:*:*
Vendors & Products Mmaitre314
Mmaitre314 picklescan
References
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 9.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Subscriptions

Mmaitre314 Picklescan
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-06-17T18:12:06.841Z

Reserved: 2026-06-10T21:23:54.283Z

Link: CVE-2026-53873

cve-icon Vulnrichment

Updated: 2026-06-17T18:00:07.769Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-18T19:30:15Z

Weaknesses
  • CWE-184

    Incomplete List of Disallowed Inputs