Miggo Logo

CVE-2025-30167: Jupyter Core on Windows Has Uncontrolled Search Path Element Local Privilege Escalation Vulnerability

7.3

CVSS Score
3.1

Basic Information

EPSS Score
0.01292%
Published
6/4/2025
Updated
6/4/2025
KEV Status
No
Technology
TechnologyPython

Technical Details

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
jupyter_corepip< 5.8.05.8.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability lies in Jupyter Core's handling of configuration file paths on Windows, specifically concerning the SYSTEM_CONFIG_PATH variable which can be derived from the %PROGRAMDATA% directory. If this directory has weak permissions, an attacker can place malicious configuration files that would be loaded by Jupyter processes, potentially leading to local privilege escalation. The function jupyter_core.paths.jupyter_config_path() is identified as the key vulnerable function because it assembles the list of search paths, including the potentially insecure SYSTEM_CONFIG_PATH. The provided patch (commit 0d225fda61f0edff01d1dfa826764482070dd8c3) modifies the logic in jupyter_core/paths.py to ensure that SYSTEM_CONFIG_PATH defaults to more secure alternatives (like ENV_CONFIG_PATH, which is typically sys.prefix/etc/jupyter) when the safety of using %PROGRAMDATA% cannot be guaranteed (e.g., when _use_programdata is false, or _win_programdata is not set). This change prevents jupyter_config_path() from returning a path list that includes an easily exploitable shared directory by default under vulnerable conditions. Any process using jupyter_config_path() to locate configuration files would have been susceptible.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

## Imp**t On Win*ows, t** s**r** `%PRO*R*M**T*%` *ir**tory is s**r**** *or *on*i*ur*tion *il*s (`SYST*M_*ON*I*_P*T*` *n* `SYST*M_JUPYT*R_P*T*`), w*i** m*y *llow us*rs to *r**t* *on*i*ur*tion *il*s *****tin* ot**r us*rs. Only s**r** Win*ows syst*ms

Reasoning

T** vuln*r**ility li*s in Jupyt*r *or*'s **n*lin* o* *on*i*ur*tion *il* p*t*s on Win*ows, sp**i*i**lly *on**rnin* t** `SYST*M_*ON*I*_P*T*` v*ri**l* w*i** **n ** **riv** *rom t** `%PRO*R*M**T*%` *ir**tory. I* t*is *ir**tory **s w**k p*rmissions, *n *t