{
  "schemaVersion": 1,
  "attribution": [
    {
      "source": "CISA Known Exploited Vulnerabilities",
      "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
      "licence": "US government work"
    },
    {
      "source": "GitHub Advisory Database",
      "url": "https://github.com/advisories",
      "licence": "CC BY 4.0"
    },
    {
      "source": "Have I Been Pwned",
      "url": "https://haveibeenpwned.com/",
      "licence": "CC BY 4.0"
    },
    {
      "source": "CVE Program (CVE records)",
      "url": "https://www.cve.org/Legal/TermsOfUse",
      "licence": "CVE Terms of Use",
      "notice": "Copyright © 1999-2026, The MITRE Corporation. CVE is a trademark and the CVE logo is a registered trademark of The MITRE Corporation.",
      "terms": "CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy."
    },
    {
      "source": "FIRST EPSS",
      "url": "https://www.first.org/epss/",
      "licence": "free to use; FIRST requests attribution"
    }
  ],
  "record": {
    "id": "CVE-2026-66885",
    "sourceURL": "https://www.cve.org/CVERecord?id=CVE-2026-66885",
    "idYear": 2026,
    "status": "PUBLISHED",
    "publishedAt": "2026-08-05T19:44:23.834Z",
    "updatedAt": "2026-08-06T13:09:29.359Z",
    "importedAt": "2026-10-24T01:58:25.636Z",
    "snapshot": {
      "id": "cve_2026-10-24_midnight_baseline",
      "at": "2026-10-24T00:00:00.000Z",
      "source": "https://github.com/CVEProject/cvelistV5/releases/tag/cve_2026-10-24_0100Z"
    },
    "facts": {
      "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.\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'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.\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'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.\n\nThis issue affects livebook: from 0.15.0 before 0.18.7 and from 0.19.0 before 0.19.9.",
      "affected": [
        {
          "vendor": "livebook-dev",
          "product": "livebook",
          "packageName": "livebook",
          "collectionURL": "https://repo.hex.pm",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "0.15.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "0.18.7"
            },
            {
              "version": "0.19.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "0.19.9"
            }
          ]
        },
        {
          "vendor": "livebook-dev",
          "product": "livebook",
          "packageName": "livebook-dev/livebook",
          "collectionURL": "https://ghcr.io",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "0.15.0",
              "status": "affected",
              "versionType": "other",
              "lessThan": "0.18.7"
            },
            {
              "version": "0.19.0",
              "status": "affected",
              "versionType": "other",
              "lessThan": "0.19.9"
            },
            {
              "version": "0.15.0-cuda12",
              "status": "affected",
              "versionType": "other",
              "lessThan": "0.18.7-cuda12"
            },
            {
              "version": "0.19.0-cuda12",
              "status": "affected",
              "versionType": "other",
              "lessThan": "0.19.9-cuda12"
            }
          ]
        },
        {
          "vendor": "livebook-dev",
          "product": "livebook",
          "packageName": "livebook-dev/livebook",
          "collectionURL": "https://github.com",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "4380a411920531223088267ed1c0ad21f96ef660",
              "status": "affected",
              "versionType": "git",
              "lessThan": "*",
              "changes": [
                {
                  "at": "21c16168263275541a6e076d0c31852c40e09a18",
                  "status": "unaffected"
                },
                {
                  "at": "33a052daa386c4ce08a9c39a07fc90f353ff6a51",
                  "status": "unaffected"
                },
                {
                  "at": "6ed2e213e9d5a19a70d7fcad5a8d616622cd2084",
                  "status": "unaffected"
                }
              ]
            }
          ]
        }
      ]
    }
  }
}