CVE-2021-32798: Failure to Sanitize Special Elements into a Different Plane (Special Element Injection) in notebook
Impact
Untrusted notebook can execute code on load. This is a remote code execution, but requires user action to open a notebook.
Patches
5.7.11, 6.4.1
References
OWASP Page on Injection Prevention
For more information
If you have any questions or comments about this advisory, or vulnerabilities to report, please email our security list security@ipython.org.
Credit: Guillaume Jeanne from Google
Example:
A notebook with the following content in a cell and it would display an alert when opened for the first time in Notebook (in an untrusted state):
{ "celltype": "code", "executioncount": 0, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<select><iframe></select><img src=x: onerror=alert('xss')>\n"], "text/plain": [] }, "metadata": {}, "outputtype": "displaydata" } ], "source": [ "" ] }
Other sources
The Jupyter notebook is a web-based notebook environment for interactive computing. In affected versions untrusted notebook can execute code on load. Jupyter Notebook uses a deprecated version of Google Caja to sanitize user inputs. A public Caja bypass can be used to trigger an XSS when a victim opens a malicious ipynb document in Jupyter Notebook. The XSS allows an attacker to execute arbitrary code on the victim computer using Jupyter APIs.
Affected Software
Event History
Frequently Asked Questions
What is CVE-2021-32798?
CVE-2021-32798 is a vulnerability in Jupyter Notebook that allows untrusted notebooks to execute code on load and trigger cross-site scripting (XSS) attacks.
How does CVE-2021-32798 affect Jupyter Notebook?
In affected versions of Jupyter Notebook (up to version 5.7.11 and version 6.4.0), untrusted notebooks can execute code on load and potentially cause XSS attacks.
What is the severity of CVE-2021-32798?
CVE-2021-32798 has a severity rating of 9.6 (critical).
How can I fix CVE-2021-32798 in Jupyter Notebook?
To fix CVE-2021-32798 in Jupyter Notebook, update to a version that includes the patch for this vulnerability. Check the official Jupyter Notebook GitHub repository for the latest releases and security advisories.
What is the Common Weakness Enumeration (CWE) ID for CVE-2021-32798?
The Common Weakness Enumeration (CWE) ID for CVE-2021-32798 is CWE-79, which represents Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').