| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-56700: media: wl128x: Fix atomicity violation in fmc_send_cmd() |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| media: wl128x: Fix atomicity violation in fmc_send_cmd() |
| |
| Atomicity violation occurs when the fmc_send_cmd() function is executed |
| simultaneously with the modification of the fmdev->resp_skb value. |
| Consider a scenario where, after passing the validity check within the |
| function, a non-null fmdev->resp_skb variable is assigned a null value. |
| This results in an invalid fmdev->resp_skb variable passing the validity |
| check. As seen in the later part of the function, skb = fmdev->resp_skb; |
| when the invalid fmdev->resp_skb passes the check, a null pointer |
| dereference error may occur at line 478, evt_hdr = (void *)skb->data; |
| |
| To address this issue, it is recommended to include the validity check of |
| fmdev->resp_skb within the locked section of the function. This |
| modification ensures that the value of fmdev->resp_skb does not change |
| during the validation process, thereby maintaining its validity. |
| |
| This possible bug is found by an experimental static analysis tool |
| developed by our team. This tool analyzes the locking APIs |
| to extract function pairs that can be concurrently executed, and then |
| analyzes the instructions in the paired functions to identify possible |
| concurrency bugs including data races and atomicity violations. |
| |
| The Linux kernel CVE team has assigned CVE-2024-56700 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 2.6.39 with commit e8454ff7b9a4d56f02c095bff12d3c92ef4c7fa6 and fixed in 4.19.325 with commit d16109c9fdc1b8cea4fe63b42e06e926c3f68990 |
| Issue introduced in 2.6.39 with commit e8454ff7b9a4d56f02c095bff12d3c92ef4c7fa6 and fixed in 5.4.287 with commit 3c818ad07e964bca3d27adac1e1f50e1e3c9180e |
| Issue introduced in 2.6.39 with commit e8454ff7b9a4d56f02c095bff12d3c92ef4c7fa6 and fixed in 5.10.231 with commit d7408a052aa1b4f6fb6f1c7a8877b84017a07ac9 |
| Issue introduced in 2.6.39 with commit e8454ff7b9a4d56f02c095bff12d3c92ef4c7fa6 and fixed in 5.15.174 with commit ed228b74d8a500380150965d5becabf9a1e33141 |
| Issue introduced in 2.6.39 with commit e8454ff7b9a4d56f02c095bff12d3c92ef4c7fa6 and fixed in 6.1.120 with commit 372dc9509122e5d45d4c12978e31c3c7d00aaca4 |
| Issue introduced in 2.6.39 with commit e8454ff7b9a4d56f02c095bff12d3c92ef4c7fa6 and fixed in 6.6.64 with commit 378ce4e08ca2b1ac7bbf1d57b68643ca4226c5f8 |
| Issue introduced in 2.6.39 with commit e8454ff7b9a4d56f02c095bff12d3c92ef4c7fa6 and fixed in 6.11.11 with commit 2e63c908de357048180516b84740ed62dac0b269 |
| Issue introduced in 2.6.39 with commit e8454ff7b9a4d56f02c095bff12d3c92ef4c7fa6 and fixed in 6.12.2 with commit 80a3b2ee01eecf22dfa06968b3cde92c691dea10 |
| Issue introduced in 2.6.39 with commit e8454ff7b9a4d56f02c095bff12d3c92ef4c7fa6 and fixed in 6.13 with commit ca59f9956d4519ab18ab2270be47c6b8c6ced091 |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2024-56700 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/media/radio/wl128x/fmdrv_common.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/d16109c9fdc1b8cea4fe63b42e06e926c3f68990 |
| https://git.kernel.org/stable/c/3c818ad07e964bca3d27adac1e1f50e1e3c9180e |
| https://git.kernel.org/stable/c/d7408a052aa1b4f6fb6f1c7a8877b84017a07ac9 |
| https://git.kernel.org/stable/c/ed228b74d8a500380150965d5becabf9a1e33141 |
| https://git.kernel.org/stable/c/372dc9509122e5d45d4c12978e31c3c7d00aaca4 |
| https://git.kernel.org/stable/c/378ce4e08ca2b1ac7bbf1d57b68643ca4226c5f8 |
| https://git.kernel.org/stable/c/2e63c908de357048180516b84740ed62dac0b269 |
| https://git.kernel.org/stable/c/80a3b2ee01eecf22dfa06968b3cde92c691dea10 |
| https://git.kernel.org/stable/c/ca59f9956d4519ab18ab2270be47c6b8c6ced091 |