{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-53827","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-12-09T01:27:17.825Z","datePublished":"2025-12-09T01:29:40.794Z","dateUpdated":"2026-08-05T09:16:16.899Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T09:16:16.899Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: L2CAP: Fix use-after-free in l2cap_disconnect_{req,rsp}\n\nSimilar to commit d0be8347c623 (\"Bluetooth: L2CAP: Fix use-after-free\ncaused by l2cap_chan_put\"), just use l2cap_chan_hold_unless_zero to\nprevent referencing a channel that is about to be destroyed."}],"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 code is reached only by processing an L2CAP Disconnect Request/Response signalling PDU received from a Bluetooth peer over a BR/EDR ACL or LE link, which requires the attacker to be within Bluetooth radio range. Per kernel scoring guidance, Bluetooth-reachable code is Adjacent.\nAC:L - The attacker drives both sides: it creates and tears down L2CAP channels at will (CONN_REQ/DISCONN_REQ, ECRED reconfigure responses that call l2cap_chan_del with no lock) while flooding disconnect signalling to hit the window where the kref has reached zero but the channel is still on conn->chan_l, and can retry the connect/disconnect cycle indefinitely at no cost. syzbot reproduced the identical pattern in the sibling handler.\nPR:N - l2cap_recv_frame dispatches CID 0x0001/0x0005 straight to the signalling handlers with no security-level, pairing, or encryption check, so an entirely unauthenticated, unpaired in-range device can send the triggering PDU. Fixed channels present on conn->chan_l give a valid target CID without any local socket.\nUI:N - No victim action is needed — the packet is processed by hci_rx_work as soon as it arrives on a connectable/advertising host with Bluetooth enabled, which is the default on phones, cars, headsets and laptops.\nS:U - The corruption and its consequences are confined to the kernel's own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The handler reads chan->scid and chan->dcid out of the freed kmalloc-1k object and echoes them to the attacker in the Disconnect Response, giving a repeatable remote leak of reclaimed kernel heap contents, and the broader use-after-free permits arbitrary read via heap grooming.\nI:H - After the increment-on-zero the code performs three indirect calls (chan->ops->set_shutdown, ->teardown, ->close) through function pointers read from the freed object plus a list_del on freed list heads, so an attacker who sprays the reclaimed kmalloc-1024 slot obtains control-flow hijack and arbitrary-write primitives.\nA:H - The bug is a KASAN-confirmed use-after-free that mutex_locks freed memory and triggers a refcount_t \"increment on 0\" splat, reliably producing a kernel oops/panic, and it can be re-triggered remotely at will."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bluetooth/l2cap_core.c"],"versions":[{"version":"61d6ef3e3408cdf7e622646fb90a9f7f9560b943","lessThan":"f2d38e77aa5f3effc143e7dd24da8acf02925958","status":"affected","versionType":"git"},{"version":"61d6ef3e3408cdf7e622646fb90a9f7f9560b943","lessThan":"1351551aa9058e07a20a27a158270cf84fcde621","status":"affected","versionType":"git"},{"version":"61d6ef3e3408cdf7e622646fb90a9f7f9560b943","lessThan":"c02421992505c95c7f3c9ad59ee35e22eac60988","status":"affected","versionType":"git"},{"version":"61d6ef3e3408cdf7e622646fb90a9f7f9560b943","lessThan":"d9ba36c22a7bb09d6bac4cc2f243eff05da53f43","status":"affected","versionType":"git"},{"version":"61d6ef3e3408cdf7e622646fb90a9f7f9560b943","lessThan":"ac6725a634f7e8c0330610a8527f20c730b61115","status":"affected","versionType":"git"},{"version":"61d6ef3e3408cdf7e622646fb90a9f7f9560b943","lessThan":"348d446762e7c70778df8bafbdf3fa0df2123f58","status":"affected","versionType":"git"},{"version":"61d6ef3e3408cdf7e622646fb90a9f7f9560b943","lessThan":"d82a439c3cfdb28aa7e82e2e849c5c4dd9fca284","status":"affected","versionType":"git"},{"version":"61d6ef3e3408cdf7e622646fb90a9f7f9560b943","lessThan":"a2a9339e1c9deb7e1e079e12e27a0265aea8421a","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bluetooth/l2cap_core.c"],"versions":[{"version":"3.5","status":"affected"},{"version":"0","lessThan":"3.5","status":"unaffected","versionType":"semver"},{"version":"4.14.313","lessThanOrEqual":"4.14.*","status":"unaffected","versionType":"semver"},{"version":"4.19.281","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.241","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.178","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.108","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.25","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.2.12","lessThanOrEqual":"6.2.*","status":"unaffected","versionType":"semver"},{"version":"6.3","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.5","versionEndExcluding":"4.14.313"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"4.19.281"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"5.4.241"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"5.10.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"5.15.108"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.1.25"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.2.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.3"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/f2d38e77aa5f3effc143e7dd24da8acf02925958"},{"url":"https://git.kernel.org/stable/c/1351551aa9058e07a20a27a158270cf84fcde621"},{"url":"https://git.kernel.org/stable/c/c02421992505c95c7f3c9ad59ee35e22eac60988"},{"url":"https://git.kernel.org/stable/c/d9ba36c22a7bb09d6bac4cc2f243eff05da53f43"},{"url":"https://git.kernel.org/stable/c/ac6725a634f7e8c0330610a8527f20c730b61115"},{"url":"https://git.kernel.org/stable/c/348d446762e7c70778df8bafbdf3fa0df2123f58"},{"url":"https://git.kernel.org/stable/c/d82a439c3cfdb28aa7e82e2e849c5c4dd9fca284"},{"url":"https://git.kernel.org/stable/c/a2a9339e1c9deb7e1e079e12e27a0265aea8421a"}],"title":"Bluetooth: L2CAP: Fix use-after-free in l2cap_disconnect_{req,rsp}","x_generator":{"engine":"bippy-1.2.0"}}}}