HIGH🇬🇧 English

CVE-2026-68746

Failing Open w Livebook Teams — nieautoryzowany pełny dostęp do serwera

CVSS 7.7v4.0pub. 2026-08-05upd. 2026-08-10

Podatność typu 'Failing Open' (CWE-636) w aplikacji Livebook pozwala nieuwierzytelnionemu klientowi sieciowemu uzyskać pełny dostęp do serwera Livebook skonfigurowanego z wymuszaniem tożsamości przez Livebook Teams. Błąd jest szczególnie groźny, ponieważ przyznaje atakującemu uprawnienia równoważne z uprawnieniami pełnoprawnego członka organizacji.

Pokaż oryginał (EN)

Not Failing Securely ('Failing Open') vulnerability in livebook-dev livebook allows an unauthenticated network client to obtain full access to a Livebook server that enforces identity through Livebook Teams. A Livebook Agent or App Server connected to Livebook Teams caches the identifier of the deployment group it belongs to, and resolves that identifier against a locally cached list of deployment groups on every request in order to decide whether Teams identity enforcement is active. Livebook.Hubs.TeamClient.handle_call/3 in lib/livebook/hubs/team_client.ex does not distinguish a deployment group that could not be resolved from one that was resolved with identity enforcement switched off: the clause matches only the case where a group was found with enforcement enabled, and falls through to a catch-all that reports enforcement as switched off for everything else. The two neighbouring functions that decide user and application access resolve the same identifier and treat the same unresolved result as a denial. When the identity status is reported as switched off, Livebook.ZTA.LivebookTeams.authenticate/3 in lib/livebook/zta/livebook_teams.ex returns empty identity metadata and allows the request to continue instead of halting it. LivebookWeb.UserPlug.build_current_user/3 merges that empty metadata into a newly built user, whose access type defaults to full access, and LivebookWeb.AuthPlug.authorized?/1 grants access to any user holding full access. The cached identifier becomes unresolvable when the deployment group it refers to is deleted while the agent is not connected to receive the change, most concretely when a deployment group is deleted during the window in which an agent is disconnected or reconnecting. The client removes the group from its cached list without clearing the identifier that refers to it. Any client able to reach the affected server over the network is then granted the same access as a fully privileged member of the organisation, including the ability to read notebooks and configured secrets, execute code on the server's runtime, and disrupt its operation. This issue affects livebook: from 0.19.7 before 0.19.9.

🤖 Analiza AI
Jak działa

Agent lub App Server połączony z Livebook Teams przechowuje lokalnie w pamięci podręcznej identyfikator grupy wdrożeniowej (deployment group) i przy każdym żądaniu sprawdza go na lokalnej liście grup, aby ustalić, czy wymuszanie tożsamości jest aktywne. Funkcja `Livebook.Hubs.TeamClient.handle_call/3` nie rozróżnia sytuacji, w której identyfikator grupy nie może być rozwiązany (brak w cache), od sytuacji, w której znaleziona grupa ma wyłączone wymuszanie tożsamości — obie przypadki trafiają do klauzuli catch-all, która zgłasza wymuszanie jako wyłączone. Gdy status tożsamości jest zwracany jako wyłączony, funkcja `Livebook.ZTA.LivebookTeams.authenticate/3` zwraca puste metadane tożsamości i przepuszcza żądanie dalej zamiast je odrzucić, a `LivebookWeb.UserPlug.build_current_user/3` scala te puste metadane z nowo utworzonym użytkownikiem, którego domyślny typ dostępu to pełny dostęp. Identyfikator grupy staje się niemożliwy do rozwiązania w momencie usunięcia grupy wdrożeniowej w oknie czasowym, gdy agent jest rozłączony lub się ponownie łączy — klient usuwa grupę z listy, lecz nie czyści identyfikatora, który do niej odsyłał.

Skutki

Dowolny klient sieciowy mogący dotrzeć do podatnego serwera uzyskuje dostęp równoważny uprawnieniom pełnoprawnego członka organizacji, w tym możliwość odczytu notebooków i skonfigurowanych sekretów, wykonania dowolnego kodu na środowisku uruchomieniowym serwera oraz zakłócenia jego działania.

Mitygacja

Należy zaktualizować Livebook do wersji 0.19.9 lub nowszej. Dostępne są trzy commity naprawcze: 2d3a2c710c880abd24a2bc888d3cf5239d98cf72, d374e90647edbb00286bfee9182c0161d29a8e07 oraz d6d0dfa746b172540442852f74de4a9deacc433b w repozytorium livebook-dev/livebook na GitHub. Jako obejście tymczasowe należy ograniczyć dostęp sieciowy do serwerów Livebook wyłącznie do zaufanych hostów.

Kogo dotyczy

Livebook w wersjach od 0.19.7 do 0.19.9 (bez 0.19.9), przy konfiguracji z Livebook Teams Agent lub App Server i włączonym wymuszaniem tożsamości.

Uwagi

Podatność ujawniona przez Erlang Ecosystem Foundation (ERLEF) jako CNA. Podatność jest możliwa do wykorzystania wyłącznie w konkretnym oknie czasowym — gdy deployment group zostaje usunięta podczas rozłączenia agenta. Szczegółowe advisory dostępne pod adresem: https://github.com/livebook-dev/livebook/security/advisories/GHSA-74j5-6grg-g6wj

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
  • Livebook

    APP
    Livebook
    0.19.7 – 0.19.9 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2026-66298HIGH8.6PL ✓ten sam produkt

Livebook: nieautoryzowane wykonanie kodu przez sfałszowane zdarzenia klawiatury

CVE-2026-66881HIGH7.0PL ✓ten sam produkt

Path Traversal w livebook-dev Livebook — zapis pliku poza katalogiem sesji

CVE-2023-35174HIGH8.6ten sam produkt

Livebook is a web application for writing interactive and collaborative code notebooks. On Windows, it is poss...

CVE-2026-66297MEDIUM4.9ten sam produkt

Improper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in live...

CVE-2026-66885MEDIUM6.8ten sam produkt

Cross-Site Request Forgery (CSRF) vulnerability in livebook-dev livebook allows an attacker to authenticate a ...