CVE-2026-23528: CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS) in dask distributed
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.
AI Analysis
Technical Summary
CVE-2026-23528 is a cross-site scripting (XSS) vulnerability classified under CWE-80, CWE-79, and CWE-250, found in the Dask distributed task scheduler prior to version 2026.1.0. The vulnerability manifests when Dask distributed is used in conjunction with Jupyter Lab and jupyter-server-proxy, common in data science and distributed computing environments. An attacker can craft a specially constructed URL that targets the Dask dashboard proxied through Jupyter Lab. When a user clicks this URL, it opens an error page in the Dask dashboard that improperly sanitizes HTML content, allowing malicious scripts to execute in the context of the Jupyter Lab interface. This leads to execution of arbitrary code in the default Jupyter Python kernel without requiring authentication, relying solely on user interaction. The root cause is improper neutralization of script-related HTML tags, enabling injection of executable code. The vulnerability has a CVSS 4.0 base score of 5.3, reflecting medium severity due to network attack vector, low complexity, no privileges or authentication required, but requiring user interaction. While no known exploits are reported in the wild, the potential for phishing attacks targeting users running these tools locally is significant. The issue is resolved in Dask distributed version 2026.1.0 by correcting the input sanitization in the dashboard error page.
Potential Impact
For European organizations, especially those engaged in scientific research, data analytics, and distributed computing using Dask and Jupyter Lab, this vulnerability poses a risk of unauthorized code execution on developer or analyst machines. Successful exploitation could lead to compromise of sensitive data processed within Jupyter notebooks, unauthorized access to internal systems if pivoting is possible, and potential disruption of workflows. Since the attack vector involves phishing URLs targeting localhost services, the impact is primarily on end users who run these tools with default configurations. Confidentiality and integrity of data and code can be compromised, but availability impact is minimal. Organizations with remote or hybrid work environments may see increased risk due to phishing attack surfaces. The vulnerability could also be leveraged as a foothold for further lateral movement if combined with other vulnerabilities or misconfigurations.
Mitigation Recommendations
European organizations should immediately upgrade Dask distributed to version 2026.1.0 or later to apply the fix. Additionally, organizations should enforce best practices such as disabling default ports or restricting access to Jupyter Lab and Dask dashboards via network controls or VPNs. Educate users to be cautious of unsolicited URLs, especially those targeting localhost services. Implement Content Security Policy (CSP) headers where possible to restrict script execution in web interfaces. Regularly audit and monitor logs for unusual access patterns to Jupyter and Dask dashboards. Consider isolating Jupyter and Dask environments using containerization or virtual machines to limit impact of potential exploitation. Finally, review and harden proxy configurations to prevent unauthorized access to internal dashboards.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Switzerland, Belgium
CVE-2026-23528: CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS) in dask distributed
Description
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.
AI-Powered Analysis
Technical Analysis
CVE-2026-23528 is a cross-site scripting (XSS) vulnerability classified under CWE-80, CWE-79, and CWE-250, found in the Dask distributed task scheduler prior to version 2026.1.0. The vulnerability manifests when Dask distributed is used in conjunction with Jupyter Lab and jupyter-server-proxy, common in data science and distributed computing environments. An attacker can craft a specially constructed URL that targets the Dask dashboard proxied through Jupyter Lab. When a user clicks this URL, it opens an error page in the Dask dashboard that improperly sanitizes HTML content, allowing malicious scripts to execute in the context of the Jupyter Lab interface. This leads to execution of arbitrary code in the default Jupyter Python kernel without requiring authentication, relying solely on user interaction. The root cause is improper neutralization of script-related HTML tags, enabling injection of executable code. The vulnerability has a CVSS 4.0 base score of 5.3, reflecting medium severity due to network attack vector, low complexity, no privileges or authentication required, but requiring user interaction. While no known exploits are reported in the wild, the potential for phishing attacks targeting users running these tools locally is significant. The issue is resolved in Dask distributed version 2026.1.0 by correcting the input sanitization in the dashboard error page.
Potential Impact
For European organizations, especially those engaged in scientific research, data analytics, and distributed computing using Dask and Jupyter Lab, this vulnerability poses a risk of unauthorized code execution on developer or analyst machines. Successful exploitation could lead to compromise of sensitive data processed within Jupyter notebooks, unauthorized access to internal systems if pivoting is possible, and potential disruption of workflows. Since the attack vector involves phishing URLs targeting localhost services, the impact is primarily on end users who run these tools with default configurations. Confidentiality and integrity of data and code can be compromised, but availability impact is minimal. Organizations with remote or hybrid work environments may see increased risk due to phishing attack surfaces. The vulnerability could also be leveraged as a foothold for further lateral movement if combined with other vulnerabilities or misconfigurations.
Mitigation Recommendations
European organizations should immediately upgrade Dask distributed to version 2026.1.0 or later to apply the fix. Additionally, organizations should enforce best practices such as disabling default ports or restricting access to Jupyter Lab and Dask dashboards via network controls or VPNs. Educate users to be cautious of unsolicited URLs, especially those targeting localhost services. Implement Content Security Policy (CSP) headers where possible to restrict script execution in web interfaces. Regularly audit and monitor logs for unusual access patterns to Jupyter and Dask dashboards. Consider isolating Jupyter and Dask environments using containerization or virtual machines to limit impact of potential exploitation. Finally, review and harden proxy configurations to prevent unauthorized access to internal dashboards.
Affected Countries
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-01-13T18:22:43.981Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 696a701db22c7ad868c0d10d
Added to database: 1/16/2026, 5:06:37 PM
Last enriched: 1/16/2026, 5:21:07 PM
Last updated: 1/16/2026, 10:00:46 PM
Views: 6
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Related Threats
CVE-2026-21223: CWE-269: Improper Privilege Management in Microsoft Microsoft Edge (Chromium-based)
UnknownCVE-2026-20960: CWE-285: Improper Authorization in Microsoft Microsoft Power Apps
HighCVE-2025-56451: n/a
HighCVE-2026-23800: CWE-266 Incorrect Privilege Assignment in Modular DS
CriticalCVE-2026-23744: CWE-306: Missing Authentication for Critical Function in MCPJam inspector
CriticalActions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console in Console -> Billing for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.