Miggo Logo

GHSA-7cq8-mj8x-j263: Picklescan has a missing detection when calling built-in python idlelib.autocomplete.AutoComplete.fetch_completions

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 is a missing detection in the picklescan library. The library is designed to scan pickle files for potentially malicious code but failed to recognize idlelib.autocomplete.AutoComplete.fetch_completions as a dangerous function. The proof-of-concept demonstrates that this function can be used to execute arbitrary commands by crafting a special __reduce__ method in a class, which is then serialized into a pickle file.

The provided patch aecd11be98702caa9ba9b12189d91ad596a36114 directly addresses this issue by adding "idlelib.autocomplete": {"AutoComplete.get_entity", "AutoComplete.fetch_completions"} to the denylist in src/picklescan/scanner.py. This ensures that any future scans will correctly identify pickle files attempting to use this function.

When a victim loads the malicious pickle file, the AutoComplete.fetch_completions function is called, which would appear in a runtime profile or stack trace. Therefore, this function is the key indicator of exploitation for this vulnerability.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Summ*ry Usin* i*l*li*.*uto*ompl*t*.*uto*ompl*t*.**t**_*ompl*tions, 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*

Reasoning

T** vuln*r**ility is * missin* **t**tion in t** `pi*kl*s**n` li*r*ry. T** li*r*ry is **si*n** to s**n pi*kl* *il*s *or pot*nti*lly m*li*ious *o** *ut **il** to r**o*niz* `i*l*li*.*uto*ompl*t*.*uto*ompl*t*.**t**_*ompl*tions` *s * **n**rous *un*tion. T