CVE-2026-102832
Description
A flaw was found in JupyterLab. This vulnerability allows an untrusted document to gain trusted status without intended user authorization. When a trust confirmation prompt is displayed, switching the active document causes JupyterLab to grant trust to whichever document is currently focused rather than the document that triggered the prompt. Consequently, an attacker could convince a user to open an untrusted notebook that unintentionally receives trusted status, enabling embedded commands to execute without prompts.
Statement
A MODERATE severity vulnerability was found in JupyterLab, which is bundled in Red Hat OpenShift AI (RHOAI) workbench, notebook, and training container images. When a trust confirmation prompt is open, the markdownviewer:trust and notebook:trust command-link handlers resolve the document to trust from the currently active widget rather than the document whose command button was clicked. If the user switches to a different document while the prompt is open and then chooses Trust, JupyterLab marks the newly focused document as trusted while leaving the clicked document untrusted. An attacker could exploit this by convincing a user to open an untrusted notebook that unintentionally receives trusted status, allowing commands embedded in Markdown files or notebook outputs to run without further prompts; trusting a notebook also marks all of its cells trusted and persists the trust state. Exploitation requires no privileges but does require user interaction and a specific sequence of actions, which is reflected in the CVSS 3.1 score of 4.2 (AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N); this matches the upstream severity assessment. Because the impact is MODERATE and the CVSS score is below 7.0, Red Hat has deferred the fix for the affected RHOAI container images, as trackers are not filed for MODERATE severity flaws without a higher CVSS score. The residual risk is limited by the high attack complexity and the required user interaction, but a successful attack could allow embedded commands in an attacker-supplied document to execute in the user's session with low confidentiality and integrity impact.
Mitigation
Upstream documents the following workarounds for users unable to update immediately, while advising that this issue be treated as defense-in-depth and updated at the earliest opportunity:
1. Disable the command linker by setting "@jupyterlab/apputils-extension:sanitizer": {"allowCommandLinker": false} in the JupyterLab page settings. This removes the ability to execute frontend commands from Markdown files and notebook outputs altogether; buttons in those documents then do nothing when clicked, documentation and extensions that use command links for navigation stop working, and the setting applies to every document, not only untrusted ones.
2. If disabling the command linker is not desirable, users should choose "Run Once" rather than "Trust" when the prompt appears; the command runs but no document is marked as trusted, so no document can be trusted in error.
Common Vulnerability Scoring System (CVSS) Score Details
Info alert:Important note
CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).
The following CVSS metrics and score provided are preliminary and subject to review.
CVSS v3 Score Breakdown
| Red Hat | NVD | cve.org | |
|---|---|---|---|
| Base Score | 4.2 | N/A | 4.2 |
| Attack Vector | Network | N/A | Network |
| Attack Complexity | High | N/A | High |
| Privileges Required | None | N/A | None |
| User Interaction | Required | N/A | Required |
| Scope | Unchanged | N/A | Unchanged |
| Confidentiality | Low | N/A | Low |
| Integrity Impact | Low | N/A | Low |
| Availability Impact | None | N/A | None |
Vector
Red Hat: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N
cve.org: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.