Subject: CVE-2023-52627: iio: adc: ad7091r: Allow users to configure device events

From: Greg Kroah-Hartman <[email-masked]>

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 ca69300173b6 and fixed in 5.10.210 with commit 1eba6f7ffa29
	Issue introduced in 5.6 with commit ca69300173b6 and fixed in 5.15.149 with commit 49f322ce1f26
	Issue introduced in 5.6 with commit ca69300173b6 and fixed in 6.1.76 with commit 137568aa540a
	Issue introduced in 5.6 with commit ca69300173b6 and fixed in 6.6.15 with commit 89c4e63324e2
	Issue introduced in 5.6 with commit ca69300173b6 and fixed in 6.7.3 with commit 55aca2ce91a6
	Issue introduced in 5.6 with commit ca69300173b6 and fixed in 6.8 with commit 020e71c7ffc2

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