| 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-2023-52627: iio: adc: ad7091r: Allow users to configure device events |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| iio: adc: ad7091r: Allow users to configure device events |
| |
| AD7091R-5 devices are supported by the ad7091r-5 driver together with |
| the ad7091r-base driver. Those drivers declared iio events for notifying |
| user space when ADC readings fall bellow the thresholds of low limit |
| registers or above the values set in high limit registers. |
| However, to configure iio events and their thresholds, a set of callback |
| functions must be implemented and those were not present until now. |
| The consequence of trying to configure ad7091r-5 events without the |
| proper callback functions was a null pointer dereference in the kernel |
| because the pointers to the callback functions were not set. |
| |
| Implement event configuration callbacks allowing users to read/write |
| event thresholds and enable/disable event generation. |
| |
| Since the event spec structs are generic to AD7091R devices, also move |
| those from the ad7091r-5 driver the base driver so they can be reused |
| when support for ad7091r-2/-4/-8 be added. |
| |
| The Linux kernel CVE team has assigned CVE-2023-52627 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 5.6 with commit ca69300173b642ba64118200172171ea5967b6c5 and fixed in 5.10.210 with commit 1eba6f7ffa295a0eec098c107043074be7cc4ec5 |
| Issue introduced in 5.6 with commit ca69300173b642ba64118200172171ea5967b6c5 and fixed in 5.15.149 with commit 49f322ce1f265935f15e5512da69a399f27a5091 |
| Issue introduced in 5.6 with commit ca69300173b642ba64118200172171ea5967b6c5 and fixed in 6.1.76 with commit 137568aa540a9f587c48ff7d4c51cdba08cfe9a4 |
| Issue introduced in 5.6 with commit ca69300173b642ba64118200172171ea5967b6c5 and fixed in 6.6.15 with commit 89c4e63324e208a23098f7fb15c00487cecbfed2 |
| Issue introduced in 5.6 with commit ca69300173b642ba64118200172171ea5967b6c5 and fixed in 6.7.3 with commit 55aca2ce91a63740278502066beaddbd841af9c6 |
| Issue introduced in 5.6 with commit ca69300173b642ba64118200172171ea5967b6c5 and fixed in 6.8 with commit 020e71c7ffc25dfe29ed9be6c2d39af7bd7f661f |
| |
| 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-2023-52627 |
| 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/iio/adc/ad7091r-base.c |
| drivers/iio/adc/ad7091r-base.h |
| drivers/iio/adc/ad7091r5.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/1eba6f7ffa295a0eec098c107043074be7cc4ec5 |
| https://git.kernel.org/stable/c/49f322ce1f265935f15e5512da69a399f27a5091 |
| https://git.kernel.org/stable/c/137568aa540a9f587c48ff7d4c51cdba08cfe9a4 |
| https://git.kernel.org/stable/c/89c4e63324e208a23098f7fb15c00487cecbfed2 |
| https://git.kernel.org/stable/c/55aca2ce91a63740278502066beaddbd841af9c6 |
| https://git.kernel.org/stable/c/020e71c7ffc25dfe29ed9be6c2d39af7bd7f661f |