{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-31773", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2026-03-09T15:48:24.140Z", "datePublished": "2026-05-01T14:15:01.277Z", "dateUpdated": "2026-08-05T12:25:05.705Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:25:05.705Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: SMP: derive legacy responder STK authentication from MITM state\n\nThe legacy responder path in smp_random() currently labels the stored\nSTK as authenticated whenever pending_sec_level is BT_SECURITY_HIGH.\nThat reflects what the local service requested, not what the pairing\nflow actually achieved.\n\nFor Just Works/Confirm legacy pairing, SMP_FLAG_MITM_AUTH stays clear\nand the resulting STK should remain unauthenticated even if the local\nside requested HIGH security. Use the established MITM state when\nstoring the responder STK so the key metadata matches the pairing result.\n\nThis also keeps the legacy path aligned with the Secure Connections code,\nwhich already treats JUST_WORKS/JUST_CFM as unauthenticated." } ], "metrics": [ { "cvssV3_1": { "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" }, "scenarios": [ { "lang": "en", "value": "AV:A - The vulnerable SMP legacy pairing path is reached by Bluetooth LE Security Manager PDUs over the L2CAP SMP fixed channel, so the attacker must be within Bluetooth radio range.\nAC:L - A nearby attacker can drive the Pairing Request/Confirm/Random exchange and trigger the responder STK metadata error without winning a race or relying on memory layout.\nPR:N - The affected code runs during Bluetooth pairing before the remote peer has authenticated or obtained any prior privileges on the target.\nUI:N - Although some deployments may ask a user-space agent to confirm pairing, headless or auto-confirming BLE deployments can complete Just Works/Confirm pairing without human action, so the higher-severity reasonable case is no user interaction.\nS:U - The bug misclassifies Bluetooth link/key authentication inside the same host Bluetooth security authority and does not cross a VM, sandbox, or hardware isolation boundary.\nC:H - An unauthenticated adjacent peer can cause unauthenticated legacy pairing material to be treated as authenticated, allowing access to data exposed only to BT_SECURITY_HIGH peers in high-value BLE deployments.\nI:H - The same authentication bypass can let the peer perform writes or control operations guarded by authenticated Bluetooth security, including persistent trusted-key use after pairing.\nA:H - In severe but reasonable embedded or controller BLE deployments, unauthorized authenticated-level control access can disable, reset, or otherwise disrupt protected device functionality." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/bluetooth/smp.c" ], "versions": [ { "version": "fff3490f47810e2d34b91fb9e31103e923b11c2f", "lessThan": "9a38659a3d06080715691bd3139f9c4b61f688e3", "status": "affected", "versionType": "git" }, { "version": "fff3490f47810e2d34b91fb9e31103e923b11c2f", "lessThan": "667f44f1392df6482483756458c48670e579e9ff", "status": "affected", "versionType": "git" }, { "version": "fff3490f47810e2d34b91fb9e31103e923b11c2f", "lessThan": "929db734d12db41ca5f95424db4612397f1bd4a7", "status": "affected", "versionType": "git" }, { "version": "fff3490f47810e2d34b91fb9e31103e923b11c2f", "lessThan": "b1c6a8e554a39b222c0879a288ea98e338fc4d77", "status": "affected", "versionType": "git" }, { "version": "fff3490f47810e2d34b91fb9e31103e923b11c2f", "lessThan": "0afc846bd80073ffcd2b8040f2b2fafaea3d9f72", "status": "affected", "versionType": "git" }, { "version": "fff3490f47810e2d34b91fb9e31103e923b11c2f", "lessThan": "061ee71ac6b03c9f8432fe49538c3682bfcf4cf3", "status": "affected", "versionType": "git" }, { "version": "fff3490f47810e2d34b91fb9e31103e923b11c2f", "lessThan": "9a6d0db176f082685e0b6149700c0baf3ce2aa8b", "status": "affected", "versionType": "git" }, { "version": "fff3490f47810e2d34b91fb9e31103e923b11c2f", "lessThan": "20756fec2f0108cb88e815941f1ffff88dc286fe", "status": "affected", "versionType": "git" }, { "version": "14ec593d6bb050cf40a4ade2f9ac9ca050e0412c", "status": "affected", "versionType": "git" }, { "version": "3.15.5", "lessThan": "3.16", "status": "affected", "versionType": "semver" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/bluetooth/smp.c" ], "versions": [ { "version": "3.16", "status": "affected" }, { "version": "0", "lessThan": "3.16", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.253", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.203", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.168", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.134", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.81", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.18.22", "lessThanOrEqual": "6.18.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.19.12", "lessThanOrEqual": "6.19.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.0", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.16", "versionEndExcluding": "5.10.253" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.16", "versionEndExcluding": "5.15.203" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.16", "versionEndExcluding": "6.1.168" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.16", "versionEndExcluding": "6.6.134" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.16", "versionEndExcluding": "6.12.81" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.16", "versionEndExcluding": "6.18.22" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.16", "versionEndExcluding": "6.19.12" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.16", "versionEndExcluding": "7.0" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "3.15.5" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/9a38659a3d06080715691bd3139f9c4b61f688e3" }, { "url": "https://git.kernel.org/stable/c/667f44f1392df6482483756458c48670e579e9ff" }, { "url": "https://git.kernel.org/stable/c/929db734d12db41ca5f95424db4612397f1bd4a7" }, { "url": "https://git.kernel.org/stable/c/b1c6a8e554a39b222c0879a288ea98e338fc4d77" }, { "url": "https://git.kernel.org/stable/c/0afc846bd80073ffcd2b8040f2b2fafaea3d9f72" }, { "url": "https://git.kernel.org/stable/c/061ee71ac6b03c9f8432fe49538c3682bfcf4cf3" }, { "url": "https://git.kernel.org/stable/c/9a6d0db176f082685e0b6149700c0baf3ce2aa8b" }, { "url": "https://git.kernel.org/stable/c/20756fec2f0108cb88e815941f1ffff88dc286fe" } ], "title": "Bluetooth: SMP: derive legacy responder STK authentication from MITM state", "x_generator": { "engine": "bippy-1.2.0" } } } }