- Notifications
You must be signed in to change notification settings - Fork150
Reflected XSS issue in host parameter
Description
Impact
We have identified a reflected cross-site scripting (XSS) issue injupyter-server-proxy[1]. The/proxy endpoint accepts ahost path segment in the format/proxy/<host>. When this endpoint is called with an invalidhost value,jupyter-server-proxy replies with a response that includes the value ofhost, without sanitization [2]. A third-party actor can leverage this by sending a phishing link with an invalidhost value containing custom JavaScript to a user. When the user clicks this phishing link, the browser renders the response ofGET /proxy/<host>, which runs the custom JavaScript contained inhost set by the actor.
As any arbitrary JavaScript can be run after the user clicks on a phishing link, this issue permits extensive access to the user's JupyterLab instance for an actor. This issue exists in the latest release ofjupyter-server-proxy, currentlyv4.1.2.
Impacted versions:>=3.0.0,<=4.1.2
Patches
The patches are included in==4.2.0 and==3.2.4.
Workarounds
Server operators who are unable to upgrade can disable thejupyter-server-proxy extension with:
jupyter server extension disable jupyter-server-proxyReferences
[1] :https://github.com/jupyterhub/jupyter-server-proxy/
[2] :
| "Host '{host}' is not allowed. " |
Severity
CVSS v3 base metrics
CVE ID
Weaknesses
WeaknessCWE-79
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.Learn more on MITRE.WeaknessCWE-116
Improper Encoding or Escaping of Output
The product prepares a structured message for communication with another component, but encoding or escaping of the data is either missing or done incorrectly. As a result, the intended structure of the message is not preserved.Learn more on MITRE.Credits
dlqqqCoordinator