{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-46332","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-05-13T15:03:33.113Z","datePublished":"2026-06-09T12:36:00.450Z","dateUpdated":"2026-08-05T12:31:27.125Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T12:31:27.125Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ngreybus: gb-beagleplay: bound bootloader receive buffering\n\ncc1352_bootloader_rx() appends each serdev chunk into the fixed\nrx_buffer before parsing bootloader packets. The helper can keep\nleftover bytes between callbacks and may receive multiple packets in one\ncallback, so a single count value is not constrained by one packet\nlength.\n\nCheck that the incoming chunk fits in the remaining receive buffer space\nbefore memcpy(). If it does not, drop the staged data and consume the\nbytes instead of overflowing rx_buffer."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","baseScore":8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - The bug is reached only when the onboard CC1352 co-processor delivers bootloader UART data to `gb_tty_receive()` via serdev during `flashing_mode`; on BeaglePlay/BeagleConnect deployments that co-processor is a sub-GHz/BLE radio bridge, so an attacker in adjacent wireless range who compromises or replaces it can supply the malicious serial responses that trigger the overflow.\nAC:L - Once firmware flashing is active, an attacker controlling CC1352 bootloader replies can reliably exceed the 259-byte `rx_buffer` by combining leftover staged bytes with oversized serdev chunks across callbacks, making the `memcpy()` overflow deterministic rather than race-dependent.\nPR:N - Exploitation does not require Linux credentials on the host; a physical or radio-adjacent attacker only needs the co-processor to send malicious bootloader bytes while `flashing_mode` is active, which can occur during an administrator-initiated update without the attacker holding any local account.\nUI:R - The vulnerable `cc1352_bootloader_rx()` path is gated on `flashing_mode`, which is set only when an operator initiates CC1352 firmware upload through the sysfs firmware-upload interface, so a separate privileged maintenance action must occur first.\nS:U - Corruption is confined to the `gb_beagleplay` driver's kmalloc'd private structure and enables standard kernel privilege escalation within the same security domain, not a cross-boundary escape such as guest-to-host or IOMMU bypass.\nC:H - The unchecked append is a heap out-of-bounds write past `rx_buffer[MAX_RX_HDLC]` into adjacent driver fields (pointers, completions, control flags), which is memory corruption that can be leveraged for arbitrary kernel memory disclosure.\nI:H - Overflowing `rx_buffer` overwrites kernel pointers and control structures in the same allocation (`fwl`, GPIO descriptors, completion objects), providing a credible path to arbitrary kernel writes and control-flow hijacking beyond a simple crash.\nA:H - Writing past the fixed receive buffer can immediately corrupt critical in-structure kernel data and cause kernel oops/panic, and repeated malicious bootloader chunks can be used to trigger persistent denial of service during flashing."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/greybus/gb-beagleplay.c"],"versions":[{"version":"0cf7befa3ea2e7284d8ba5b8f45a546865b09edb","lessThan":"663c2728a6d0f781044431111b53a27f71027e48","status":"affected","versionType":"git"},{"version":"0cf7befa3ea2e7284d8ba5b8f45a546865b09edb","lessThan":"fb91d4e49fcbea0b5091394ac5b8f7d4124265c3","status":"affected","versionType":"git"},{"version":"0cf7befa3ea2e7284d8ba5b8f45a546865b09edb","lessThan":"0339a746ff7cd3f9d10f565e89c99dc93191e58d","status":"affected","versionType":"git"},{"version":"0cf7befa3ea2e7284d8ba5b8f45a546865b09edb","lessThan":"1214bf28965ceaf584fb20d357731264dd2e10e1","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/greybus/gb-beagleplay.c"],"versions":[{"version":"6.12","status":"affected"},{"version":"0","lessThan":"6.12","status":"unaffected","versionType":"semver"},{"version":"6.12.86","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.27","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.0.4","lessThanOrEqual":"7.0.*","status":"unaffected","versionType":"semver"},{"version":"7.1","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":"6.12","versionEndExcluding":"6.12.86"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"6.18.27"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"7.0.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12","versionEndExcluding":"7.1"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/663c2728a6d0f781044431111b53a27f71027e48"},{"url":"https://git.kernel.org/stable/c/fb91d4e49fcbea0b5091394ac5b8f7d4124265c3"},{"url":"https://git.kernel.org/stable/c/0339a746ff7cd3f9d10f565e89c99dc93191e58d"},{"url":"https://git.kernel.org/stable/c/1214bf28965ceaf584fb20d357731264dd2e10e1"}],"title":"greybus: gb-beagleplay: bound bootloader receive buffering","x_generator":{"engine":"bippy-1.2.0"}}}}