Miggo Logo

GHSA-5qwp-399c-mjwf: Picklescan has a missing detection when calling built-in python trace.Trace.run

N/A

CVSS Score

Basic Information

CVE ID
-
EPSS Score
-
CWE
-
Published
8/26/2025
Updated
8/26/2025
KEV Status
No
Technology
TechnologyPython

Technical Details

CVSS Vector
-
Package NameEcosystemVulnerable VersionsFirst Patched Version
picklescanpip< 0.0.290.0.29

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability GHSA-5qwp-399c-mjwf describes a missing detection in picklescan for the built-in Python function trace.Trace.run. The provided commit aecd11be98702caa9ba9b12189d91ad596a36114 directly addresses this issue.

The analysis of the commit shows modifications to src/picklescan/scanner.py, where a dictionary named dangerous_globals is maintained. This dictionary serves as a denylist for functions and modules that are considered unsafe to be present in a pickle file.

The patch adds a new entry for the trace module: "trace": {"Trace.run", "Trace.runctx"}. This indicates that prior to this patch, picklescan was not checking for the usage of Trace.run or Trace.runctx, allowing a specially crafted pickle file to execute arbitrary code using these functions, as demonstrated in the vulnerability's Proof of Concept.

Therefore, the vulnerable functions are the ones that were missing from the detection list. During an exploit, a call to trace.Trace.run (or trace.Trace.runctx) would appear in the runtime profile. The vulnerability itself is the omission in picklescan's scanner logic, which is fixed by explicitly adding these functions to the list of dangerous globals.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Summ*ry Usin* tr***.Tr***.run, w*i** is * *uilt-in pyt*on li*r*ry *un*tion to *x**ut* r*mot* pi*kl* *il*. ### **t*ils T** *tt**k p*ylo** *x**ut*s in t** *ollowin* st*ps: *irst, t** *tt**k*r *r**t t** p*ylo** *y **llin* to tr***.Tr***.run *un*

Reasoning

T** vuln*r**ility **S*-*qwp-****-mjw* **s*ri**s * missin* **t**tion in pi*kl*s**n *or t** *uilt-in Pyt*on *un*tion `tr***.Tr***.run`. T** provi*** *ommit `****************************************` *ir**tly ***r*ss*s t*is issu*. T** *n*lysis o* t** *