GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-89774 (GCVE-0-2026-89774)

Vulnerability from cvelistv5 – Published: 2026-09-16 08:24 – Updated: 2026-09-16 14:38
VLAI
Title
Bluetooth: SCO: hold sk properly in sco_conn_ready
Summary
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: SCO: hold sk properly in sco_conn_ready sk deref in sco_conn_ready must be done either under conn->lock, or holding a refcount, to avoid concurrent close. conn->sk and parent sk is currently accessed without either, and without checking parent->sk_state: [Task 1] [Task 2] sco_sock_release sco_conn_ready sk = conn->sk lock_sock(sk) conn->sk = NULL lock_sock(sk) release_sock(sk) sco_sock_kill(sk) UAF on sk deref and similarly for access to sco_get_sock_listen() return value. Fix possible UAF by holding sk refcount in sco_conn_ready() and making sco_get_sock_listen() increase refcount. Also recheck after lock_sock that the socket is still valid. Adjust conn->sk locking so it's protected also by lock_sock() of the associated socket if any.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 27c24fda62b601d6f9ca5e992502578c4310876f , < 50aae396dc30377bec8e3b181b8346f8fd38f7d8 (git)
Affected: 27c24fda62b601d6f9ca5e992502578c4310876f , < 6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1 (git)
Affected: 27c24fda62b601d6f9ca5e992502578c4310876f , < d141d9b769bcd1b747898528c5023270cda040f2 (git)
Affected: 27c24fda62b601d6f9ca5e992502578c4310876f , < 73cb063f5ec6ca51eb1e246c6d332563002ac277 (git)
Affected: 27c24fda62b601d6f9ca5e992502578c4310876f , < 7199c78c3a3e399a4dc439d845826793880ccedc (git)
Affected: 27c24fda62b601d6f9ca5e992502578c4310876f , < 4e37f6452d586b95c346a9abdd2fb80b67794f39 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.15
Unaffected: 0 , < 5.15 (semver)
Unaffected: 5.15.212 , ≤ 5.15.* (semver)
Unaffected: 6.1.178 , ≤ 6.1.* (semver)
Unaffected: 6.6.145 , ≤ 6.6.* (semver)
Unaffected: 6.12.97 , ≤ 6.12.* (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/bluetooth/sco.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "50aae396dc30377bec8e3b181b8346f8fd38f7d8",
              "status": "affected",
              "version": "27c24fda62b601d6f9ca5e992502578c4310876f",
              "versionType": "git"
            },
            {
              "lessThan": "6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1",
              "status": "affected",
              "version": "27c24fda62b601d6f9ca5e992502578c4310876f",
              "versionType": "git"
            },
            {
              "lessThan": "d141d9b769bcd1b747898528c5023270cda040f2",
              "status": "affected",
              "version": "27c24fda62b601d6f9ca5e992502578c4310876f",
              "versionType": "git"
            },
            {
              "lessThan": "73cb063f5ec6ca51eb1e246c6d332563002ac277",
              "status": "affected",
              "version": "27c24fda62b601d6f9ca5e992502578c4310876f",
              "versionType": "git"
            },
            {
              "lessThan": "7199c78c3a3e399a4dc439d845826793880ccedc",
              "status": "affected",
              "version": "27c24fda62b601d6f9ca5e992502578c4310876f",
              "versionType": "git"
            },
            {
              "lessThan": "4e37f6452d586b95c346a9abdd2fb80b67794f39",
              "status": "affected",
              "version": "27c24fda62b601d6f9ca5e992502578c4310876f",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/bluetooth/sco.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.15"
            },
            {
              "lessThan": "5.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.212",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.178",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.145",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.97",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.212",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.178",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.145",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.97",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: SCO: hold sk properly in sco_conn_ready\n\nsk deref in sco_conn_ready must be done either under conn-\u003elock, or\nholding a refcount, to avoid concurrent close. conn-\u003esk and parent sk is\ncurrently accessed without either, and without checking parent-\u003esk_state:\n\n    [Task 1]            [Task 2]\n                        sco_sock_release\n    sco_conn_ready\n      sk = conn-\u003esk\n                          lock_sock(sk)\n                            conn-\u003esk = NULL\n      lock_sock(sk)\n                          release_sock(sk)\n                          sco_sock_kill(sk)\n       UAF on sk deref\n\nand similarly for access to sco_get_sock_listen() return value.\n\nFix possible UAF by holding sk refcount in sco_conn_ready() and making\nsco_get_sock_listen() increase refcount. Also recheck after lock_sock\nthat the socket is still valid.  Adjust conn-\u003esk locking so it\u0027s\nprotected also by lock_sock() of the associated socket if any."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:A - sco_conn_ready runs from sco_connect_cfm via hci_connect_cfm on HCI Connection Complete, Synchronous Connection Complete, and deferred Connection Request for SCO/eSCO, driven by an in-range Bluetooth peer. Kernel CNA guidance classifies Bluetooth as Adjacent.\nAC:L - This is a use-after-free race between sco_conn_ready and sco_sock_release/sco_sock_kill. An attacker who times HCI SCO completion against socket close (rapid peer establish/teardown or concurrent connect/close) controls both sides and can retry until the window is hit; CONFIG_BT_BREDR defaults to y.\nPR:N - Incoming SCO is accepted when any listen socket exists (typical HFP/audio daemons on phones) with no Linux credentials required of the peer. sco_sock_create has no capability check, and listener close can occur from automatic bluetoothd/PipeWire teardown during connection setup.\nUI:N - No victim action is required at exploit time. OS Bluetooth audio stacks keep SCO listeners and manage sockets during normal headset, hands-free, and automotive operation while peer-initiated SCO/eSCO traffic is processed.\nS:U - The use-after-free corrupts in-kernel Bluetooth socket memory and can enable privilege escalation within the same host kernel security authority. It does not cross a VM, container, or IOMMU boundary.\nC:H - Use-after-free of struct sock after sco_sock_kill lets an attacker reclaim the freed slab object and read kernel memory through subsequent sock operations, which per CNA guidance is High confidentiality impact.\nI:H - sco_conn_ready writes sk-\u003esk_state and makes an indirect call through sk-\u003esk_state_change on the freed sock, a standard kernel heap UAF primitive for arbitrary write and control-flow hijack, scored High per UAF guidance.\nA:H - lock_sock and subsequent sk field access on a freed socket cause a kernel oops or panic. Per CNA guidance any use-after-free is High availability impact even before full exploitation."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-16T14:38:26.042Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/50aae396dc30377bec8e3b181b8346f8fd38f7d8"
        },
        {
          "url": "https://git.kernel.org/stable/c/6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1"
        },
        {
          "url": "https://git.kernel.org/stable/c/d141d9b769bcd1b747898528c5023270cda040f2"
        },
        {
          "url": "https://git.kernel.org/stable/c/73cb063f5ec6ca51eb1e246c6d332563002ac277"
        },
        {
          "url": "https://git.kernel.org/stable/c/7199c78c3a3e399a4dc439d845826793880ccedc"
        },
        {
          "url": "https://git.kernel.org/stable/c/4e37f6452d586b95c346a9abdd2fb80b67794f39"
        }
      ],
      "title": "Bluetooth: SCO: hold sk properly in sco_conn_ready",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-89774",
    "datePublished": "2026-09-16T08:24:21.248Z",
    "dateReserved": "2026-09-11T19:38:34.765Z",
    "dateUpdated": "2026-09-16T14:38:26.042Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-89774",
      "date": "2026-09-16",
      "epss": "0.00191",
      "percentile": "0.09043"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-89774\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-09-16T09:17:07.717\",\"lastModified\":\"2026-09-16T15:18:06.747\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nBluetooth: SCO: hold sk properly in sco_conn_ready\\n\\nsk deref in sco_conn_ready must be done either under conn-\u003elock, or\\nholding a refcount, to avoid concurrent close. conn-\u003esk and parent sk is\\ncurrently accessed without either, and without checking parent-\u003esk_state:\\n\\n    [Task 1]            [Task 2]\\n                        sco_sock_release\\n    sco_conn_ready\\n      sk = conn-\u003esk\\n                          lock_sock(sk)\\n                            conn-\u003esk = NULL\\n      lock_sock(sk)\\n                          release_sock(sk)\\n                          sco_sock_kill(sk)\\n       UAF on sk deref\\n\\nand similarly for access to sco_get_sock_listen() return value.\\n\\nFix possible UAF by holding sk refcount in sco_conn_ready() and making\\nsco_get_sock_listen() increase refcount. Also recheck after lock_sock\\nthat the socket is still valid.  Adjust conn-\u003esk locking so it\u0027s\\nprotected also by lock_sock() of the associated socket if any.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"net/bluetooth/sco.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"27c24fda62b601d6f9ca5e992502578c4310876f\",\"lessThan\":\"50aae396dc30377bec8e3b181b8346f8fd38f7d8\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"27c24fda62b601d6f9ca5e992502578c4310876f\",\"lessThan\":\"6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"27c24fda62b601d6f9ca5e992502578c4310876f\",\"lessThan\":\"d141d9b769bcd1b747898528c5023270cda040f2\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"27c24fda62b601d6f9ca5e992502578c4310876f\",\"lessThan\":\"73cb063f5ec6ca51eb1e246c6d332563002ac277\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"27c24fda62b601d6f9ca5e992502578c4310876f\",\"lessThan\":\"7199c78c3a3e399a4dc439d845826793880ccedc\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"27c24fda62b601d6f9ca5e992502578c4310876f\",\"lessThan\":\"4e37f6452d586b95c346a9abdd2fb80b67794f39\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"net/bluetooth/sco.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.15\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.15\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.212\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.178\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.145\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.97\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.40\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":8.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"ADJACENT_NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":2.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/4e37f6452d586b95c346a9abdd2fb80b67794f39\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/50aae396dc30377bec8e3b181b8346f8fd38f7d8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/7199c78c3a3e399a4dc439d845826793880ccedc\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/73cb063f5ec6ca51eb1e246c6d332563002ac277\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d141d9b769bcd1b747898528c5023270cda040f2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…