{"id":"CVE-2024-35967","state":"PUBLISHED","title":"Bluetooth: SCO: Fix not validating setsockopt user input","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: SCO: Fix not validating setsockopt user input\n\nsyzbot reported sco_sock_setsockopt() is copying data without\nchecking user input length.\n\nBUG: KASAN: slab-out-of-bounds in copy_from_sockptr_offset\ninclude/linux/sockptr.h:49 [inline]\nBUG: KASAN: slab-out-of-bounds in copy_from_sockptr\ninclude/linux/sockptr.h:55 [inline]\nBUG: KASAN: slab-out-of-bounds in sco_sock_setsockopt+0xc0b/0xf90\nnet/bluetooth/sco.c:893\nRead of size 4 at addr ffff88805f7b15a3 by task syz-executor.5/12578","publishedAt":"2024-05-20T09:41:56.503Z","updatedAt":"2026-10-15T00:41:48.124Z","severity":{"score":7.1,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"b0e30c37695b614bee69187f86eaf250e36606ce","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"2c2dc87cdebef3fe3b9d7a711a984c70e376e32e","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"7bc65d23ba20dcd7ecc094a12c181e594e5eb315","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"72473db90900da970a16ee50ad23c2c38d107d8c","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"419a0ffca7010216f0fc265b08558d7394fa0ba7","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"51eda36d33e43201e7a4fd35232e069b2c850b01","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/bluetooth/bluetooth.h","net/bluetooth/sco.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.8","versionType":"semver"},{"version":"5.10.216","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.178","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.87","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.28","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.8.7","status":"unaffected","lessThanOrEqual":"6.8.*","versionType":"semver"},{"version":"6.9","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/bluetooth/bluetooth.h","net/bluetooth/sco.c"]}],"references":["https://git.kernel.org/stable/c/b0e30c37695b614bee69187f86eaf250e36606ce","https://git.kernel.org/stable/c/2c2dc87cdebef3fe3b9d7a711a984c70e376e32e","https://git.kernel.org/stable/c/7bc65d23ba20dcd7ecc094a12c181e594e5eb315","https://git.kernel.org/stable/c/72473db90900da970a16ee50ad23c2c38d107d8c","https://git.kernel.org/stable/c/419a0ffca7010216f0fc265b08558d7394fa0ba7","https://git.kernel.org/stable/c/51eda36d33e43201e7a4fd35232e069b2c850b01","https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","https://cert-portal.siemens.com/productcert/html/ssa-265688.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:07:30.303Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/35xxx/CVE-2024-35967.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-35967","state":"PUBLISHED","datePublished":"2024-05-20T09:41:56.503Z","dateUpdated":"2026-10-15T00:41:48.124Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-05-17T13:50:33.140Z"},"containers":{"cna":{"title":"Bluetooth: SCO: Fix not validating setsockopt user input","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: SCO: Fix not validating setsockopt user input\n\nsyzbot reported sco_sock_setsockopt() is copying data without\nchecking user input length.\n\nBUG: KASAN: slab-out-of-bounds in copy_from_sockptr_offset\ninclude/linux/sockptr.h:49 [inline]\nBUG: KASAN: slab-out-of-bounds in copy_from_sockptr\ninclude/linux/sockptr.h:55 [inline]\nBUG: KASAN: slab-out-of-bounds in sco_sock_setsockopt+0xc0b/0xf90\nnet/bluetooth/sco.c:893\nRead of size 4 at addr ffff88805f7b15a3 by task syz-executor.5/12578"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"b0e30c37695b614bee69187f86eaf250e36606ce","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"2c2dc87cdebef3fe3b9d7a711a984c70e376e32e","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"7bc65d23ba20dcd7ecc094a12c181e594e5eb315","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"72473db90900da970a16ee50ad23c2c38d107d8c","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"419a0ffca7010216f0fc265b08558d7394fa0ba7","versionType":"git"},{"version":"b96e9c671b05f95126753a22145d4509d45ca197","status":"affected","lessThan":"51eda36d33e43201e7a4fd35232e069b2c850b01","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/bluetooth/bluetooth.h","net/bluetooth/sco.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.8","versionType":"semver"},{"version":"5.10.216","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.178","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.87","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.28","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.8.7","status":"unaffected","lessThanOrEqual":"6.8.*","versionType":"semver"},{"version":"6.9","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/bluetooth/bluetooth.h","net/bluetooth/sco.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/b0e30c37695b614bee69187f86eaf250e36606ce"},{"url":"https://git.kernel.org/stable/c/2c2dc87cdebef3fe3b9d7a711a984c70e376e32e"},{"url":"https://git.kernel.org/stable/c/7bc65d23ba20dcd7ecc094a12c181e594e5eb315"},{"url":"https://git.kernel.org/stable/c/72473db90900da970a16ee50ad23c2c38d107d8c"},{"url":"https://git.kernel.org/stable/c/419a0ffca7010216f0fc265b08558d7394fa0ba7"},{"url":"https://git.kernel.org/stable/c/51eda36d33e43201e7a4fd35232e069b2c850b01"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H","baseScore":7.1,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The flaw is triggered purely through the setsockopt(2) syscall on a locally created AF_BLUETOOTH/BTPROTO_SCO socket; no Bluetooth radio traffic, paired peer, or adapter link is involved in reaching the unvalidated copy.\nAC:L - Exploitation is fully deterministic and attacker-controlled — issue setsockopt(fd, SOL_BLUETOOTH, BT_PKT_STATUS/BT_DEFER_SETUP, buf, optlen<4); no race, no timing window, and no memory-layout condition outside the attacker's influence.\nPR:L - sco_sock_create() and bt_sock_create() contain no capability check (unlike HCI raw sockets), so any unprivileged local user can open a SCO socket and call setsockopt; only the permissive security_socket_setsockopt() LSM hook sits on the path.\nUI:N - The attacker performs every step itself via its own socket; no victim action, mount, or file open is needed.\nS:U - The out-of-bounds access occurs in kernel slab memory within the same security authority; there is no VM, IOMMU, or sandbox boundary crossed.\nC:H - The bug is an out-of-bounds read of kernel heap memory past the end of the optval allocation, and the disclosed value is observable back in userspace because sco_sock_getsockopt() returns the BT_SK_DEFER_SETUP/BT_SK_PKT_STATUS bits, giving a repeatable oracle over adjacent kernel memory that can be combined with heap grooming to leak kernel data.\nI:N - The defect is a read past the end of a buffer; nothing is written out of bounds, and the leaked value only toggles a flag on the attacker's own socket, so no data outside the attacker's authority is modified.\nA:H - The slab out-of-bounds read triggers a KASAN BUG/panic on hardened and debug kernels and can fault when the copy crosses into an unmapped or guarded page, producing a kernel oops repeatable at will by an unprivileged user."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:31:16.372Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.10.216"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"5.15.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.1.87"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.6.28"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.8.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.8","versionEndExcluding":"6.9"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-35967","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-05-20T17:01:27.722344Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-06-04T17:33:26.743Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/b0e30c37695b614bee69187f86eaf250e36606ce","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/7bc65d23ba20dcd7ecc094a12c181e594e5eb315","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/72473db90900da970a16ee50ad23c2c38d107d8c","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/419a0ffca7010216f0fc265b08558d7394fa0ba7","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/51eda36d33e43201e7a4fd35232e069b2c850b01","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-02T03:21:49.126Z"}},{"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"V1.1.1","versionType":"custom"}]}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-265688.html"}],"providerMetadata":{"shortName":"siemens-SADP","orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","dateUpdated":"2026-10-15T00:41:48.124Z"},"x_adpType":"supplier"}]}}}