JupyterLab: Sicherheitsabfrage für Befehlslinks kann ein anderes als das angeklickte Dokument als vertrauenswürdig einstufen
Beschreibung
Eine Markdown-Datei oder eine Notebook-Ausgabe kann eine Schaltfläche enthalten, die einen JupyterLab-Befehl ausführt. Seit 4.5.7 öffnet der erste Klick auf eine solche Schaltfläche einen Dialog mit der Nennung des Befehls sowie den Optionen „Abbrechen“, „Einmal ausführen“ und „Vertrauen“. Die Auswahl von „Vertrauen“ führt den Befehl aus und markiert das Dokument als vertrauenswürdig, sodass spätere Schaltflächen ohne Aufforderung ausgeführt werden.
Welches Dokument markiert wird, entscheidet sich bei der Beantwortung durch den Benutzer, nicht beim Klicken. Beide Vertrauensbefehle lesen das Dokument aus, das in diesem Moment aktiv ist: markdownviewer:trust verwendet tracker.currentWidget und notebook:trust eine äquivalente Abfrage. Wenn ein anderes Dokument aktiv wird, während der Dialog geöffnet ist, wird jenes Dokument als vertrauenswürdig markiert, während das ursprünglich vom Benutzer betrachtete Dokument nicht vertrauenswürdig bleibt.
Benutzer sind betroffen, wenn alle folgenden Bedingungen erfüllt sind:
- Sie verwenden JupyterLab 4.5.7 bis 4.6.3 oder eine Anwendung, die dies bündelt, wie Notebook 7.5+;
- sie öffnen eine Markdown-Datei oder ein Notebook von Dritten und klicken darin auf eine Schaltfläche;
- sie wählen „Vertrauen“ anstelle von „Abbrechen“ oder „Einmal ausführen“; und
- ein zweites Dokument wird zum aktiven Dokument, während der Dialog geöffnet ist (z. B. durch die Wiederherstellung eines Arbeitsbereichs beim Start, die Aktivierung eines Widgets durch eine Erweiterung oder einen Befehl zum Öffnen einer Datei).
Auswirkungen
Der Benutzer verliert die Kontrolle darüber, welchem Dokument vertraut wurde. Jede Schaltfläche in dem (fälschlicherweise) als vertrauenswürdig markierten Dokument wird fortan ohne Rückfrage ausgeführt. Stammt dieses Dokument ebenfalls aus einer nicht vertrauenswürdigen Quelle, lösen dessen Schaltflächen bei einem einfachen Klick ohne Bestätigung aus. Genau diesen Zustand sollte die mit GHSA-mqcg-5x36-vfcg. eingeführte Abfrage verhindern.
Der ausgeführte Befehl hatte die Zustimmung des Benutzers, da der Dialog ihn nannte und „Vertrauen“ geklickt wurde. Das ursprünglich gelesene Dokument bleibt nicht vertrauenswürdig und fordert beim nächsten Klick erneut eine Bestätigung an.
Notebooks werden auf die Festplatte geschrieben
Handelt es sich bei dem markierten Dokument um ein Notebook, wirkt sich dies über die aktuelle Browsersitzung hinaus aus. notebook:trust markiert jede Zelle als vertrauenswürdig und speichert anschließend die Datei. Dies führt dazu, dass der Server sie signiert, wodurch das Notebook auch beim nächsten Öffnen vertrauenswürdig bleibt. Beim Speichern werden zudem alle ungespeicherten Änderungen in dieses Notebook geschrieben. Zwar erscheint zuvor eine zweite Bestätigung, diese weist jedoch lediglich darauf hin, dass ein vertrauenswürdiges Notebook verborgenen Code ausführen kann, ohne den Dateinamen zu nennen; sie zeigt dem Benutzer also nicht, welches Notebook als vertrauenswürdig eingestuft wird.
Eine auf diese Weise markierte Markdown-Vorschau bleibt nur bis zum Schließen vertrauenswürdig. Es wird nichts auf die Festplatte geschrieben.
Patches
JupyterLab v4.6.4 und v4.5.11 enthalten den Patch. Die Vertrauensanforderung überträgt nun das tatsächlich angeklickte Dokument, und der Befehl wird erst ausgeführt, nachdem genau dieses Dokument markiert wurde.
Benutzer von Anwendungen, die von JupyterLab abhängen, wie z. B. Notebook v7+, sollten das Paket jupyterlab ebenfalls aktualisieren.
Workarounds
Angesichts der hohen Komplexität eines potenziellen Exploits wird empfohlen, diese Maßnahme als Defense-in-Depth zu betrachten und baldmöglichst zu aktualisieren, anstatt die unten aufgeführten Behelfslösungen anzuwenden. Für Benutzer in hochsensiblen Umgebungen, die kein Upgrade durchführen können, stehen jedoch folgende Workarounds zur Verfügung:
Deaktivieren Sie den Command-Linker, wodurch die Möglichkeit zur Ausführung von Frontend-Befehlen vollständig entfernt wird:
{
"@jupyterlab/apputils-extension:sanitizer": {
"allowCommandLinker": false
}
}
In dieser Konfiguration reagieren Schaltflächen in Markdown-Dateien und Notebook-Ausgaben bei Klicks nicht mehr. Dokumentationen und Erweiterungen, die Befehlslinks zur Navigation nutzen, funktionieren nicht mehr. Diese Einstellung gilt für alle Dokumente, nicht nur für nicht vertrauenswürdige.
Wenn das Deaktivieren dieser Einstellung nicht infrage kommt und ein Update nicht möglich ist, weisen Sie die Benutzer an, „Einmal ausführen“ statt „Vertrauen“ zu wählen. „Einmal ausführen“ führt den Befehl aus, ohne ein Dokument zu markieren, sodass nichts versehentlich als vertrauenswürdig eingestuft werden kann.
Was zu tun ist
Aktualisieren Sie JupyterLab auf die Versionen v4.6.4 oder v4.5.11. Nutzer abhängiger Anwendungen wie Notebook v7+ sollten das Paket jupyterlab ebenfalls aktualisieren. Falls kein Upgrade möglich ist, deaktivieren Sie den Command Linker über ```json
{
"@jupyterlab/apputils-extension:sanitizer": {
"allowCommandLinker": false
}
}
Betroffene Software
Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.
| Plattform | Paket | Anfällige Versionen | Behoben in |
|---|---|---|---|
| Python (PyPI) | jupyterlab | >= 4.6.0, < 4.6.4, >= 4.5.7, < 4.5.11 | 4.6.4, 4.5.11 |
| Python (PyPI) | jupyterlite-core | >= 0.7.5, < 0.8.4 | 0.8.4 |
| Python (PyPI) | notebook | >= 7.5.6, < 7.6.3 | 7.6.3 |
Verweise
- https://github.com/jupyterlab/jupyterlab/security/advisories/GHSA-jwrc-gm9j-263p
- https://nvd.nist.gov/vuln/detail/CVE-2026-102832
- https://github.com/jupyterlab/jupyterlab/commit/0fc18ab4ef67e431a8f6560e387193baf786c70a
- https://github.com/jupyterlab/jupyterlab/commit/b64bc88b8ca034cf158604a5cc48ca9170ea453b
- https://github.com/jupyterlab/jupyterlab/commit/f7e5f9803fdf2aaaa0e9bfb9cc73386a8cc5f0b2
- https://github.com/jupyterlab/jupyterlab
- https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.11
- https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.4
- CVSS-Vektor
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N- Schwäche (CWE)
CWE-367, CWE-863- Plattform
- Python (PyPI)
- Paket
jupyterlab, jupyterlite-core, notebook- Veröffentlicht
- 15.10.2026
- Aktualisiert
- 20.10.2026 13:35
Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.
OSV / GitHub Advisory Database - GHSA-jwrc-gm9j-263p - CC BY 4.0
Schwachstellenhistorie: jupyterlab
Alle veröffentlichten Schwachstellen dieses Pakets (Python (PyPI)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.
- Einträge insgesamt
- 19
- Erste → letzte
- 08.2021 10.2026
- Ohne Fix
- 0
- In Angriffen ausgenutzt
- 0
Verteilung nach Schweregrad
- Kritisch 1
- Hoch 8
- Mittel 8
- Niedrig 2
Veröffentlichungen pro Jahr
- 2021: 1
- 2022: 0
- 2023: 0
- 2024: 4
- 2025: 1
- 2026: 13
-
JupyterLab: Sicherheitsabfrage für Befehlslinks kann ein anderes als das angeklickte Dokument als vertrauenswürdig einstufen dieser Eintrag
Erkennen Sie Schwachstellen in Ihrer Anwendung
Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.