CVE-2024-58238

Source
https://cve.org/CVERecord?id=CVE-2024-58238
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-58238.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-58238
Downstream
Related
Published
2025-08-09T14:31:47.079Z
Modified
2026-03-20T12:39:59.709964Z
Summary
Bluetooth: btnxpuart: Resolve TX timeout error in power save stress test
Details

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: btnxpuart: Resolve TX timeout error in power save stress test

This fixes the tx timeout issue seen while running a stress test on btnxpuart for couple of hours, such that the interval between two HCI commands coincide with the power save timeout value of 2 seconds.

Test procedure using bash script: <load btnxpuart.ko> hciconfig hci0 up //Enable Power Save feature hcitool -i hci0 cmd 3f 23 02 00 00 while (true) do hciconfig hci0 leadv sleep 2 hciconfig hci0 noleadv sleep 2 done

Error log, after adding few more debug prints: Bluetooth: btnxpuartqueueskb(): 01 0A 20 01 00 Bluetooth: hci0: Set UART break: on, status=0 Bluetooth: hci0: btnxpuarttxwakeup() txwork scheduled Bluetooth: hci0: btnxpuarttx_work() dequeue: 01 0A 20 01 00 Can't set advertise mode on hci0: Connection timed out (110) Bluetooth: hci0: command 0x200a tx timeout

When the power save mechanism turns on UART break, and btnxpuarttxwork() is scheduled simultaneously, psdata->psstate is read as PSSTATE_AWAKE, which prevents the psdata->work from being scheduled, which is responsible to turn OFF UART break.

This issue is fixed by adding a pslock mutex around UART break on/off as well as around psstate read/write. btnxpuarttxwakeup() will now read updated psstate value. If psstate is PSSTATESLEEP, it will first schedule psdata->work, and then it will reschedule itself once UART break has been turned off and psstate is PSSTATE_AWAKE.

Tested above script for 50,000 iterations and TX timeout error was not observed anymore.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/58xxx/CVE-2024-58238.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
689ca16e523278470c38832a3010645a78c544d8
Fixed
9d5df94ce0e213d5b549633f528f96114c736190
Fixed
e4db90e4eb8d5487098712ffb1048f3fa6d25e98

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-58238.json"