CVE-2026-102831
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 8 - wyżej niż 8% wszystkich znanych CVE
Streszczenie
JupyterLab to rozszerzalne środowisko do interaktywnych i powtarzalnych obliczeń, oparte na architekturze Jupyter Notebook. Od JupyterLab 4.5.0 do 4.5.11 i 4.6.4, od Notebook 7.5.0 do 7.6.3 oraz od JupyterLite Core 0.7.0 do 0.8.4 ścieżka wklejania komórek ze schowka systemowego przyjmuje kontrolowany przez atakującego JSON komórki bez czyszczenia metadata.trusted. Gdy useSystemClipboardForCells jest aktywne, a pasteCodeCellsWithoutOutput wyłączone, wklejona komórka kodu może oznaczyć wyjście HTML jako zaufane, obejść sanityzację wyjścia i wykonać skrypt w uwierzytelnionym origin JupyterLab bez wykonywania komórki. Komórki Markdown i raw nie są dotknięte, ponieważ ich wyjście jest sanityzowane. Problem naprawiono w JupyterLab 4.5.11 i 4.6.4, Notebook 7.6.3 oraz JupyterLite Core 0.8.4.
Ocena ryzyka
Atakujący może wykonać dowolny skrypt w kontekście uwierzytelnionej sesji JupyterLab, co może prowadzić do kradzieży danych lub przejęcia sesji.
Rekomendacja
Zaktualizuj JupyterLab do wersji 4.5.11 lub 4.6.4, Notebook do 7.6.3, a JupyterLite Core do 0.8.4.
Inne podatności w JupyterLab
Zobacz wszystkie- CVE-2026-102830Średnie
JupyterLab to rozszerzalne środowisko do interaktywnych i powtarzalnych obliczeń, oparte na architekturze Jupyter Notebook. Od wersji 3.0.0 do 4.5.11 i 4.6.4 oraz w JupyterLite Core 0.8.3 i wcześniejszych, nagłówek Plural-Forms w wybranym pakiecie językowym innej firmy może dołączyć JavaScript po prawidłowej regule liczby mnogiej, ponieważ walidacja wyrażenia regularnego akceptuje tylko prefiks bez wymagania pełnego dopasowania. JupyterLab przekazuje zaakceptowane wyrażenie do new Function, więc załadowanie katalogu i przetłumaczenie ciągu liczby mnogiej wykonuje dołączony kod w uwierzytelnionym pochodzeniu JupyterLab. Tam, gdzie jądra, terminale i API serwera Jupyter są wystawione, kod może używać uwierzytelnionych API serwera do odczytu lub modyfikacji plików i uruchamiania kodu. Wpływ jest znacznie bardziej ograniczony w JupyterLite, ponieważ zazwyczaj brakuje mu większości wystawionych powierzchni serwera Jupyter. Domyślna lokalizacja angielska nie jest dotknięta, ponieważ nie ładuje katalogu tłumaczeń. Problem został naprawiony w JupyterLab 4.5.11 i 4.6.4 oraz JupyterLite Core 0.8.4.
- CVE-2026-42557Krytyczne
JupyterLab przed wersją 4.5.7 posiada sanitizer HTML, który zezwala na atrybuty data-commandlinker-command i data-commandlinker-args na elementach button. CommandLinker nasłuchuje kliknięć na całym dokumencie i wykonuje nazwane polecenia bez sprawdzania, czy element pochodzi z zaufanego interfejsu JupyterLab. Notatnik z osadzonym przyciskiem w komórce HTML może wywołać dowolne polecenia JupyterLab, w tym wykonanie kodu, po jednym kliknięciu użytkownika.
- CVE-2026-102904Średnie
JupyterLab to rozszerzalne środowisko do interaktywnych i powtarzalnych obliczeń. Od wersji 4.0.0 do 4.5.11 i 4.6.4 żądanie odinstalowania rozszerzenia PyPI Extension Manager trafia do ExtensionHandler.post, który waliduje nazwy rozszerzeń do instalacji, ale przekazuje nazwy do odinstalowania do PyPIExtensionManager.uninstall i python -m pip uninstall bez odrzucania wartości przypominających opcje. Uwierzytelniony użytkownik z dostępem do API rozszerzeń może dostarczyć opcję pip requirements, aby zmusić serwer do odczytu lokalnego pliku lub pobrania wewnętrznego adresu URL, a odbite błędy parsowania mogą zwrócić pierwszą nieparsowalną linię lub treść odpowiedzi.
- CVE-2026-73417Wysokie
JupyterLab od wersji 3.3.0 do 4.5.10 i 4.6.2 ma podatność w ustawieniach notebooka, gdzie ustawienia sideBySideLeftMarginOverride i sideBySideRightMarginOverride nie są poprawnie walidowane przed wstawieniem do stylu. Spreparowany plik overrides.json może zawierać instrukcje wykonywane jako kod, a zaimportowanie go lub automatyczne zastosowanie przez atakującego może prowadzić do wykonania kodu z uprawnieniami użytkownika.
- CVE-2026-73416Średnie
JupyterLab od wersji 4.5.0 do 4.5.10 i 4.6.2 ma podatność w menedżerze rozszerzeń PyPI. Wymuszanie blocked_extensions_uris używa słabszej normalizacji niż kanoniczna nazwa pakietu PyPI. Uwierzytelniony użytkownik może zażądać instalacji pakietu równoważnego PyPI, np. JupyterLab.Git dla zablokowanego jupyterlab-git, co pozwala obejść listę blokad.
- CVE-2026-73627Średnie
JupyterLab (pakiet pip 'jupyterlab') w wersjach >=4.1.0,<=4.5.9 oraz >=4.6.0,<=4.6.1 zawiera obejście egzekwowania zasad blokad menedżera wtyczek. Dwie luki po stronie serwera pozwalają uwierzytelnionemu użytkownikowi ominąć zasady blokad administratora poprzez bezpośrednie żądania do punktu końcowego /lab/api/plugins, umożliwiając włączanie lub wyłączanie zablokowanych wtyczek — w tym wtyczek podrzędnych rozszerzeń wielowtyczkowych oraz wtyczek zablokowanych mechanizmem 'lock all'. Może to wpłynąć na integralność danych i ominąć zabezpieczenia lub ograniczenia (np. limity pobierania/wysyłania) wdrożone przez zablokowane wtyczki. Naprawiono w wersjach 4.6.2 i 4.5.10.
- CVE-2026-73626Wysokie
JupyterLab w wersjach >=4.6.0,<=4.6.1 oraz <=4.5.9 zawiera lukę w egzekwowaniu listy dozwolonych/zablokowanych w PyPIExtensionManager.install(). Brakujące 'await' powoduje, że coroutine is_install_allowed nigdy nie jest wykonywana, więc sprawdzenie listy dozwolonych/zablokowanych nie jest egzekwowane dla bezpośrednich wywołań install(). Standardowe API HTTP i interfejs Extension Managera nie są dotknięte, ponieważ wykonują osobne, poprawnie oczekiwane sprawdzenie. Problem dotyczy tylko wdrożeń, gdzie niestandardowe rozszerzenie lub integracja importuje PyPIExtensionManager i wywołuje install() bezpośrednio z nazwą pakietu wpływającą z niezaufanego wejścia, skonfigurowano listę dozwolonych/zablokowanych, włączono menedżer rozszerzeń PyPI oraz wyłączono jądra i terminale lub przekazano je do zdalnych hostów. Poprawiono w JupyterLab 4.6.2 i 4.5.10.
- CVE-2026-73415Wysokie
JupyterLab przed wersjami 4.5.10 i 4.6.2 zawiera podatność na cross-site scripting w komponencie ImageViewer. Specjalnie spreparowany obraz SVG otwierany w podglądzie obrazów, a następnie w nowej karcie przeglądarki, zachowuje kontekst samego pochodzenia, co umożliwia wykonanie dowolnego kodu na serwerze JupyterLab.
- CVE-2026-67338Średnie
JupyterLab przed wersją 4.5.9 zawiera podatność na trwałe cross-site scripting (XSS) w Menedżerze Rozszerzeń, która nie waliduje protokołów URI w metadanych pakietów. Atakujący mogą publikować złośliwe pakiety PyPI z adresami URL javascript: w metadanych projektu, które wykonują dowolny kod JavaScript w kontekście JupyterLab po kliknięciu nazwy rozszerzenia.
- CVE-2026-42266Wysokie
JupyterLab w wersjach od 4.0.0 do 4.5.6 nieprawidłowo egzekwuje listę dozwolonych rozszerzeń (allowed_extensions_uris) w Menedżerze Rozszerzeń PyPI. Pozwala to na instalowanie rozszerzeń spoza domyślnego indeksu PyPI, co może prowadzić do uruchomienia niebezpiecznego kodu.
Oryginalny opis (angielski, źródło NVD)
JupyterLab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture. From JupyterLab 4.5.0 until 4.5.11 and 4.6.4, from Notebook 7.5.0 until 7.6.3, and from JupyterLite Core 0.7.0 until 0.8.4, the system clipboard cell-paste path accepts attacker-controlled cell JSON without clearing metadata.trusted. When useSystemClipboardForCells is active and pasteCodeCellsWithoutOutput is disabled, a pasted code cell can mark HTML output as trusted, bypass output sanitization, and execute script in the authenticated JupyterLab origin without executing the cell. Markdown and raw cells are not affected because their output is sanitized. This issue is fixed in JupyterLab 4.5.11 and 4.6.4, Notebook 7.6.3, and JupyterLite Core 0.8.4.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

