# CVE-2025-71368: picklescan detection bypass via doctest.debug_script

Source: https://junglewise.ai/threats/cve-2025-71368-picklescan-detection-bypass-via-doctest-debug-script  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-06-30. Updated: 2026-06-30  
License: CC BY 4.0 with a link back

CVE-2025-71368 · Severity: high · CVSS 8.1 · Published 2026-06-30

picklescan is a security tool used to scan Python pickle files and machine learning models for malicious code. A vulnerability in versions before 0.0.30 allows specially crafted malicious files to bypass detection by using a specific Python function. If a user trusts the scan results and opens the file, an attacker can execute arbitrary commands on the user's system, potentially leading to a full system compromise.

Technologies: [picklescan (PyPI)](https://junglewise.ai/threats/technologies/picklescan). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2025-71368 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2025-71368 being exploited in the wild.

**How severe is CVE-2025-71368?** High severity, with a CVSS score of 8.1, published 30 June 2026.

**Which products and versions are affected?** picklescan (PyPI) ECOSYSTEM:introduced=0,fixed=0.0.30.

**Is there a fix for CVE-2025-71368?** Yes. picklescan (PyPI): upgrade to 0.0.30 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2025-71368 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2025-71368?** Check whether you run picklescan (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- picklescan (PyPI): upgrade to 0.0.30 or later

  ```sh
  pip install "picklescan>=0.0.30"
  ```


## Technical details

A deserialization vulnerability (CWE-502) exists in picklescan due to an incomplete blocklist of dangerous functions. The tool fails to identify the 'doctest.debug_script' function when analyzing pickle files. An attacker can craft a malicious pickle file using the '__reduce__' method to call this function, which internally executes arbitrary Python code via 'exec()'. If a victim relies on picklescan to validate a file and subsequently loads it using 'pickle.load()', the embedded payload will execute. This issue is resolved in version 0.0.30.

## Affected products

- picklescan picklescan < 0.0.30

## Identifiers

- CVE-2025-71368
- GHSA-fqq6-7vqf-w3fg

## Timeline

- 2025-08-26: advisory: Initial GitHub security advisory published
- 2026-06-30: disclosed: CVE published to NVD

## References

- [https://github.com/mmaitre314/picklescan/security/advisories/GHSA-fqq6-7vqf-w3fg](https://github.com/mmaitre314/picklescan/security/advisories/GHSA-fqq6-7vqf-w3fg)
- [https://www.vulncheck.com/advisories/picklescan-arbitrary-code-execution-via-undetected-doctest-debug-script](https://www.vulncheck.com/advisories/picklescan-arbitrary-code-execution-via-undetected-doctest-debug-script)

## Related threats

- [picklescan detection bypass via _operator.methodcaller](https://junglewise.ai/threats/cve-2025-71375-picklescan-detection-bypass-via-operator-methodcaller)
- [picklescan security bypass via operator.methodcaller](https://junglewise.ai/threats/cve-2025-71373-picklescan-security-bypass-via-operator-methodcaller)
- [Picklescan detection bypass via numpy getlincoef gadget](https://junglewise.ai/threats/cve-2025-71372-picklescan-detection-bypass-via-numpy-getlincoef-gadget)
- [picklescan safety check bypass via PyTorch decoder basichandlers](https://junglewise.ai/threats/cve-2025-71369-picklescan-safety-check-bypass-via-pytorch-decoder-basichandlers)
- [picklescan security bypass via _operator.attrgetter function call](https://junglewise.ai/threats/cve-2025-71367-picklescan-security-bypass-via-operator-attrgetter-function-call)
