Re: [PATCH] firmware_loader: use kernel credentials when reading firmware
From: Greg Kroah-Hartman
Date: Mon Apr 04 2022 - 04:33:55 EST
On Mon, Apr 04, 2022 at 03:46:42PM +1000, Thiébaud Weksteen wrote:
> Device drivers may decide to not load firmware when probed to avoid
> slowing down the boot process should the firmware filesystem not be
> available yet. In this case, the firmware loading request may be done
> when a device file associated with the driver is first accessed. The
> credentials of the userspace process accessing the device file may be
> used to validate access to the firmware files requested by the driver.
> Ensure that the kernel assumes the responsibility of reading the
> firmware.
>
> This was observed on Android for a graphic driver loading their firmware
> when the device file (e.g. /dev/mali0) was first opened by userspace
> (i.e. surfaceflinger). The security context of surfaceflinger was used
> to validate the access to the firmware file (e.g.
> /vendor/firmware/mali.bin).
>
> Because previous configurations were relying on the userspace fallback
> mechanism, the security context of the userspace daemon (i.e. ueventd)
> was consistently used to read firmware files. More devices are found to
> use the command line argument firmware_class.path which gives the kernel
> the opportunity to read the firmware directly, hence surfacing this
> misattribution.
>
> Signed-off-by: Thiébaud Weksteen <tweek@xxxxxxxxxx>
> ---
> drivers/base/firmware_loader/main.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
Is this a bugfix? if so, what commit does this fix? If not, how has
this never been a problem in the past (i.e. what changed to cause
problems?)
thanks,
greg k-h