CVE-2026-68746: Livebook Teams identity check fails open when the deployment group is unresolvable, allowing unauthenticated access
Summary
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.handlecall/3 in lib/livebook/hubs/teamclient.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/livebookteams.ex returns empty identity metadata and allows the request to continue instead of halting it. LivebookWeb.UserPlug.buildcurrentuser/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.
Configurations
This vulnerability affects Livebook servers that enforce identity through Livebook Teams. Servers not connected to Livebook Teams, or connected without a deployment group, are not affected.
Livebook Teams has also been changed to reject deletion of a deployment group while agents belonging to it are connected, which removes the most direct route into the vulnerable state. A connected agent may still reach an unresolvable cached deployment group as a result of connection failures or network errors.
Other sources
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.handlecall/3 in lib/livebook/hubs/teamclient.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/livebookteams.ex returns empty identity metadata and allows the request to continue instead of halting it. LivebookWeb.UserPlug.buildcurrentuser/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.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
erlang/livebookto a version that resolves this vulnerability.Fixed in 0.19.9 - Upgrade
Upgrade
livebookto a version that resolves this vulnerability.Fixed in 0.19.9
Event History
Frequently Asked Questions
What is the severity of CVE-2026-68746?
CVE-2026-68746 has a risk rating of 77, indicating a high severity level.
What does CVE-2026-68746 exploit?
CVE-2026-68746 exploits a failure to securely check identity, allowing unauthenticated access to a Livebook server.
How do I mitigate CVE-2026-68746?
To mitigate CVE-2026-68746, ensure the deployment group is resolvable and not configured to fail open.
What systems are impacted by CVE-2026-68746?
CVE-2026-68746 affects Livebook servers that enforce identity through Livebook Teams.
What can happen if CVE-2026-68746 is not resolved?
If CVE-2026-68746 is not resolved, unauthenticated network clients may gain full access to sensitive data on the Livebook server.