Search

Find a vulnerability

Search criteria Use this form to refine search results.
Full-text search supports keyword queries with ranking and filtering.
You can combine vendor, product, and sources to narrow results.
Enable “Apply ordering” to sort by date instead of relevance.

    12 vulnerabilities by livebook-dev

    CVE-2026-68746 (GCVE-0-2026-68746)

    Vulnerability from nvd – Published: 2026-08-05 19:43 – Updated: 2026-08-06 14:48
    VLAI
    Title
    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.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.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 14:45 UTC
    CWE
    • CWE-636 - Not Failing Securely ('Failing Open')
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.19.7 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.19.7 , < 0.19.9 (other)
    Affected: 0.19.7-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: fc2c87c6b0276705281842acbe17142d1ac4d555 , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-68746",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T14:45:09.939122Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T14:48:46.790Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.Hubs.TeamClient",
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.LivebookWeb.AuthPlug"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/hubs/team_client.ex",
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook_web/plugs/auth_plug.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:handle_call/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:remove_deployment_group/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:fetch_entry/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:authenticate/3"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.AuthPlug\u0027:authorized?/1"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.7",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.Hubs.TeamClient",
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.LivebookWeb.AuthPlug"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/hubs/team_client.ex",
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook_web/plugs/auth_plug.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:handle_call/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:remove_deployment_group/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:fetch_entry/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:authenticate/3"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.AuthPlug\u0027:authorized?/1"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.7",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.7-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.Hubs.TeamClient",
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.LivebookWeb.AuthPlug"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/hubs/team_client.ex",
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook_web/plugs/auth_plug.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:handle_call/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:remove_deployment_group/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:fetch_entry/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:authenticate/3"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.AuthPlug\u0027:authorized?/1"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "d374e90647edbb00286bfee9182c0161d29a8e07",
                      "status": "unaffected"
                    },
                    {
                      "at": "d6d0dfa746b172540442852f74de4a9deacc433b",
                      "status": "unaffected"
                    },
                    {
                      "at": "2d3a2c710c880abd24a2bc888d3cf5239d98cf72",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "fc2c87c6b0276705281842acbe17142d1ac4d555",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThis 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.\u003c/p\u003e\n\u003cp\u003eLivebook 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.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "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.\n\nLivebook 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."
                }
              ],
              "value": "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.\n\nLivebook 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."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.7",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Hugo Bara\u00fana"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eNot Failing Securely (\u0027Failing Open\u0027) vulnerability in livebook-dev livebook allows an unauthenticated network client to obtain full access to a Livebook server that enforces identity through Livebook Teams.\u003c/p\u003e\n\u003cp\u003eA 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. \u003ccode\u003eLivebook.Hubs.TeamClient.handle_call/3\u003c/code\u003e in \u003ccode\u003elib/livebook/hubs/team_client.ex\u003c/code\u003e 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.\u003c/p\u003e\n\u003cp\u003eWhen the identity status is reported as switched off, \u003ccode\u003eLivebook.ZTA.LivebookTeams.authenticate/3\u003c/code\u003e in \u003ccode\u003elib/livebook/zta/livebook_teams.ex\u003c/code\u003e returns empty identity metadata and allows the request to continue instead of halting it. \u003ccode\u003eLivebookWeb.UserPlug.build_current_user/3\u003c/code\u003e merges that empty metadata into a newly built user, whose access type defaults to full access, and \u003ccode\u003eLivebookWeb.AuthPlug.authorized?/1\u003c/code\u003e grants access to any user holding full access.\u003c/p\u003e\n\u003cp\u003eThe 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\u0027s runtime, and disrupt its operation.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.19.7 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Not Failing Securely (\u0027Failing Open\u0027) vulnerability in livebook-dev livebook allows an unauthenticated network client to obtain full access to a Livebook server that enforces identity through Livebook Teams.\n\nA 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.\n\nWhen 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.\n\nThe 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\u0027s runtime, and disrupt its operation.\n\nThis issue affects livebook: from 0.19.7 before 0.19.9."
                }
              ],
              "value": "Not Failing Securely (\u0027Failing Open\u0027) vulnerability in livebook-dev livebook allows an unauthenticated network client to obtain full access to a Livebook server that enforces identity through Livebook Teams.\n\nA 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.\n\nWhen 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.\n\nThe 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\u0027s runtime, and disrupt its operation.\n\nThis issue affects livebook: from 0.19.7 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-115",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-115 Authentication Bypass"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 7.7,
                "baseSeverity": "HIGH",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-636",
                  "description": "CWE-636 Not Failing Securely (\u0027Failing Open\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:43:38.188Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-74j5-6grg-g6wj"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-68746.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-68746"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/d374e90647edbb00286bfee9182c0161d29a8e07"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/d6d0dfa746b172540442852f74de4a9deacc433b"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/2d3a2c710c880abd24a2bc888d3cf5239d98cf72"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Livebook Teams identity check fails open when the deployment group is unresolvable, allowing unauthenticated access"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-68746",
        "datePublished": "2026-08-05T19:43:38.188Z",
        "dateReserved": "2026-07-31T13:23:00.354Z",
        "dateUpdated": "2026-08-06T14:48:46.790Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-66885 (GCVE-0-2026-66885)

    Vulnerability from nvd – Published: 2026-08-05 19:44 – Updated: 2026-08-06 13:09
    VLAI
    Title
    Livebook Teams identity callback lacks state binding, allowing login CSRF
    Summary
    Cross-Site Request Forgery (CSRF) vulnerability in livebook-dev livebook allows an attacker to authenticate a victim's browser session under the attacker's own Livebook Teams identity. When Livebook is configured to use Livebook Teams for identity, Livebook.ZTA.LivebookTeams.handle_request/4 in lib/livebook/zta/livebook_teams.ex handles the OAuth-style callback carrying a teams_identity marker and a code parameter. The clause exchanges that code for an access token and writes the token into the browser session without verifying any value that ties the callback to the browser session that started the login. No state or nonce is generated when the flow is initiated: Livebook.Teams.Requests.create_auth_request/1 in lib/livebook/teams/requests.ex sends an empty request body, so no per-attempt value is ever registered, and the callback clause has nothing to compare against. An attacker who holds membership in the same Livebook Teams organisation as the target instance can therefore begin the login flow themselves, retain the resulting authorization code without redeeming it, and induce a victim to open a crafted URL carrying that code. The victim's browser completes the exchange and the resulting session is bound to the attacker's identity rather than the victim's. The victim is not required to hold any particular privilege, and no credential belonging to the victim is involved. The vulnerability does not allow the attacker to authenticate as the victim. The consequence is that a user believes they are working in their own authenticated session while they are in fact operating as another identity. Work performed in that session is attributed to the attacker's account, and secrets, uploaded data, or notebook results the victim produces are exposed to the attacker rather than kept in the victim's own account. The authorization code must be redeemed within a short window after the login flow begins, which constrains the timing of the attack but not its feasibility. This issue affects livebook: from 0.15.0 before 0.18.7 and from 0.19.0 before 0.19.9.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 13:09 UTC
    CWE
    • CWE-352 - Cross-Site Request Forgery (CSRF)
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.15.0 , < 0.18.7 (semver)
    Affected: 0.19.0 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.15.0 , < 0.18.7 (other)
    Affected: 0.19.0 , < 0.19.9 (other)
    Affected: 0.15.0-cuda12 , < 0.18.7-cuda12 (other)
    Affected: 0.19.0-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 4380a411920531223088267ed1c0ad21f96ef660 , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-66885",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T13:09:14.330707Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T13:09:29.359Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.Livebook.Teams.Requests"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook/teams/requests.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:handle_request/4"
                },
                {
                  "name": "\u0027Elixir.Livebook.Teams.Requests\u0027:create_auth_request/1"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.15.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.Livebook.Teams.Requests"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook/teams/requests.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:handle_request/4"
                },
                {
                  "name": "\u0027Elixir.Livebook.Teams.Requests\u0027:create_auth_request/1"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.15.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.18.7-cuda12",
                  "status": "affected",
                  "version": "0.15.0-cuda12",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.0-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.Livebook.Teams.Requests"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook/teams/requests.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:handle_request/4"
                },
                {
                  "name": "\u0027Elixir.Livebook.Teams.Requests\u0027:create_auth_request/1"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "21c16168263275541a6e076d0c31852c40e09a18",
                      "status": "unaffected"
                    },
                    {
                      "at": "33a052daa386c4ce08a9c39a07fc90f353ff6a51",
                      "status": "unaffected"
                    },
                    {
                      "at": "6ed2e213e9d5a19a70d7fcad5a8d616622cd2084",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "4380a411920531223088267ed1c0ad21f96ef660",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.18.7",
                      "versionStartIncluding": "0.15.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Hugo Bara\u00fana"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eCross-Site Request Forgery (CSRF) vulnerability in livebook-dev livebook allows an attacker to authenticate a victim\u0027s browser session under the attacker\u0027s own Livebook Teams identity.\u003c/p\u003e\n\u003cp\u003eWhen Livebook is configured to use Livebook Teams for identity, \u003ccode\u003eLivebook.ZTA.LivebookTeams.handle_request/4\u003c/code\u003e in \u003ccode\u003elib/livebook/zta/livebook_teams.ex\u003c/code\u003e handles the OAuth-style callback carrying a \u003ccode\u003eteams_identity\u003c/code\u003e marker and a \u003ccode\u003ecode\u003c/code\u003e parameter. The clause exchanges that code for an access token and writes the token into the browser session without verifying any value that ties the callback to the browser session that started the login. No \u003ccode\u003estate\u003c/code\u003e or nonce is generated when the flow is initiated: \u003ccode\u003eLivebook.Teams.Requests.create_auth_request/1\u003c/code\u003e in \u003ccode\u003elib/livebook/teams/requests.ex\u003c/code\u003e sends an empty request body, so no per-attempt value is ever registered, and the callback clause has nothing to compare against.\u003c/p\u003e\n\u003cp\u003eAn attacker who holds membership in the same Livebook Teams organisation as the target instance can therefore begin the login flow themselves, retain the resulting authorization code without redeeming it, and induce a victim to open a crafted URL carrying that code. The victim\u0027s browser completes the exchange and the resulting session is bound to the attacker\u0027s identity rather than the victim\u0027s. The victim is not required to hold any particular privilege, and no credential belonging to the victim is involved. The vulnerability does not allow the attacker to authenticate as the victim.\u003c/p\u003e\n\u003cp\u003eThe consequence is that a user believes they are working in their own authenticated session while they are in fact operating as another identity. Work performed in that session is attributed to the attacker\u0027s account, and secrets, uploaded data, or notebook results the victim produces are exposed to the attacker rather than kept in the victim\u0027s own account. The authorization code must be redeemed within a short window after the login flow begins, which constrains the timing of the attack but not its feasibility.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.15.0 before 0.18.7 and from 0.19.0 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Cross-Site Request Forgery (CSRF) vulnerability in livebook-dev livebook allows an attacker to authenticate a victim\u0027s browser session under the attacker\u0027s own Livebook Teams identity.\n\nWhen Livebook is configured to use Livebook Teams for identity, `Livebook.ZTA.LivebookTeams.handle_request/4` in `lib/livebook/zta/livebook_teams.ex` handles the OAuth-style callback carrying a `teams_identity` marker and a `code` parameter. The clause exchanges that code for an access token and writes the token into the browser session without verifying any value that ties the callback to the browser session that started the login. No `state` or nonce is generated when the flow is initiated: `Livebook.Teams.Requests.create_auth_request/1` in `lib/livebook/teams/requests.ex` sends an empty request body, so no per-attempt value is ever registered, and the callback clause has nothing to compare against.\n\nAn attacker who holds membership in the same Livebook Teams organisation as the target instance can therefore begin the login flow themselves, retain the resulting authorization code without redeeming it, and induce a victim to open a crafted URL carrying that code. The victim\u0027s browser completes the exchange and the resulting session is bound to the attacker\u0027s identity rather than the victim\u0027s. The victim is not required to hold any particular privilege, and no credential belonging to the victim is involved. The vulnerability does not allow the attacker to authenticate as the victim.\n\nThe consequence is that a user believes they are working in their own authenticated session while they are in fact operating as another identity. Work performed in that session is attributed to the attacker\u0027s account, and secrets, uploaded data, or notebook results the victim produces are exposed to the attacker rather than kept in the victim\u0027s own account. The authorization code must be redeemed within a short window after the login flow begins, which constrains the timing of the attack but not its feasibility.\n\nThis issue affects livebook: from 0.15.0 before 0.18.7 and from 0.19.0 before 0.19.9."
                }
              ],
              "value": "Cross-Site Request Forgery (CSRF) vulnerability in livebook-dev livebook allows an attacker to authenticate a victim\u0027s browser session under the attacker\u0027s own Livebook Teams identity.\n\nWhen Livebook is configured to use Livebook Teams for identity, Livebook.ZTA.LivebookTeams.handle_request/4 in lib/livebook/zta/livebook_teams.ex handles the OAuth-style callback carrying a teams_identity marker and a code parameter. The clause exchanges that code for an access token and writes the token into the browser session without verifying any value that ties the callback to the browser session that started the login. No state or nonce is generated when the flow is initiated: Livebook.Teams.Requests.create_auth_request/1 in lib/livebook/teams/requests.ex sends an empty request body, so no per-attempt value is ever registered, and the callback clause has nothing to compare against.\n\nAn attacker who holds membership in the same Livebook Teams organisation as the target instance can therefore begin the login flow themselves, retain the resulting authorization code without redeeming it, and induce a victim to open a crafted URL carrying that code. The victim\u0027s browser completes the exchange and the resulting session is bound to the attacker\u0027s identity rather than the victim\u0027s. The victim is not required to hold any particular privilege, and no credential belonging to the victim is involved. The vulnerability does not allow the attacker to authenticate as the victim.\n\nThe consequence is that a user believes they are working in their own authenticated session while they are in fact operating as another identity. Work performed in that session is attributed to the attacker\u0027s account, and secrets, uploaded data, or notebook results the victim produces are exposed to the attacker rather than kept in the victim\u0027s own account. The authorization code must be redeemed within a short window after the login flow begins, which constrains the timing of the attack but not its feasibility.\n\nThis issue affects livebook: from 0.15.0 before 0.18.7 and from 0.19.0 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-62",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-62 Cross Site Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.8,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-352",
                  "description": "CWE-352 Cross-Site Request Forgery (CSRF)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:44:23.834Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-pvvw-28fw-c6fg"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-66885.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-66885"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/21c16168263275541a6e076d0c31852c40e09a18"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/33a052daa386c4ce08a9c39a07fc90f353ff6a51"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/6ed2e213e9d5a19a70d7fcad5a8d616622cd2084"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Livebook Teams identity callback lacks state binding, allowing login CSRF"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-66885",
        "datePublished": "2026-08-05T19:44:23.834Z",
        "dateReserved": "2026-07-28T04:15:10.240Z",
        "dateUpdated": "2026-08-06T13:09:29.359Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-66881 (GCVE-0-2026-66881)

    Vulnerability from nvd – Published: 2026-08-05 19:43 – Updated: 2026-08-06 13:03
    VLAI
    Title
    Path traversal in imported file_entries name allows arbitrary file write via URL-type entry download
    Summary
    Relative Path Traversal vulnerability in livebook-dev livebook allows an attacker-authored notebook to write a file with attacker-controlled content to an arbitrary path. A .livemd notebook can declare file_entries metadata, each entry carrying a name. Every path that creates a file entry through the user interface validates that name with Livebook.Notebook.validate_file_entry_name/2, which requires a flat filename of alphanumerics, dashes, underscores and dots, ending in an extension. The import path does not: Livebook.LiveMarkdown.Import.file_entry_metadata_to_attrs/1 in lib/livebook/live_markdown/import.ex takes the name verbatim from the notebook source. For a URL-type file entry, Livebook.Session.file_entry_cache_file/2 in lib/livebook/session.ex resolves that name beneath the session's temporary directory without checking that the result stays inside it, and Livebook.FileSystem.Utils.resolve_unix_like_path/2 collapses parent-directory segments while clamping only at the filesystem root. When the entry's content is requested and no cached copy exists, Livebook fetches the entry's URL and writes the response body to the resolved path, creating parent directories as needed. The attacker therefore controls both the destination and the contents of the written file, which may land anywhere the Livebook process can write. The same missing containment check is present in Livebook.Session.to_attachment_file_entry/2. A victim who opens an attacker-supplied notebook and causes the entry to be fetched triggers the write within their own authenticated session; the attacker needs no account on the target instance. URL-type entries are also not placed under notebook stamping quarantine on import, so no warning is shown. This issue affects livebook: from 0.11.0 before 0.18.7 and from 0.19.0 before 0.19.9.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 13:03 UTC
    CWE
    • CWE-23 - Relative Path Traversal
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.11.0 , < 0.18.7 (semver)
    Affected: 0.19.0 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.11.0 , < 0.18.7 (other)
    Affected: 0.19.0 , < 0.19.9 (other)
    Affected: 0.11.0-cuda12 , < 0.18.7-cuda12 (other)
    Affected: 0.19.0-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: c02eb984f80a543c7a52b1d882c76f56aa5be743 , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-66881",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T13:03:23.099180Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T13:03:45.814Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-r4h8-2xpq-v48g"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.LiveMarkdown.Import",
                "Elixir.Livebook.Session",
                "Elixir.Livebook.FileSystem.Utils"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/live_markdown/import.ex",
                "lib/livebook/session.ex",
                "lib/livebook/file_system/utils.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.LiveMarkdown.Import\u0027:file_entry_metadata_to_attrs/1"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:file_entry_cache_file/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:to_attachment_file_entry/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.FileSystem.Utils\u0027:resolve_unix_like_path/2"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.11.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.LiveMarkdown.Import",
                "Elixir.Livebook.Session",
                "Elixir.Livebook.FileSystem.Utils"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/live_markdown/import.ex",
                "lib/livebook/session.ex",
                "lib/livebook/file_system/utils.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.LiveMarkdown.Import\u0027:file_entry_metadata_to_attrs/1"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:file_entry_cache_file/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:to_attachment_file_entry/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.FileSystem.Utils\u0027:resolve_unix_like_path/2"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.11.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.18.7-cuda12",
                  "status": "affected",
                  "version": "0.11.0-cuda12",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.0-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.LiveMarkdown.Import",
                "Elixir.Livebook.Session",
                "Elixir.Livebook.FileSystem.Utils"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/live_markdown/import.ex",
                "lib/livebook/session.ex",
                "lib/livebook/file_system/utils.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.LiveMarkdown.Import\u0027:file_entry_metadata_to_attrs/1"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:file_entry_cache_file/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:to_attachment_file_entry/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.FileSystem.Utils\u0027:resolve_unix_like_path/2"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1443dd23df6e7b9203b6797f0695a807aeb81dde",
                      "status": "unaffected"
                    },
                    {
                      "at": "acf4cb8c0c79b89c795b180f061be7de2d8b5aa9",
                      "status": "unaffected"
                    },
                    {
                      "at": "50f86982ebf36c22abeb379b55ec0f2859c83bb9",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "c02eb984f80a543c7a52b1d882c76f56aa5be743",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.18.7",
                      "versionStartIncluding": "0.11.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eRelative Path Traversal vulnerability in livebook-dev livebook allows an attacker-authored notebook to write a file with attacker-controlled content to an arbitrary path.\u003c/p\u003e\n\u003cp\u003eA \u003ccode\u003e.livemd\u003c/code\u003e notebook can declare \u003ccode\u003efile_entries\u003c/code\u003e metadata, each entry carrying a \u003ccode\u003ename\u003c/code\u003e. Every path that creates a file entry through the user interface validates that name with \u003ccode\u003eLivebook.Notebook.validate_file_entry_name/2\u003c/code\u003e, which requires a flat filename of alphanumerics, dashes, underscores and dots, ending in an extension. The import path does not: \u003ccode\u003eLivebook.LiveMarkdown.Import.file_entry_metadata_to_attrs/1\u003c/code\u003e in \u003ccode\u003elib/livebook/live_markdown/import.ex\u003c/code\u003e takes the name verbatim from the notebook source.\u003c/p\u003e\n\u003cp\u003eFor a URL-type file entry, \u003ccode\u003eLivebook.Session.file_entry_cache_file/2\u003c/code\u003e in \u003ccode\u003elib/livebook/session.ex\u003c/code\u003e resolves that name beneath the session\u0027s temporary directory without checking that the result stays inside it, and \u003ccode\u003eLivebook.FileSystem.Utils.resolve_unix_like_path/2\u003c/code\u003e collapses parent-directory segments while clamping only at the filesystem root. When the entry\u0027s content is requested and no cached copy exists, Livebook fetches the entry\u0027s URL and writes the response body to the resolved path, creating parent directories as needed. The attacker therefore controls both the destination and the contents of the written file, which may land anywhere the Livebook process can write. The same missing containment check is present in \u003ccode\u003eLivebook.Session.to_attachment_file_entry/2\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eA victim who opens an attacker-supplied notebook and causes the entry to be fetched triggers the write within their own authenticated session; the attacker needs no account on the target instance. URL-type entries are also not placed under notebook stamping quarantine on import, so no warning is shown.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.11.0 before 0.18.7 and from 0.19.0 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Relative Path Traversal vulnerability in livebook-dev livebook allows an attacker-authored notebook to write a file with attacker-controlled content to an arbitrary path.\n\nA `.livemd` notebook can declare `file_entries` metadata, each entry carrying a `name`. Every path that creates a file entry through the user interface validates that name with `Livebook.Notebook.validate_file_entry_name/2`, which requires a flat filename of alphanumerics, dashes, underscores and dots, ending in an extension. The import path does not: `Livebook.LiveMarkdown.Import.file_entry_metadata_to_attrs/1` in `lib/livebook/live_markdown/import.ex` takes the name verbatim from the notebook source.\n\nFor a URL-type file entry, `Livebook.Session.file_entry_cache_file/2` in `lib/livebook/session.ex` resolves that name beneath the session\u0027s temporary directory without checking that the result stays inside it, and `Livebook.FileSystem.Utils.resolve_unix_like_path/2` collapses parent-directory segments while clamping only at the filesystem root. When the entry\u0027s content is requested and no cached copy exists, Livebook fetches the entry\u0027s URL and writes the response body to the resolved path, creating parent directories as needed. The attacker therefore controls both the destination and the contents of the written file, which may land anywhere the Livebook process can write. The same missing containment check is present in `Livebook.Session.to_attachment_file_entry/2`.\n\nA victim who opens an attacker-supplied notebook and causes the entry to be fetched triggers the write within their own authenticated session; the attacker needs no account on the target instance. URL-type entries are also not placed under notebook stamping quarantine on import, so no warning is shown.\n\nThis issue affects livebook: from 0.11.0 before 0.18.7 and from 0.19.0 before 0.19.9."
                }
              ],
              "value": "Relative Path Traversal vulnerability in livebook-dev livebook allows an attacker-authored notebook to write a file with attacker-controlled content to an arbitrary path.\n\nA .livemd notebook can declare file_entries metadata, each entry carrying a name. Every path that creates a file entry through the user interface validates that name with Livebook.Notebook.validate_file_entry_name/2, which requires a flat filename of alphanumerics, dashes, underscores and dots, ending in an extension. The import path does not: Livebook.LiveMarkdown.Import.file_entry_metadata_to_attrs/1 in lib/livebook/live_markdown/import.ex takes the name verbatim from the notebook source.\n\nFor a URL-type file entry, Livebook.Session.file_entry_cache_file/2 in lib/livebook/session.ex resolves that name beneath the session\u0027s temporary directory without checking that the result stays inside it, and Livebook.FileSystem.Utils.resolve_unix_like_path/2 collapses parent-directory segments while clamping only at the filesystem root. When the entry\u0027s content is requested and no cached copy exists, Livebook fetches the entry\u0027s URL and writes the response body to the resolved path, creating parent directories as needed. The attacker therefore controls both the destination and the contents of the written file, which may land anywhere the Livebook process can write. The same missing containment check is present in Livebook.Session.to_attachment_file_entry/2.\n\nA victim who opens an attacker-supplied notebook and causes the entry to be fetched triggers the write within their own authenticated session; the attacker needs no account on the target instance. URL-type entries are also not placed under notebook stamping quarantine on import, so no warning is shown.\n\nThis issue affects livebook: from 0.11.0 before 0.18.7 and from 0.19.0 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-76",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-76 Manipulating Web Input to File System Calls"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 7,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-23",
                  "description": "CWE-23 Relative Path Traversal",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:43:48.812Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-r4h8-2xpq-v48g"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-66881.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-66881"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/1443dd23df6e7b9203b6797f0695a807aeb81dde"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/acf4cb8c0c79b89c795b180f061be7de2d8b5aa9"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/50f86982ebf36c22abeb379b55ec0f2859c83bb9"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Path traversal in imported file_entries name allows arbitrary file write via URL-type entry download"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-66881",
        "datePublished": "2026-08-05T19:43:48.812Z",
        "dateReserved": "2026-07-28T04:15:10.239Z",
        "dateUpdated": "2026-08-06T13:03:45.814Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-66298 (GCVE-0-2026-66298)

    Vulnerability from nvd – Published: 2026-08-05 19:44 – Updated: 2026-08-06 13:08
    VLAI
    Title
    JS-view sandboxed output can synthesize keyboard events to trigger unconfirmed global shortcuts
    Summary
    Origin Validation Error vulnerability in livebook-dev livebook allows untrusted notebook output JavaScript to trigger session-wide keyboard shortcuts, including forced evaluation of all cells and runtime restart. Livebook's JS-view feature renders notebook-defined JavaScript inside a sandboxed, cross-origin iframe specifically because that JavaScript is untrusted. The trusted iframe shell in iframe/priv/static/iframe/v5.html forwards every keydown event fired in its own window to the parent page without consulting Event.isTrusted, so an event synthesized by the untrusted script through window.dispatchEvent is forwarded exactly as a genuine keystroke would be. The parent-side relay in assets/js/hooks/js_view.js reconstructs and re-dispatches it on the live page with no further validation, and because assets/js/hooks/session.js registers the global shortcut handler on the document in the capture phase, that handler acts on the replicated event regardless of how it was produced. Sandboxed output JavaScript can therefore drive Livebook's session-wide keyboard shortcuts. Two of them reach LivebookWeb.SessionLive and execute immediately with no confirmation: the shortcut for queueing full evaluation runs every cell in the notebook, and the shortcut for reconnecting the runtime disconnects and reconnects it, discarding in-memory state. A third shortcut deletes the focused cell behind a confirmation dialog that the user can permanently dismiss, after which it too executes silently. Forced full evaluation is the significant consequence, because it causes the notebook's own Elixir code to run without the user choosing to evaluate anything. A user who merely opens a notebook obtained from a third party, or reached from published documentation, can have its code executed on their runtime. Livebook also mirrors cell outputs to every connected client, so a malicious output triggers in a collaborator's browser as soon as it renders. This issue affects livebook: from 0.5.0 before 0.18.7 and from 0.19.0 before 0.19.9.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 13:08 UTC
    CWE
    • CWE-346 - Origin Validation Error
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.5.0 , < 0.18.7 (semver)
    Affected: 0.19.0 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.5.0 , < 0.18.7 (other)
    Affected: 0.19.0 , < 0.19.9 (other)
    Affected: 0.5.0-cuda12 , < 0.18.7-cuda12 (other)
    Affected: 0.19.0-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 844242ba80a928d0d675416d312a58003cb7771b , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-66298",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T13:08:06.869367Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T13:08:23.940Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.SessionLive"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "iframe/priv/static/iframe/v5.html",
                "assets/js/hooks/js_view.js",
                "assets/js/hooks/session.js",
                "lib/livebook_web/live/session_live.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.SessionLive\u0027:handle_event/3"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.5.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.SessionLive"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "iframe/priv/static/iframe/v5.html",
                "assets/js/hooks/js_view.js",
                "assets/js/hooks/session.js",
                "lib/livebook_web/live/session_live.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.SessionLive\u0027:handle_event/3"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.5.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.18.7-cuda12",
                  "status": "affected",
                  "version": "0.5.0-cuda12",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.0-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.SessionLive"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "iframe/priv/static/iframe/v5.html",
                "assets/js/hooks/js_view.js",
                "assets/js/hooks/session.js",
                "lib/livebook_web/live/session_live.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.SessionLive\u0027:handle_event/3"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "296318ffdfa6e5ed7b18ad8d5a5b2af90f3cd728",
                      "status": "unaffected"
                    },
                    {
                      "at": "a552ce8f99ad348ea37061394dc950a0cebdb33e",
                      "status": "unaffected"
                    },
                    {
                      "at": "5980e5c6b71036806b3bf54101eb1d6c0f50f19c",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "844242ba80a928d0d675416d312a58003cb7771b",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.18.7",
                      "versionStartIncluding": "0.5.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eOrigin Validation Error vulnerability in livebook-dev livebook allows untrusted notebook output JavaScript to trigger session-wide keyboard shortcuts, including forced evaluation of all cells and runtime restart.\u003c/p\u003e\n\u003cp\u003eLivebook\u0027s JS-view feature renders notebook-defined JavaScript inside a sandboxed, cross-origin iframe specifically because that JavaScript is untrusted. The trusted iframe shell in \u003ccode\u003eiframe/priv/static/iframe/v5.html\u003c/code\u003e forwards every \u003ccode\u003ekeydown\u003c/code\u003e event fired in its own window to the parent page without consulting \u003ccode\u003eEvent.isTrusted\u003c/code\u003e, so an event synthesized by the untrusted script through \u003ccode\u003ewindow.dispatchEvent\u003c/code\u003e is forwarded exactly as a genuine keystroke would be. The parent-side relay in \u003ccode\u003eassets/js/hooks/js_view.js\u003c/code\u003e reconstructs and re-dispatches it on the live page with no further validation, and because \u003ccode\u003eassets/js/hooks/session.js\u003c/code\u003e registers the global shortcut handler on the document in the capture phase, that handler acts on the replicated event regardless of how it was produced.\u003c/p\u003e\n\u003cp\u003eSandboxed output JavaScript can therefore drive Livebook\u0027s session-wide keyboard shortcuts. Two of them reach \u003ccode\u003eLivebookWeb.SessionLive\u003c/code\u003e and execute immediately with no confirmation: the shortcut for queueing full evaluation runs every cell in the notebook, and the shortcut for reconnecting the runtime disconnects and reconnects it, discarding in-memory state. A third shortcut deletes the focused cell behind a confirmation dialog that the user can permanently dismiss, after which it too executes silently.\u003c/p\u003e\n\u003cp\u003eForced full evaluation is the significant consequence, because it causes the notebook\u0027s own Elixir code to run without the user choosing to evaluate anything. A user who merely opens a notebook obtained from a third party, or reached from published documentation, can have its code executed on their runtime. Livebook also mirrors cell outputs to every connected client, so a malicious output triggers in a collaborator\u0027s browser as soon as it renders.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.5.0 before 0.18.7 and from 0.19.0 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Origin Validation Error vulnerability in livebook-dev livebook allows untrusted notebook output JavaScript to trigger session-wide keyboard shortcuts, including forced evaluation of all cells and runtime restart.\n\nLivebook\u0027s JS-view feature renders notebook-defined JavaScript inside a sandboxed, cross-origin iframe specifically because that JavaScript is untrusted. The trusted iframe shell in `iframe/priv/static/iframe/v5.html` forwards every `keydown` event fired in its own window to the parent page without consulting `Event.isTrusted`, so an event synthesized by the untrusted script through `window.dispatchEvent` is forwarded exactly as a genuine keystroke would be. The parent-side relay in `assets/js/hooks/js_view.js` reconstructs and re-dispatches it on the live page with no further validation, and because `assets/js/hooks/session.js` registers the global shortcut handler on the document in the capture phase, that handler acts on the replicated event regardless of how it was produced.\n\nSandboxed output JavaScript can therefore drive Livebook\u0027s session-wide keyboard shortcuts. Two of them reach `LivebookWeb.SessionLive` and execute immediately with no confirmation: the shortcut for queueing full evaluation runs every cell in the notebook, and the shortcut for reconnecting the runtime disconnects and reconnects it, discarding in-memory state. A third shortcut deletes the focused cell behind a confirmation dialog that the user can permanently dismiss, after which it too executes silently.\n\nForced full evaluation is the significant consequence, because it causes the notebook\u0027s own Elixir code to run without the user choosing to evaluate anything. A user who merely opens a notebook obtained from a third party, or reached from published documentation, can have its code executed on their runtime. Livebook also mirrors cell outputs to every connected client, so a malicious output triggers in a collaborator\u0027s browser as soon as it renders.\n\nThis issue affects livebook: from 0.5.0 before 0.18.7 and from 0.19.0 before 0.19.9."
                }
              ],
              "value": "Origin Validation Error vulnerability in livebook-dev livebook allows untrusted notebook output JavaScript to trigger session-wide keyboard shortcuts, including forced evaluation of all cells and runtime restart.\n\nLivebook\u0027s JS-view feature renders notebook-defined JavaScript inside a sandboxed, cross-origin iframe specifically because that JavaScript is untrusted. The trusted iframe shell in iframe/priv/static/iframe/v5.html forwards every keydown event fired in its own window to the parent page without consulting Event.isTrusted, so an event synthesized by the untrusted script through window.dispatchEvent is forwarded exactly as a genuine keystroke would be. The parent-side relay in assets/js/hooks/js_view.js reconstructs and re-dispatches it on the live page with no further validation, and because assets/js/hooks/session.js registers the global shortcut handler on the document in the capture phase, that handler acts on the replicated event regardless of how it was produced.\n\nSandboxed output JavaScript can therefore drive Livebook\u0027s session-wide keyboard shortcuts. Two of them reach LivebookWeb.SessionLive and execute immediately with no confirmation: the shortcut for queueing full evaluation runs every cell in the notebook, and the shortcut for reconnecting the runtime disconnects and reconnects it, discarding in-memory state. A third shortcut deletes the focused cell behind a confirmation dialog that the user can permanently dismiss, after which it too executes silently.\n\nForced full evaluation is the significant consequence, because it causes the notebook\u0027s own Elixir code to run without the user choosing to evaluate anything. A user who merely opens a notebook obtained from a third party, or reached from published documentation, can have its code executed on their runtime. Livebook also mirrors cell outputs to every connected client, so a malicious output triggers in a collaborator\u0027s browser as soon as it renders.\n\nThis issue affects livebook: from 0.5.0 before 0.18.7 and from 0.19.0 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-160",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-160 Exploit Script-Based APIs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.6,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-346",
                  "description": "CWE-346 Origin Validation Error",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:44:11.831Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-68c2-prqg-x62g"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-66298.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-66298"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/296318ffdfa6e5ed7b18ad8d5a5b2af90f3cd728"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/a552ce8f99ad348ea37061394dc950a0cebdb33e"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/5980e5c6b71036806b3bf54101eb1d6c0f50f19c"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "JS-view sandboxed output can synthesize keyboard events to trigger unconfirmed global shortcuts"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-66298",
        "datePublished": "2026-08-05T19:44:11.831Z",
        "dateReserved": "2026-07-24T14:10:01.114Z",
        "dateUpdated": "2026-08-06T13:08:23.940Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-66297 (GCVE-0-2026-66297)

    Vulnerability from nvd – Published: 2026-08-05 19:43 – Updated: 2026-08-06 13:04
    VLAI
    Title
    Unescaped deployment environment variables in generated setup commands
    Summary
    Improper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in livebook-dev livebook allows command injection into generated deployment setup commands. LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.docker_instructions/2 and LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.fly_instructions/4 in lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex interpolate deployment group environment variable values into the generated Docker and Fly.io setup commands without shell escaping. The values originate from the deployment group configuration and reach the sinks through Livebook.Hubs.Dockerfile.online_docker_info/3. Both sinks place the value inside a double-quoted shell word, so a value containing a command substitution such as $(...) or backticks is evaluated by the shell without any need to break out of the quoting, and a literal double quote terminates the quoted word and allows arbitrary further tokens. The generated command is displayed in the Livebook web interface with a copy button, so a user who copies it and runs it without reviewing it first executes the injected commands on their own machine, under their own account. An attacker requires privileges sufficient to set deployment group environment variables, while the resulting code execution occurs on the machine of whoever runs the generated command. The Kubernetes instructions are not affected, because they render the same values into a YAML manifest with escaping rather than into a shell command. This issue affects livebook: from 0.13.0 before 0.18.7 and from 0.19.0 before 0.19.9.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 13:04 UTC
    CWE
    • CWE-78 - Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.13.0 , < 0.18.7 (semver)
    Affected: 0.19.0 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.13.0 , < 0.18.7 (other)
    Affected: 0.19.0 , < 0.19.9 (other)
    Affected: 0.13.0-cuda12 , < 0.18.7-cuda12 (other)
    Affected: 0.19.0-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 7cf4af5c10ec645f55a10f30e5661c54f6a6b319 , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-66297",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T13:04:06.826223Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T13:04:30.860Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-qpjc-w5mm-73mj"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:docker_instructions/2"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:fly_instructions/4"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.13.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:docker_instructions/2"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:fly_instructions/4"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.13.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.18.7-cuda12",
                  "status": "affected",
                  "version": "0.13.0-cuda12",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.0-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:docker_instructions/2"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:fly_instructions/4"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "b2a8416d149043132fe5a14ed611e0fefc9dc9cd",
                      "status": "unaffected"
                    },
                    {
                      "at": "0c2487326bbb37cb1eb43bb2f76eb93ad9f8fd6b",
                      "status": "unaffected"
                    },
                    {
                      "at": "f8fe9c62cb8bfc1dd0ccda4ea4a57c5e91563c85",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "7cf4af5c10ec645f55a10f30e5661c54f6a6b319",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.18.7",
                      "versionStartIncluding": "0.13.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eImproper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in livebook-dev livebook allows command injection into generated deployment setup commands.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eLivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.docker_instructions/2\u003c/code\u003e and \u003ccode\u003eLivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.fly_instructions/4\u003c/code\u003e in \u003ccode\u003elib/livebook_web/live/hub/teams/deployment_group_agent_component.ex\u003c/code\u003e interpolate deployment group environment variable values into the generated Docker and Fly.io setup commands without shell escaping. The values originate from the deployment group configuration and reach the sinks through \u003ccode\u003eLivebook.Hubs.Dockerfile.online_docker_info/3\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eBoth sinks place the value inside a double-quoted shell word, so a value containing a command substitution such as \u003ccode\u003e$(...)\u003c/code\u003e or backticks is evaluated by the shell without any need to break out of the quoting, and a literal double quote terminates the quoted word and allows arbitrary further tokens. The generated command is displayed in the Livebook web interface with a copy button, so a user who copies it and runs it without reviewing it first executes the injected commands on their own machine, under their own account.\u003c/p\u003e\n\u003cp\u003eAn attacker requires privileges sufficient to set deployment group environment variables, while the resulting code execution occurs on the machine of whoever runs the generated command. The Kubernetes instructions are not affected, because they render the same values into a YAML manifest with escaping rather than into a shell command.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.13.0 before 0.18.7 and from 0.19.0 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Improper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in livebook-dev livebook allows command injection into generated deployment setup commands.\n\n`LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.docker_instructions/2` and `LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.fly_instructions/4` in `lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex` interpolate deployment group environment variable values into the generated Docker and Fly.io setup commands without shell escaping. The values originate from the deployment group configuration and reach the sinks through `Livebook.Hubs.Dockerfile.online_docker_info/3`.\n\nBoth sinks place the value inside a double-quoted shell word, so a value containing a command substitution such as `$(...)` or backticks is evaluated by the shell without any need to break out of the quoting, and a literal double quote terminates the quoted word and allows arbitrary further tokens. The generated command is displayed in the Livebook web interface with a copy button, so a user who copies it and runs it without reviewing it first executes the injected commands on their own machine, under their own account.\n\nAn attacker requires privileges sufficient to set deployment group environment variables, while the resulting code execution occurs on the machine of whoever runs the generated command. The Kubernetes instructions are not affected, because they render the same values into a YAML manifest with escaping rather than into a shell command.\n\nThis issue affects livebook: from 0.13.0 before 0.18.7 and from 0.19.0 before 0.19.9."
                }
              ],
              "value": "Improper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in livebook-dev livebook allows command injection into generated deployment setup commands.\n\nLivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.docker_instructions/2 and LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.fly_instructions/4 in lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex interpolate deployment group environment variable values into the generated Docker and Fly.io setup commands without shell escaping. The values originate from the deployment group configuration and reach the sinks through Livebook.Hubs.Dockerfile.online_docker_info/3.\n\nBoth sinks place the value inside a double-quoted shell word, so a value containing a command substitution such as $(...) or backticks is evaluated by the shell without any need to break out of the quoting, and a literal double quote terminates the quoted word and allows arbitrary further tokens. The generated command is displayed in the Livebook web interface with a copy button, so a user who copies it and runs it without reviewing it first executes the injected commands on their own machine, under their own account.\n\nAn attacker requires privileges sufficient to set deployment group environment variables, while the resulting code execution occurs on the machine of whoever runs the generated command. The Kubernetes instructions are not affected, because they render the same values into a YAML manifest with escaping rather than into a shell command.\n\nThis issue affects livebook: from 0.13.0 before 0.18.7 and from 0.19.0 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-88",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-88 OS Command Injection"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 5,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "HIGH",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "HIGH",
                "subConfidentialityImpact": "HIGH",
                "subIntegrityImpact": "HIGH",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:A/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-78",
                  "description": "CWE-78 Improper Neutralization of Special Elements used in an OS Command (\u0027OS Command Injection\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:43:58.068Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-qpjc-w5mm-73mj"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-66297.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-66297"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/b2a8416d149043132fe5a14ed611e0fefc9dc9cd"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/0c2487326bbb37cb1eb43bb2f76eb93ad9f8fd6b"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/f8fe9c62cb8bfc1dd0ccda4ea4a57c5e91563c85"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unescaped deployment environment variables in generated setup commands"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-66297",
        "datePublished": "2026-08-05T19:43:58.068Z",
        "dateReserved": "2026-07-24T14:10:01.114Z",
        "dateUpdated": "2026-08-06T13:04:30.860Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2023-35174 (GCVE-0-2023-35174)

    Vulnerability from nvd – Published: 2023-06-22 13:34 – Updated: 2024-12-06 15:14
    VLAI
    Title
    Livebook Desktop's protocol handler can be exploited to execute arbitrary command on Windows
    Summary
    Livebook is a web application for writing interactive and collaborative code notebooks. On Windows, it is possible to open a `livebook://` link from a browser which opens Livebook Desktop and triggers arbitrary code execution on victim's machine. Any user using Livebook Desktop on Windows is potentially vulnerable to arbitrary code execution when they expect Livebook to be opened from browser. This vulnerability has been fixed in version 0.8.2 and 0.9.3.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2024-12-06 15:14 UTC
    CWE
    • CWE-78 - Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
    Assigner
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: >= 0.8.0, < 0.8.2
    Affected: >= 0.9.0, < 0.9.3
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2024-08-02T16:23:59.573Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "name": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-564w-97r7-c6p9",
                "tags": [
                  "x_refsource_CONFIRM",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-564w-97r7-c6p9"
              },
              {
                "name": "https://github.com/livebook-dev/livebook/commit/2e11b59f677c6ed3b6aa82dad412a8b3406ffdf1",
                "tags": [
                  "x_refsource_MISC",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/commit/2e11b59f677c6ed3b6aa82dad412a8b3406ffdf1"
              },
              {
                "name": "https://github.com/livebook-dev/livebook/commit/beb10daaadcc765f0380e436bd7cd5f74cf086c8",
                "tags": [
                  "x_refsource_MISC",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/commit/beb10daaadcc765f0380e436bd7cd5f74cf086c8"
              },
              {
                "name": "https://github.com/livebook-dev/livebook/releases/tag/v0.8.2",
                "tags": [
                  "x_refsource_MISC",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/releases/tag/v0.8.2"
              },
              {
                "name": "https://github.com/livebook-dev/livebook/releases/tag/v0.9.3",
                "tags": [
                  "x_refsource_MISC",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/releases/tag/v0.9.3"
              }
            ],
            "title": "CVE Program Container"
          },
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2023-35174",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-12-06T15:14:11.764601Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2024-12-06T15:14:24.752Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003e= 0.8.0, \u003c 0.8.2"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 0.9.0, \u003c 0.9.3"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Livebook is a web application for writing interactive and collaborative code notebooks. On Windows, it is possible to open a `livebook://` link from a browser which opens Livebook Desktop and triggers arbitrary code execution on victim\u0027s machine. Any user using Livebook Desktop on Windows is potentially vulnerable to arbitrary code execution when they expect Livebook to be opened from browser. This vulnerability has been fixed in version 0.8.2 and 0.9.3.\n\n"
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "LOW",
                "baseScore": 8.6,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "LOW",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L",
                "version": "3.1"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-78",
                  "description": "CWE-78: Improper Neutralization of Special Elements used in an OS Command (\u0027OS Command Injection\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2023-06-22T13:34:38.492Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-564w-97r7-c6p9",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-564w-97r7-c6p9"
            },
            {
              "name": "https://github.com/livebook-dev/livebook/commit/2e11b59f677c6ed3b6aa82dad412a8b3406ffdf1",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/2e11b59f677c6ed3b6aa82dad412a8b3406ffdf1"
            },
            {
              "name": "https://github.com/livebook-dev/livebook/commit/beb10daaadcc765f0380e436bd7cd5f74cf086c8",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/beb10daaadcc765f0380e436bd7cd5f74cf086c8"
            },
            {
              "name": "https://github.com/livebook-dev/livebook/releases/tag/v0.8.2",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/livebook-dev/livebook/releases/tag/v0.8.2"
            },
            {
              "name": "https://github.com/livebook-dev/livebook/releases/tag/v0.9.3",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/livebook-dev/livebook/releases/tag/v0.9.3"
            }
          ],
          "source": {
            "advisory": "GHSA-564w-97r7-c6p9",
            "discovery": "UNKNOWN"
          },
          "title": "Livebook Desktop\u0027s protocol handler can be exploited to execute arbitrary command on Windows"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2023-35174",
        "datePublished": "2023-06-22T13:34:38.492Z",
        "dateReserved": "2023-06-14T14:17:52.180Z",
        "dateUpdated": "2024-12-06T15:14:24.752Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }

    CVE-2026-66885 (GCVE-0-2026-66885)

    Vulnerability from cvelistv5 – Published: 2026-08-05 19:44 – Updated: 2026-08-06 13:09
    VLAI
    Title
    Livebook Teams identity callback lacks state binding, allowing login CSRF
    Summary
    Cross-Site Request Forgery (CSRF) vulnerability in livebook-dev livebook allows an attacker to authenticate a victim's browser session under the attacker's own Livebook Teams identity. When Livebook is configured to use Livebook Teams for identity, Livebook.ZTA.LivebookTeams.handle_request/4 in lib/livebook/zta/livebook_teams.ex handles the OAuth-style callback carrying a teams_identity marker and a code parameter. The clause exchanges that code for an access token and writes the token into the browser session without verifying any value that ties the callback to the browser session that started the login. No state or nonce is generated when the flow is initiated: Livebook.Teams.Requests.create_auth_request/1 in lib/livebook/teams/requests.ex sends an empty request body, so no per-attempt value is ever registered, and the callback clause has nothing to compare against. An attacker who holds membership in the same Livebook Teams organisation as the target instance can therefore begin the login flow themselves, retain the resulting authorization code without redeeming it, and induce a victim to open a crafted URL carrying that code. The victim's browser completes the exchange and the resulting session is bound to the attacker's identity rather than the victim's. The victim is not required to hold any particular privilege, and no credential belonging to the victim is involved. The vulnerability does not allow the attacker to authenticate as the victim. The consequence is that a user believes they are working in their own authenticated session while they are in fact operating as another identity. Work performed in that session is attributed to the attacker's account, and secrets, uploaded data, or notebook results the victim produces are exposed to the attacker rather than kept in the victim's own account. The authorization code must be redeemed within a short window after the login flow begins, which constrains the timing of the attack but not its feasibility. This issue affects livebook: from 0.15.0 before 0.18.7 and from 0.19.0 before 0.19.9.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 13:09 UTC
    CWE
    • CWE-352 - Cross-Site Request Forgery (CSRF)
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.15.0 , < 0.18.7 (semver)
    Affected: 0.19.0 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.15.0 , < 0.18.7 (other)
    Affected: 0.19.0 , < 0.19.9 (other)
    Affected: 0.15.0-cuda12 , < 0.18.7-cuda12 (other)
    Affected: 0.19.0-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 4380a411920531223088267ed1c0ad21f96ef660 , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-66885",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T13:09:14.330707Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T13:09:29.359Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.Livebook.Teams.Requests"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook/teams/requests.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:handle_request/4"
                },
                {
                  "name": "\u0027Elixir.Livebook.Teams.Requests\u0027:create_auth_request/1"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.15.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.Livebook.Teams.Requests"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook/teams/requests.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:handle_request/4"
                },
                {
                  "name": "\u0027Elixir.Livebook.Teams.Requests\u0027:create_auth_request/1"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.15.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.18.7-cuda12",
                  "status": "affected",
                  "version": "0.15.0-cuda12",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.0-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.Livebook.Teams.Requests"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook/teams/requests.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:handle_request/4"
                },
                {
                  "name": "\u0027Elixir.Livebook.Teams.Requests\u0027:create_auth_request/1"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "21c16168263275541a6e076d0c31852c40e09a18",
                      "status": "unaffected"
                    },
                    {
                      "at": "33a052daa386c4ce08a9c39a07fc90f353ff6a51",
                      "status": "unaffected"
                    },
                    {
                      "at": "6ed2e213e9d5a19a70d7fcad5a8d616622cd2084",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "4380a411920531223088267ed1c0ad21f96ef660",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.18.7",
                      "versionStartIncluding": "0.15.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Hugo Bara\u00fana"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eCross-Site Request Forgery (CSRF) vulnerability in livebook-dev livebook allows an attacker to authenticate a victim\u0027s browser session under the attacker\u0027s own Livebook Teams identity.\u003c/p\u003e\n\u003cp\u003eWhen Livebook is configured to use Livebook Teams for identity, \u003ccode\u003eLivebook.ZTA.LivebookTeams.handle_request/4\u003c/code\u003e in \u003ccode\u003elib/livebook/zta/livebook_teams.ex\u003c/code\u003e handles the OAuth-style callback carrying a \u003ccode\u003eteams_identity\u003c/code\u003e marker and a \u003ccode\u003ecode\u003c/code\u003e parameter. The clause exchanges that code for an access token and writes the token into the browser session without verifying any value that ties the callback to the browser session that started the login. No \u003ccode\u003estate\u003c/code\u003e or nonce is generated when the flow is initiated: \u003ccode\u003eLivebook.Teams.Requests.create_auth_request/1\u003c/code\u003e in \u003ccode\u003elib/livebook/teams/requests.ex\u003c/code\u003e sends an empty request body, so no per-attempt value is ever registered, and the callback clause has nothing to compare against.\u003c/p\u003e\n\u003cp\u003eAn attacker who holds membership in the same Livebook Teams organisation as the target instance can therefore begin the login flow themselves, retain the resulting authorization code without redeeming it, and induce a victim to open a crafted URL carrying that code. The victim\u0027s browser completes the exchange and the resulting session is bound to the attacker\u0027s identity rather than the victim\u0027s. The victim is not required to hold any particular privilege, and no credential belonging to the victim is involved. The vulnerability does not allow the attacker to authenticate as the victim.\u003c/p\u003e\n\u003cp\u003eThe consequence is that a user believes they are working in their own authenticated session while they are in fact operating as another identity. Work performed in that session is attributed to the attacker\u0027s account, and secrets, uploaded data, or notebook results the victim produces are exposed to the attacker rather than kept in the victim\u0027s own account. The authorization code must be redeemed within a short window after the login flow begins, which constrains the timing of the attack but not its feasibility.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.15.0 before 0.18.7 and from 0.19.0 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Cross-Site Request Forgery (CSRF) vulnerability in livebook-dev livebook allows an attacker to authenticate a victim\u0027s browser session under the attacker\u0027s own Livebook Teams identity.\n\nWhen Livebook is configured to use Livebook Teams for identity, `Livebook.ZTA.LivebookTeams.handle_request/4` in `lib/livebook/zta/livebook_teams.ex` handles the OAuth-style callback carrying a `teams_identity` marker and a `code` parameter. The clause exchanges that code for an access token and writes the token into the browser session without verifying any value that ties the callback to the browser session that started the login. No `state` or nonce is generated when the flow is initiated: `Livebook.Teams.Requests.create_auth_request/1` in `lib/livebook/teams/requests.ex` sends an empty request body, so no per-attempt value is ever registered, and the callback clause has nothing to compare against.\n\nAn attacker who holds membership in the same Livebook Teams organisation as the target instance can therefore begin the login flow themselves, retain the resulting authorization code without redeeming it, and induce a victim to open a crafted URL carrying that code. The victim\u0027s browser completes the exchange and the resulting session is bound to the attacker\u0027s identity rather than the victim\u0027s. The victim is not required to hold any particular privilege, and no credential belonging to the victim is involved. The vulnerability does not allow the attacker to authenticate as the victim.\n\nThe consequence is that a user believes they are working in their own authenticated session while they are in fact operating as another identity. Work performed in that session is attributed to the attacker\u0027s account, and secrets, uploaded data, or notebook results the victim produces are exposed to the attacker rather than kept in the victim\u0027s own account. The authorization code must be redeemed within a short window after the login flow begins, which constrains the timing of the attack but not its feasibility.\n\nThis issue affects livebook: from 0.15.0 before 0.18.7 and from 0.19.0 before 0.19.9."
                }
              ],
              "value": "Cross-Site Request Forgery (CSRF) vulnerability in livebook-dev livebook allows an attacker to authenticate a victim\u0027s browser session under the attacker\u0027s own Livebook Teams identity.\n\nWhen Livebook is configured to use Livebook Teams for identity, Livebook.ZTA.LivebookTeams.handle_request/4 in lib/livebook/zta/livebook_teams.ex handles the OAuth-style callback carrying a teams_identity marker and a code parameter. The clause exchanges that code for an access token and writes the token into the browser session without verifying any value that ties the callback to the browser session that started the login. No state or nonce is generated when the flow is initiated: Livebook.Teams.Requests.create_auth_request/1 in lib/livebook/teams/requests.ex sends an empty request body, so no per-attempt value is ever registered, and the callback clause has nothing to compare against.\n\nAn attacker who holds membership in the same Livebook Teams organisation as the target instance can therefore begin the login flow themselves, retain the resulting authorization code without redeeming it, and induce a victim to open a crafted URL carrying that code. The victim\u0027s browser completes the exchange and the resulting session is bound to the attacker\u0027s identity rather than the victim\u0027s. The victim is not required to hold any particular privilege, and no credential belonging to the victim is involved. The vulnerability does not allow the attacker to authenticate as the victim.\n\nThe consequence is that a user believes they are working in their own authenticated session while they are in fact operating as another identity. Work performed in that session is attributed to the attacker\u0027s account, and secrets, uploaded data, or notebook results the victim produces are exposed to the attacker rather than kept in the victim\u0027s own account. The authorization code must be redeemed within a short window after the login flow begins, which constrains the timing of the attack but not its feasibility.\n\nThis issue affects livebook: from 0.15.0 before 0.18.7 and from 0.19.0 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-62",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-62 Cross Site Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.8,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-352",
                  "description": "CWE-352 Cross-Site Request Forgery (CSRF)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:44:23.834Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-pvvw-28fw-c6fg"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-66885.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-66885"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/21c16168263275541a6e076d0c31852c40e09a18"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/33a052daa386c4ce08a9c39a07fc90f353ff6a51"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/6ed2e213e9d5a19a70d7fcad5a8d616622cd2084"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Livebook Teams identity callback lacks state binding, allowing login CSRF"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-66885",
        "datePublished": "2026-08-05T19:44:23.834Z",
        "dateReserved": "2026-07-28T04:15:10.240Z",
        "dateUpdated": "2026-08-06T13:09:29.359Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-66298 (GCVE-0-2026-66298)

    Vulnerability from cvelistv5 – Published: 2026-08-05 19:44 – Updated: 2026-08-06 13:08
    VLAI
    Title
    JS-view sandboxed output can synthesize keyboard events to trigger unconfirmed global shortcuts
    Summary
    Origin Validation Error vulnerability in livebook-dev livebook allows untrusted notebook output JavaScript to trigger session-wide keyboard shortcuts, including forced evaluation of all cells and runtime restart. Livebook's JS-view feature renders notebook-defined JavaScript inside a sandboxed, cross-origin iframe specifically because that JavaScript is untrusted. The trusted iframe shell in iframe/priv/static/iframe/v5.html forwards every keydown event fired in its own window to the parent page without consulting Event.isTrusted, so an event synthesized by the untrusted script through window.dispatchEvent is forwarded exactly as a genuine keystroke would be. The parent-side relay in assets/js/hooks/js_view.js reconstructs and re-dispatches it on the live page with no further validation, and because assets/js/hooks/session.js registers the global shortcut handler on the document in the capture phase, that handler acts on the replicated event regardless of how it was produced. Sandboxed output JavaScript can therefore drive Livebook's session-wide keyboard shortcuts. Two of them reach LivebookWeb.SessionLive and execute immediately with no confirmation: the shortcut for queueing full evaluation runs every cell in the notebook, and the shortcut for reconnecting the runtime disconnects and reconnects it, discarding in-memory state. A third shortcut deletes the focused cell behind a confirmation dialog that the user can permanently dismiss, after which it too executes silently. Forced full evaluation is the significant consequence, because it causes the notebook's own Elixir code to run without the user choosing to evaluate anything. A user who merely opens a notebook obtained from a third party, or reached from published documentation, can have its code executed on their runtime. Livebook also mirrors cell outputs to every connected client, so a malicious output triggers in a collaborator's browser as soon as it renders. This issue affects livebook: from 0.5.0 before 0.18.7 and from 0.19.0 before 0.19.9.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 13:08 UTC
    CWE
    • CWE-346 - Origin Validation Error
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.5.0 , < 0.18.7 (semver)
    Affected: 0.19.0 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.5.0 , < 0.18.7 (other)
    Affected: 0.19.0 , < 0.19.9 (other)
    Affected: 0.5.0-cuda12 , < 0.18.7-cuda12 (other)
    Affected: 0.19.0-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 844242ba80a928d0d675416d312a58003cb7771b , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-66298",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T13:08:06.869367Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T13:08:23.940Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.SessionLive"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "iframe/priv/static/iframe/v5.html",
                "assets/js/hooks/js_view.js",
                "assets/js/hooks/session.js",
                "lib/livebook_web/live/session_live.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.SessionLive\u0027:handle_event/3"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.5.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.SessionLive"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "iframe/priv/static/iframe/v5.html",
                "assets/js/hooks/js_view.js",
                "assets/js/hooks/session.js",
                "lib/livebook_web/live/session_live.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.SessionLive\u0027:handle_event/3"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.5.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.18.7-cuda12",
                  "status": "affected",
                  "version": "0.5.0-cuda12",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.0-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.SessionLive"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "iframe/priv/static/iframe/v5.html",
                "assets/js/hooks/js_view.js",
                "assets/js/hooks/session.js",
                "lib/livebook_web/live/session_live.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.SessionLive\u0027:handle_event/3"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "296318ffdfa6e5ed7b18ad8d5a5b2af90f3cd728",
                      "status": "unaffected"
                    },
                    {
                      "at": "a552ce8f99ad348ea37061394dc950a0cebdb33e",
                      "status": "unaffected"
                    },
                    {
                      "at": "5980e5c6b71036806b3bf54101eb1d6c0f50f19c",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "844242ba80a928d0d675416d312a58003cb7771b",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.18.7",
                      "versionStartIncluding": "0.5.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eOrigin Validation Error vulnerability in livebook-dev livebook allows untrusted notebook output JavaScript to trigger session-wide keyboard shortcuts, including forced evaluation of all cells and runtime restart.\u003c/p\u003e\n\u003cp\u003eLivebook\u0027s JS-view feature renders notebook-defined JavaScript inside a sandboxed, cross-origin iframe specifically because that JavaScript is untrusted. The trusted iframe shell in \u003ccode\u003eiframe/priv/static/iframe/v5.html\u003c/code\u003e forwards every \u003ccode\u003ekeydown\u003c/code\u003e event fired in its own window to the parent page without consulting \u003ccode\u003eEvent.isTrusted\u003c/code\u003e, so an event synthesized by the untrusted script through \u003ccode\u003ewindow.dispatchEvent\u003c/code\u003e is forwarded exactly as a genuine keystroke would be. The parent-side relay in \u003ccode\u003eassets/js/hooks/js_view.js\u003c/code\u003e reconstructs and re-dispatches it on the live page with no further validation, and because \u003ccode\u003eassets/js/hooks/session.js\u003c/code\u003e registers the global shortcut handler on the document in the capture phase, that handler acts on the replicated event regardless of how it was produced.\u003c/p\u003e\n\u003cp\u003eSandboxed output JavaScript can therefore drive Livebook\u0027s session-wide keyboard shortcuts. Two of them reach \u003ccode\u003eLivebookWeb.SessionLive\u003c/code\u003e and execute immediately with no confirmation: the shortcut for queueing full evaluation runs every cell in the notebook, and the shortcut for reconnecting the runtime disconnects and reconnects it, discarding in-memory state. A third shortcut deletes the focused cell behind a confirmation dialog that the user can permanently dismiss, after which it too executes silently.\u003c/p\u003e\n\u003cp\u003eForced full evaluation is the significant consequence, because it causes the notebook\u0027s own Elixir code to run without the user choosing to evaluate anything. A user who merely opens a notebook obtained from a third party, or reached from published documentation, can have its code executed on their runtime. Livebook also mirrors cell outputs to every connected client, so a malicious output triggers in a collaborator\u0027s browser as soon as it renders.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.5.0 before 0.18.7 and from 0.19.0 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Origin Validation Error vulnerability in livebook-dev livebook allows untrusted notebook output JavaScript to trigger session-wide keyboard shortcuts, including forced evaluation of all cells and runtime restart.\n\nLivebook\u0027s JS-view feature renders notebook-defined JavaScript inside a sandboxed, cross-origin iframe specifically because that JavaScript is untrusted. The trusted iframe shell in `iframe/priv/static/iframe/v5.html` forwards every `keydown` event fired in its own window to the parent page without consulting `Event.isTrusted`, so an event synthesized by the untrusted script through `window.dispatchEvent` is forwarded exactly as a genuine keystroke would be. The parent-side relay in `assets/js/hooks/js_view.js` reconstructs and re-dispatches it on the live page with no further validation, and because `assets/js/hooks/session.js` registers the global shortcut handler on the document in the capture phase, that handler acts on the replicated event regardless of how it was produced.\n\nSandboxed output JavaScript can therefore drive Livebook\u0027s session-wide keyboard shortcuts. Two of them reach `LivebookWeb.SessionLive` and execute immediately with no confirmation: the shortcut for queueing full evaluation runs every cell in the notebook, and the shortcut for reconnecting the runtime disconnects and reconnects it, discarding in-memory state. A third shortcut deletes the focused cell behind a confirmation dialog that the user can permanently dismiss, after which it too executes silently.\n\nForced full evaluation is the significant consequence, because it causes the notebook\u0027s own Elixir code to run without the user choosing to evaluate anything. A user who merely opens a notebook obtained from a third party, or reached from published documentation, can have its code executed on their runtime. Livebook also mirrors cell outputs to every connected client, so a malicious output triggers in a collaborator\u0027s browser as soon as it renders.\n\nThis issue affects livebook: from 0.5.0 before 0.18.7 and from 0.19.0 before 0.19.9."
                }
              ],
              "value": "Origin Validation Error vulnerability in livebook-dev livebook allows untrusted notebook output JavaScript to trigger session-wide keyboard shortcuts, including forced evaluation of all cells and runtime restart.\n\nLivebook\u0027s JS-view feature renders notebook-defined JavaScript inside a sandboxed, cross-origin iframe specifically because that JavaScript is untrusted. The trusted iframe shell in iframe/priv/static/iframe/v5.html forwards every keydown event fired in its own window to the parent page without consulting Event.isTrusted, so an event synthesized by the untrusted script through window.dispatchEvent is forwarded exactly as a genuine keystroke would be. The parent-side relay in assets/js/hooks/js_view.js reconstructs and re-dispatches it on the live page with no further validation, and because assets/js/hooks/session.js registers the global shortcut handler on the document in the capture phase, that handler acts on the replicated event regardless of how it was produced.\n\nSandboxed output JavaScript can therefore drive Livebook\u0027s session-wide keyboard shortcuts. Two of them reach LivebookWeb.SessionLive and execute immediately with no confirmation: the shortcut for queueing full evaluation runs every cell in the notebook, and the shortcut for reconnecting the runtime disconnects and reconnects it, discarding in-memory state. A third shortcut deletes the focused cell behind a confirmation dialog that the user can permanently dismiss, after which it too executes silently.\n\nForced full evaluation is the significant consequence, because it causes the notebook\u0027s own Elixir code to run without the user choosing to evaluate anything. A user who merely opens a notebook obtained from a third party, or reached from published documentation, can have its code executed on their runtime. Livebook also mirrors cell outputs to every connected client, so a malicious output triggers in a collaborator\u0027s browser as soon as it renders.\n\nThis issue affects livebook: from 0.5.0 before 0.18.7 and from 0.19.0 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-160",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-160 Exploit Script-Based APIs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.6,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-346",
                  "description": "CWE-346 Origin Validation Error",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:44:11.831Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-68c2-prqg-x62g"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-66298.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-66298"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/296318ffdfa6e5ed7b18ad8d5a5b2af90f3cd728"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/a552ce8f99ad348ea37061394dc950a0cebdb33e"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/5980e5c6b71036806b3bf54101eb1d6c0f50f19c"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "JS-view sandboxed output can synthesize keyboard events to trigger unconfirmed global shortcuts"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-66298",
        "datePublished": "2026-08-05T19:44:11.831Z",
        "dateReserved": "2026-07-24T14:10:01.114Z",
        "dateUpdated": "2026-08-06T13:08:23.940Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-66297 (GCVE-0-2026-66297)

    Vulnerability from cvelistv5 – Published: 2026-08-05 19:43 – Updated: 2026-08-06 13:04
    VLAI
    Title
    Unescaped deployment environment variables in generated setup commands
    Summary
    Improper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in livebook-dev livebook allows command injection into generated deployment setup commands. LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.docker_instructions/2 and LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.fly_instructions/4 in lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex interpolate deployment group environment variable values into the generated Docker and Fly.io setup commands without shell escaping. The values originate from the deployment group configuration and reach the sinks through Livebook.Hubs.Dockerfile.online_docker_info/3. Both sinks place the value inside a double-quoted shell word, so a value containing a command substitution such as $(...) or backticks is evaluated by the shell without any need to break out of the quoting, and a literal double quote terminates the quoted word and allows arbitrary further tokens. The generated command is displayed in the Livebook web interface with a copy button, so a user who copies it and runs it without reviewing it first executes the injected commands on their own machine, under their own account. An attacker requires privileges sufficient to set deployment group environment variables, while the resulting code execution occurs on the machine of whoever runs the generated command. The Kubernetes instructions are not affected, because they render the same values into a YAML manifest with escaping rather than into a shell command. This issue affects livebook: from 0.13.0 before 0.18.7 and from 0.19.0 before 0.19.9.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 13:04 UTC
    CWE
    • CWE-78 - Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.13.0 , < 0.18.7 (semver)
    Affected: 0.19.0 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.13.0 , < 0.18.7 (other)
    Affected: 0.19.0 , < 0.19.9 (other)
    Affected: 0.13.0-cuda12 , < 0.18.7-cuda12 (other)
    Affected: 0.19.0-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 7cf4af5c10ec645f55a10f30e5661c54f6a6b319 , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-66297",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T13:04:06.826223Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T13:04:30.860Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-qpjc-w5mm-73mj"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:docker_instructions/2"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:fly_instructions/4"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.13.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:docker_instructions/2"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:fly_instructions/4"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.13.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.18.7-cuda12",
                  "status": "affected",
                  "version": "0.13.0-cuda12",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.0-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:docker_instructions/2"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent\u0027:fly_instructions/4"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "b2a8416d149043132fe5a14ed611e0fefc9dc9cd",
                      "status": "unaffected"
                    },
                    {
                      "at": "0c2487326bbb37cb1eb43bb2f76eb93ad9f8fd6b",
                      "status": "unaffected"
                    },
                    {
                      "at": "f8fe9c62cb8bfc1dd0ccda4ea4a57c5e91563c85",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "7cf4af5c10ec645f55a10f30e5661c54f6a6b319",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.18.7",
                      "versionStartIncluding": "0.13.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eImproper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in livebook-dev livebook allows command injection into generated deployment setup commands.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eLivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.docker_instructions/2\u003c/code\u003e and \u003ccode\u003eLivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.fly_instructions/4\u003c/code\u003e in \u003ccode\u003elib/livebook_web/live/hub/teams/deployment_group_agent_component.ex\u003c/code\u003e interpolate deployment group environment variable values into the generated Docker and Fly.io setup commands without shell escaping. The values originate from the deployment group configuration and reach the sinks through \u003ccode\u003eLivebook.Hubs.Dockerfile.online_docker_info/3\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eBoth sinks place the value inside a double-quoted shell word, so a value containing a command substitution such as \u003ccode\u003e$(...)\u003c/code\u003e or backticks is evaluated by the shell without any need to break out of the quoting, and a literal double quote terminates the quoted word and allows arbitrary further tokens. The generated command is displayed in the Livebook web interface with a copy button, so a user who copies it and runs it without reviewing it first executes the injected commands on their own machine, under their own account.\u003c/p\u003e\n\u003cp\u003eAn attacker requires privileges sufficient to set deployment group environment variables, while the resulting code execution occurs on the machine of whoever runs the generated command. The Kubernetes instructions are not affected, because they render the same values into a YAML manifest with escaping rather than into a shell command.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.13.0 before 0.18.7 and from 0.19.0 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Improper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in livebook-dev livebook allows command injection into generated deployment setup commands.\n\n`LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.docker_instructions/2` and `LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.fly_instructions/4` in `lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex` interpolate deployment group environment variable values into the generated Docker and Fly.io setup commands without shell escaping. The values originate from the deployment group configuration and reach the sinks through `Livebook.Hubs.Dockerfile.online_docker_info/3`.\n\nBoth sinks place the value inside a double-quoted shell word, so a value containing a command substitution such as `$(...)` or backticks is evaluated by the shell without any need to break out of the quoting, and a literal double quote terminates the quoted word and allows arbitrary further tokens. The generated command is displayed in the Livebook web interface with a copy button, so a user who copies it and runs it without reviewing it first executes the injected commands on their own machine, under their own account.\n\nAn attacker requires privileges sufficient to set deployment group environment variables, while the resulting code execution occurs on the machine of whoever runs the generated command. The Kubernetes instructions are not affected, because they render the same values into a YAML manifest with escaping rather than into a shell command.\n\nThis issue affects livebook: from 0.13.0 before 0.18.7 and from 0.19.0 before 0.19.9."
                }
              ],
              "value": "Improper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in livebook-dev livebook allows command injection into generated deployment setup commands.\n\nLivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.docker_instructions/2 and LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.fly_instructions/4 in lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex interpolate deployment group environment variable values into the generated Docker and Fly.io setup commands without shell escaping. The values originate from the deployment group configuration and reach the sinks through Livebook.Hubs.Dockerfile.online_docker_info/3.\n\nBoth sinks place the value inside a double-quoted shell word, so a value containing a command substitution such as $(...) or backticks is evaluated by the shell without any need to break out of the quoting, and a literal double quote terminates the quoted word and allows arbitrary further tokens. The generated command is displayed in the Livebook web interface with a copy button, so a user who copies it and runs it without reviewing it first executes the injected commands on their own machine, under their own account.\n\nAn attacker requires privileges sufficient to set deployment group environment variables, while the resulting code execution occurs on the machine of whoever runs the generated command. The Kubernetes instructions are not affected, because they render the same values into a YAML manifest with escaping rather than into a shell command.\n\nThis issue affects livebook: from 0.13.0 before 0.18.7 and from 0.19.0 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-88",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-88 OS Command Injection"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 5,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "HIGH",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "HIGH",
                "subConfidentialityImpact": "HIGH",
                "subIntegrityImpact": "HIGH",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:A/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-78",
                  "description": "CWE-78 Improper Neutralization of Special Elements used in an OS Command (\u0027OS Command Injection\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:43:58.068Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-qpjc-w5mm-73mj"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-66297.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-66297"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/b2a8416d149043132fe5a14ed611e0fefc9dc9cd"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/0c2487326bbb37cb1eb43bb2f76eb93ad9f8fd6b"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/f8fe9c62cb8bfc1dd0ccda4ea4a57c5e91563c85"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unescaped deployment environment variables in generated setup commands"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-66297",
        "datePublished": "2026-08-05T19:43:58.068Z",
        "dateReserved": "2026-07-24T14:10:01.114Z",
        "dateUpdated": "2026-08-06T13:04:30.860Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-66881 (GCVE-0-2026-66881)

    Vulnerability from cvelistv5 – Published: 2026-08-05 19:43 – Updated: 2026-08-06 13:03
    VLAI
    Title
    Path traversal in imported file_entries name allows arbitrary file write via URL-type entry download
    Summary
    Relative Path Traversal vulnerability in livebook-dev livebook allows an attacker-authored notebook to write a file with attacker-controlled content to an arbitrary path. A .livemd notebook can declare file_entries metadata, each entry carrying a name. Every path that creates a file entry through the user interface validates that name with Livebook.Notebook.validate_file_entry_name/2, which requires a flat filename of alphanumerics, dashes, underscores and dots, ending in an extension. The import path does not: Livebook.LiveMarkdown.Import.file_entry_metadata_to_attrs/1 in lib/livebook/live_markdown/import.ex takes the name verbatim from the notebook source. For a URL-type file entry, Livebook.Session.file_entry_cache_file/2 in lib/livebook/session.ex resolves that name beneath the session's temporary directory without checking that the result stays inside it, and Livebook.FileSystem.Utils.resolve_unix_like_path/2 collapses parent-directory segments while clamping only at the filesystem root. When the entry's content is requested and no cached copy exists, Livebook fetches the entry's URL and writes the response body to the resolved path, creating parent directories as needed. The attacker therefore controls both the destination and the contents of the written file, which may land anywhere the Livebook process can write. The same missing containment check is present in Livebook.Session.to_attachment_file_entry/2. A victim who opens an attacker-supplied notebook and causes the entry to be fetched triggers the write within their own authenticated session; the attacker needs no account on the target instance. URL-type entries are also not placed under notebook stamping quarantine on import, so no warning is shown. This issue affects livebook: from 0.11.0 before 0.18.7 and from 0.19.0 before 0.19.9.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 13:03 UTC
    CWE
    • CWE-23 - Relative Path Traversal
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.11.0 , < 0.18.7 (semver)
    Affected: 0.19.0 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.11.0 , < 0.18.7 (other)
    Affected: 0.19.0 , < 0.19.9 (other)
    Affected: 0.11.0-cuda12 , < 0.18.7-cuda12 (other)
    Affected: 0.19.0-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: c02eb984f80a543c7a52b1d882c76f56aa5be743 , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-66881",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T13:03:23.099180Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T13:03:45.814Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-r4h8-2xpq-v48g"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.LiveMarkdown.Import",
                "Elixir.Livebook.Session",
                "Elixir.Livebook.FileSystem.Utils"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/live_markdown/import.ex",
                "lib/livebook/session.ex",
                "lib/livebook/file_system/utils.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.LiveMarkdown.Import\u0027:file_entry_metadata_to_attrs/1"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:file_entry_cache_file/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:to_attachment_file_entry/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.FileSystem.Utils\u0027:resolve_unix_like_path/2"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.11.0",
                  "versionType": "semver"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.LiveMarkdown.Import",
                "Elixir.Livebook.Session",
                "Elixir.Livebook.FileSystem.Utils"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/live_markdown/import.ex",
                "lib/livebook/session.ex",
                "lib/livebook/file_system/utils.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.LiveMarkdown.Import\u0027:file_entry_metadata_to_attrs/1"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:file_entry_cache_file/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:to_attachment_file_entry/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.FileSystem.Utils\u0027:resolve_unix_like_path/2"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.18.7",
                  "status": "affected",
                  "version": "0.11.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.0",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.18.7-cuda12",
                  "status": "affected",
                  "version": "0.11.0-cuda12",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.0-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.LiveMarkdown.Import",
                "Elixir.Livebook.Session",
                "Elixir.Livebook.FileSystem.Utils"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/live_markdown/import.ex",
                "lib/livebook/session.ex",
                "lib/livebook/file_system/utils.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.LiveMarkdown.Import\u0027:file_entry_metadata_to_attrs/1"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:file_entry_cache_file/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Session\u0027:to_attachment_file_entry/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.FileSystem.Utils\u0027:resolve_unix_like_path/2"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1443dd23df6e7b9203b6797f0695a807aeb81dde",
                      "status": "unaffected"
                    },
                    {
                      "at": "acf4cb8c0c79b89c795b180f061be7de2d8b5aa9",
                      "status": "unaffected"
                    },
                    {
                      "at": "50f86982ebf36c22abeb379b55ec0f2859c83bb9",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "c02eb984f80a543c7a52b1d882c76f56aa5be743",
                  "versionType": "git"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.18.7",
                      "versionStartIncluding": "0.11.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Jonatan M\u00e4nnchen / EEF"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eRelative Path Traversal vulnerability in livebook-dev livebook allows an attacker-authored notebook to write a file with attacker-controlled content to an arbitrary path.\u003c/p\u003e\n\u003cp\u003eA \u003ccode\u003e.livemd\u003c/code\u003e notebook can declare \u003ccode\u003efile_entries\u003c/code\u003e metadata, each entry carrying a \u003ccode\u003ename\u003c/code\u003e. Every path that creates a file entry through the user interface validates that name with \u003ccode\u003eLivebook.Notebook.validate_file_entry_name/2\u003c/code\u003e, which requires a flat filename of alphanumerics, dashes, underscores and dots, ending in an extension. The import path does not: \u003ccode\u003eLivebook.LiveMarkdown.Import.file_entry_metadata_to_attrs/1\u003c/code\u003e in \u003ccode\u003elib/livebook/live_markdown/import.ex\u003c/code\u003e takes the name verbatim from the notebook source.\u003c/p\u003e\n\u003cp\u003eFor a URL-type file entry, \u003ccode\u003eLivebook.Session.file_entry_cache_file/2\u003c/code\u003e in \u003ccode\u003elib/livebook/session.ex\u003c/code\u003e resolves that name beneath the session\u0027s temporary directory without checking that the result stays inside it, and \u003ccode\u003eLivebook.FileSystem.Utils.resolve_unix_like_path/2\u003c/code\u003e collapses parent-directory segments while clamping only at the filesystem root. When the entry\u0027s content is requested and no cached copy exists, Livebook fetches the entry\u0027s URL and writes the response body to the resolved path, creating parent directories as needed. The attacker therefore controls both the destination and the contents of the written file, which may land anywhere the Livebook process can write. The same missing containment check is present in \u003ccode\u003eLivebook.Session.to_attachment_file_entry/2\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eA victim who opens an attacker-supplied notebook and causes the entry to be fetched triggers the write within their own authenticated session; the attacker needs no account on the target instance. URL-type entries are also not placed under notebook stamping quarantine on import, so no warning is shown.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.11.0 before 0.18.7 and from 0.19.0 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Relative Path Traversal vulnerability in livebook-dev livebook allows an attacker-authored notebook to write a file with attacker-controlled content to an arbitrary path.\n\nA `.livemd` notebook can declare `file_entries` metadata, each entry carrying a `name`. Every path that creates a file entry through the user interface validates that name with `Livebook.Notebook.validate_file_entry_name/2`, which requires a flat filename of alphanumerics, dashes, underscores and dots, ending in an extension. The import path does not: `Livebook.LiveMarkdown.Import.file_entry_metadata_to_attrs/1` in `lib/livebook/live_markdown/import.ex` takes the name verbatim from the notebook source.\n\nFor a URL-type file entry, `Livebook.Session.file_entry_cache_file/2` in `lib/livebook/session.ex` resolves that name beneath the session\u0027s temporary directory without checking that the result stays inside it, and `Livebook.FileSystem.Utils.resolve_unix_like_path/2` collapses parent-directory segments while clamping only at the filesystem root. When the entry\u0027s content is requested and no cached copy exists, Livebook fetches the entry\u0027s URL and writes the response body to the resolved path, creating parent directories as needed. The attacker therefore controls both the destination and the contents of the written file, which may land anywhere the Livebook process can write. The same missing containment check is present in `Livebook.Session.to_attachment_file_entry/2`.\n\nA victim who opens an attacker-supplied notebook and causes the entry to be fetched triggers the write within their own authenticated session; the attacker needs no account on the target instance. URL-type entries are also not placed under notebook stamping quarantine on import, so no warning is shown.\n\nThis issue affects livebook: from 0.11.0 before 0.18.7 and from 0.19.0 before 0.19.9."
                }
              ],
              "value": "Relative Path Traversal vulnerability in livebook-dev livebook allows an attacker-authored notebook to write a file with attacker-controlled content to an arbitrary path.\n\nA .livemd notebook can declare file_entries metadata, each entry carrying a name. Every path that creates a file entry through the user interface validates that name with Livebook.Notebook.validate_file_entry_name/2, which requires a flat filename of alphanumerics, dashes, underscores and dots, ending in an extension. The import path does not: Livebook.LiveMarkdown.Import.file_entry_metadata_to_attrs/1 in lib/livebook/live_markdown/import.ex takes the name verbatim from the notebook source.\n\nFor a URL-type file entry, Livebook.Session.file_entry_cache_file/2 in lib/livebook/session.ex resolves that name beneath the session\u0027s temporary directory without checking that the result stays inside it, and Livebook.FileSystem.Utils.resolve_unix_like_path/2 collapses parent-directory segments while clamping only at the filesystem root. When the entry\u0027s content is requested and no cached copy exists, Livebook fetches the entry\u0027s URL and writes the response body to the resolved path, creating parent directories as needed. The attacker therefore controls both the destination and the contents of the written file, which may land anywhere the Livebook process can write. The same missing containment check is present in Livebook.Session.to_attachment_file_entry/2.\n\nA victim who opens an attacker-supplied notebook and causes the entry to be fetched triggers the write within their own authenticated session; the attacker needs no account on the target instance. URL-type entries are also not placed under notebook stamping quarantine on import, so no warning is shown.\n\nThis issue affects livebook: from 0.11.0 before 0.18.7 and from 0.19.0 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-76",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-76 Manipulating Web Input to File System Calls"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 7,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-23",
                  "description": "CWE-23 Relative Path Traversal",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:43:48.812Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-r4h8-2xpq-v48g"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-66881.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-66881"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/1443dd23df6e7b9203b6797f0695a807aeb81dde"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/acf4cb8c0c79b89c795b180f061be7de2d8b5aa9"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/50f86982ebf36c22abeb379b55ec0f2859c83bb9"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Path traversal in imported file_entries name allows arbitrary file write via URL-type entry download"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-66881",
        "datePublished": "2026-08-05T19:43:48.812Z",
        "dateReserved": "2026-07-28T04:15:10.239Z",
        "dateUpdated": "2026-08-06T13:03:45.814Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-68746 (GCVE-0-2026-68746)

    Vulnerability from cvelistv5 – Published: 2026-08-05 19:43 – Updated: 2026-08-06 14:48
    VLAI
    Title
    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.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.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-06 14:45 UTC
    CWE
    • CWE-636 - Not Failing Securely ('Failing Open')
    Assigner
    EEF
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: 0.19.7 , < 0.19.9 (semver)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: 0.19.7 , < 0.19.9 (other)
    Affected: 0.19.7-cuda12 , < 0.19.9-cuda12 (other)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    livebook-dev livebook Affected: fc2c87c6b0276705281842acbe17142d1ac4d555 , < * (git)
        cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-68746",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-06T14:45:09.939122Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-06T14:48:46.790Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.Hubs.TeamClient",
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.LivebookWeb.AuthPlug"
              ],
              "packageName": "livebook",
              "packageURL": "pkg:hex/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/hubs/team_client.ex",
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook_web/plugs/auth_plug.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:handle_call/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:remove_deployment_group/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:fetch_entry/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:authenticate/3"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.AuthPlug\u0027:authorized?/1"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.7",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://ghcr.io",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.Hubs.TeamClient",
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.LivebookWeb.AuthPlug"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:oci/livebook?repository_url=ghcr.io%2Flivebook-dev",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/hubs/team_client.ex",
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook_web/plugs/auth_plug.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:handle_call/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:remove_deployment_group/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:fetch_entry/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:authenticate/3"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.AuthPlug\u0027:authorized?/1"
                }
              ],
              "vendor": "livebook-dev",
              "versions": [
                {
                  "lessThan": "0.19.9",
                  "status": "affected",
                  "version": "0.19.7",
                  "versionType": "other"
                },
                {
                  "lessThan": "0.19.9-cuda12",
                  "status": "affected",
                  "version": "0.19.7-cuda12",
                  "versionType": "other"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "Elixir.Livebook.Hubs.TeamClient",
                "Elixir.Livebook.ZTA.LivebookTeams",
                "Elixir.LivebookWeb.AuthPlug"
              ],
              "packageName": "livebook-dev/livebook",
              "packageURL": "pkg:github/livebook-dev/livebook",
              "product": "livebook",
              "programFiles": [
                "lib/livebook/hubs/team_client.ex",
                "lib/livebook/zta/livebook_teams.ex",
                "lib/livebook_web/plugs/auth_plug.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:handle_call/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:remove_deployment_group/2"
                },
                {
                  "name": "\u0027Elixir.Livebook.Hubs.TeamClient\u0027:fetch_entry/3"
                },
                {
                  "name": "\u0027Elixir.Livebook.ZTA.LivebookTeams\u0027:authenticate/3"
                },
                {
                  "name": "\u0027Elixir.LivebookWeb.AuthPlug\u0027:authorized?/1"
                }
              ],
              "repo": "https://github.com/livebook-dev/livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "d374e90647edbb00286bfee9182c0161d29a8e07",
                      "status": "unaffected"
                    },
                    {
                      "at": "d6d0dfa746b172540442852f74de4a9deacc433b",
                      "status": "unaffected"
                    },
                    {
                      "at": "2d3a2c710c880abd24a2bc888d3cf5239d98cf72",
                      "status": "unaffected"
                    }
                  ],
                  "lessThan": "*",
                  "status": "affected",
                  "version": "fc2c87c6b0276705281842acbe17142d1ac4d555",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThis 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.\u003c/p\u003e\n\u003cp\u003eLivebook 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.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "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.\n\nLivebook 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."
                }
              ],
              "value": "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.\n\nLivebook 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."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.19.9",
                      "versionStartIncluding": "0.19.7",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nguy\u1ec5n C\u00f4ng T\u00fa"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Jonatan K\u0142osko"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Jos\u00e9 Valim"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Hugo Bara\u00fana"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eNot Failing Securely (\u0027Failing Open\u0027) vulnerability in livebook-dev livebook allows an unauthenticated network client to obtain full access to a Livebook server that enforces identity through Livebook Teams.\u003c/p\u003e\n\u003cp\u003eA 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. \u003ccode\u003eLivebook.Hubs.TeamClient.handle_call/3\u003c/code\u003e in \u003ccode\u003elib/livebook/hubs/team_client.ex\u003c/code\u003e 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.\u003c/p\u003e\n\u003cp\u003eWhen the identity status is reported as switched off, \u003ccode\u003eLivebook.ZTA.LivebookTeams.authenticate/3\u003c/code\u003e in \u003ccode\u003elib/livebook/zta/livebook_teams.ex\u003c/code\u003e returns empty identity metadata and allows the request to continue instead of halting it. \u003ccode\u003eLivebookWeb.UserPlug.build_current_user/3\u003c/code\u003e merges that empty metadata into a newly built user, whose access type defaults to full access, and \u003ccode\u003eLivebookWeb.AuthPlug.authorized?/1\u003c/code\u003e grants access to any user holding full access.\u003c/p\u003e\n\u003cp\u003eThe 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\u0027s runtime, and disrupt its operation.\u003c/p\u003e\n\u003cp\u003eThis issue affects livebook: from 0.19.7 before 0.19.9.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Not Failing Securely (\u0027Failing Open\u0027) vulnerability in livebook-dev livebook allows an unauthenticated network client to obtain full access to a Livebook server that enforces identity through Livebook Teams.\n\nA 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.\n\nWhen 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.\n\nThe 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\u0027s runtime, and disrupt its operation.\n\nThis issue affects livebook: from 0.19.7 before 0.19.9."
                }
              ],
              "value": "Not Failing Securely (\u0027Failing Open\u0027) vulnerability in livebook-dev livebook allows an unauthenticated network client to obtain full access to a Livebook server that enforces identity through Livebook Teams.\n\nA 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.\n\nWhen 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.\n\nThe 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\u0027s runtime, and disrupt its operation.\n\nThis issue affects livebook: from 0.19.7 before 0.19.9."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-115",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-115 Authentication Bypass"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 7.7,
                "baseSeverity": "HIGH",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-636",
                  "description": "CWE-636 Not Failing Securely (\u0027Failing Open\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T19:43:38.188Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-74j5-6grg-g6wj"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-68746.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-68746"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/d374e90647edbb00286bfee9182c0161d29a8e07"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/d6d0dfa746b172540442852f74de4a9deacc433b"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/2d3a2c710c880abd24a2bc888d3cf5239d98cf72"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Livebook Teams identity check fails open when the deployment group is unresolvable, allowing unauthenticated access"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-68746",
        "datePublished": "2026-08-05T19:43:38.188Z",
        "dateReserved": "2026-07-31T13:23:00.354Z",
        "dateUpdated": "2026-08-06T14:48:46.790Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2023-35174 (GCVE-0-2023-35174)

    Vulnerability from cvelistv5 – Published: 2023-06-22 13:34 – Updated: 2024-12-06 15:14
    VLAI
    Title
    Livebook Desktop's protocol handler can be exploited to execute arbitrary command on Windows
    Summary
    Livebook is a web application for writing interactive and collaborative code notebooks. On Windows, it is possible to open a `livebook://` link from a browser which opens Livebook Desktop and triggers arbitrary code execution on victim's machine. Any user using Livebook Desktop on Windows is potentially vulnerable to arbitrary code execution when they expect Livebook to be opened from browser. This vulnerability has been fixed in version 0.8.2 and 0.9.3.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2024-12-06 15:14 UTC
    CWE
    • CWE-78 - Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
    Assigner
    Impacted products
    Vendor Product Version
    livebook-dev livebook Affected: >= 0.8.0, < 0.8.2
    Affected: >= 0.9.0, < 0.9.3
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2024-08-02T16:23:59.573Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "name": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-564w-97r7-c6p9",
                "tags": [
                  "x_refsource_CONFIRM",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-564w-97r7-c6p9"
              },
              {
                "name": "https://github.com/livebook-dev/livebook/commit/2e11b59f677c6ed3b6aa82dad412a8b3406ffdf1",
                "tags": [
                  "x_refsource_MISC",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/commit/2e11b59f677c6ed3b6aa82dad412a8b3406ffdf1"
              },
              {
                "name": "https://github.com/livebook-dev/livebook/commit/beb10daaadcc765f0380e436bd7cd5f74cf086c8",
                "tags": [
                  "x_refsource_MISC",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/commit/beb10daaadcc765f0380e436bd7cd5f74cf086c8"
              },
              {
                "name": "https://github.com/livebook-dev/livebook/releases/tag/v0.8.2",
                "tags": [
                  "x_refsource_MISC",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/releases/tag/v0.8.2"
              },
              {
                "name": "https://github.com/livebook-dev/livebook/releases/tag/v0.9.3",
                "tags": [
                  "x_refsource_MISC",
                  "x_transferred"
                ],
                "url": "https://github.com/livebook-dev/livebook/releases/tag/v0.9.3"
              }
            ],
            "title": "CVE Program Container"
          },
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2023-35174",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-12-06T15:14:11.764601Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2024-12-06T15:14:24.752Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "livebook",
              "vendor": "livebook-dev",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003e= 0.8.0, \u003c 0.8.2"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 0.9.0, \u003c 0.9.3"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Livebook is a web application for writing interactive and collaborative code notebooks. On Windows, it is possible to open a `livebook://` link from a browser which opens Livebook Desktop and triggers arbitrary code execution on victim\u0027s machine. Any user using Livebook Desktop on Windows is potentially vulnerable to arbitrary code execution when they expect Livebook to be opened from browser. This vulnerability has been fixed in version 0.8.2 and 0.9.3.\n\n"
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "LOW",
                "baseScore": 8.6,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "LOW",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L",
                "version": "3.1"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-78",
                  "description": "CWE-78: Improper Neutralization of Special Elements used in an OS Command (\u0027OS Command Injection\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2023-06-22T13:34:38.492Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-564w-97r7-c6p9",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/livebook-dev/livebook/security/advisories/GHSA-564w-97r7-c6p9"
            },
            {
              "name": "https://github.com/livebook-dev/livebook/commit/2e11b59f677c6ed3b6aa82dad412a8b3406ffdf1",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/2e11b59f677c6ed3b6aa82dad412a8b3406ffdf1"
            },
            {
              "name": "https://github.com/livebook-dev/livebook/commit/beb10daaadcc765f0380e436bd7cd5f74cf086c8",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/livebook-dev/livebook/commit/beb10daaadcc765f0380e436bd7cd5f74cf086c8"
            },
            {
              "name": "https://github.com/livebook-dev/livebook/releases/tag/v0.8.2",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/livebook-dev/livebook/releases/tag/v0.8.2"
            },
            {
              "name": "https://github.com/livebook-dev/livebook/releases/tag/v0.9.3",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/livebook-dev/livebook/releases/tag/v0.9.3"
            }
          ],
          "source": {
            "advisory": "GHSA-564w-97r7-c6p9",
            "discovery": "UNKNOWN"
          },
          "title": "Livebook Desktop\u0027s protocol handler can be exploited to execute arbitrary command on Windows"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2023-35174",
        "datePublished": "2023-06-22T13:34:38.492Z",
        "dateReserved": "2023-06-14T14:17:52.180Z",
        "dateUpdated": "2024-12-06T15:14:24.752Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }