CVE-2026-23528: Dask distributed Vulnerable to Remote Code Execution via Jupyter Proxy and Dashboard

Published Jan 16, 2026
·
Updated

Impact When Jupyter Lab, jupyter-server-proxy and Dask distributed are all run together it is possible to craft a URL which will result in code being executed by Jupyter due to a cross-side-scripting (XSS) bug in the Dask dashboard.

It is possible for attackers to craft a phishing URL that assumes Jupyter Lab and Dask may be running on localhost and using default ports. If a user clicks on the malicious link it will open an error page in the Dask Dashboard via the Jupyter Lab proxy which will cause code to be executed by the default Jupyter Python kernel.

In order for a user to be impacted they must be running Jupyter Lab locally on the default port (with the jupyter-server-proxy) and a Dask distributed cluster on the default port. Then they would need to click the link which would execute the malicious code.

Patches This has been fixed in the 2026.1.1 release. All users should upgrade to this version.

Mitigations There are no known workarounds for this bug. The only complete solution is to upgrade to a newer release of Dask. However, there are a few things you could do to reduce your risk.

It is possible to avoid code execution via Jupyter by uninstalling the jupyter-server-proxy and accessing the Dask dashboard directly at it's URL. However, it is still possible for an attacker to craft a URL that executes JavaScript in the user's browser in the Dask dashboard. Which is still a moderate vulnerability. Therefore we recommend all users upgrade to the latest Dask release.

Another potential mitigation is to ensure both Jupyter and the Dask dashboard are running on non-standard ports. While this doesn't resolve the problem it reduces the chance of this being exploited. If an attacker knew which ports you were using they could still craft a malicious URL, but it would require a more targeted attack.

Other sources

Dask distributed is a distributed task scheduler for Dask. Prior to 2026.1.0, when Jupyter Lab, jupyter-server-proxy, and Dask distributed are all run together, it is possible to craft a URL which will result in code being executed by Jupyter due to a cross-side-scripting (XSS) bug in the Dask dashboard. It is possible for attackers to craft a phishing URL that assumes Jupyter Lab and Dask may be running on localhost and using default ports. If a user clicks on the malicious link it will open an error page in the Dask Dashboard via the Jupyter Lab proxy which will cause code to be executed by the default Jupyter Python kernel. This vulnerability is fixed in 2026.1.0.

— MITRE

Affected Software

3 affected componentsFixes available
pypi/dask-distributed<2026.1.0
pip/distributed<2026.1.1
2026.1.1
Anaconda Dask Python<2026.1.0

Event History

Jan 16, 2026
CVE Published
via MITRE·04:44 PM
Data Sourced
via MITRE·04:44 PM
DescriptionWeakness
Advisory Published
via GitHub·04:58 PM
Data Sourced
via GitHub·04:58 PM
DescriptionWeaknessAffected Software
Data Sourced
via NVD·05:15 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·05:15 PM
RemedyAffected Software
Dec 19, 58164
Event
via NVD·11:01 PM

Frequently Asked Questions

1

What is the severity of CVE-2026-23528?

CVE-2026-23528 has been classified as a high severity vulnerability due to its potential for remote code execution.

2

How do I fix CVE-2026-23528?

To fix CVE-2026-23528, you should upgrade to Dask distributed version 2026.1.1 or later.

3

What software is affected by CVE-2026-23528?

CVE-2026-23528 affects Dask distributed versions prior to 2026.1.1, and interactions with Jupyter Lab and jupyter-server-proxy.

4

What type of attack is associated with CVE-2026-23528?

CVE-2026-23528 is associated with remote code execution attacks that could compromise the integrity of systems using affected software.

5

Is CVE-2026-23528 a client-side or server-side vulnerability?

CVE-2026-23528 is primarily a server-side vulnerability, impacting services running Dask distributed with Jupyter components.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203