]> git.baikalelectronics.ru Git - kernel.git/commit
efi: capsule-loader: Fix use-after-free in efi_capsule_write
authorHyunwoo Kim <imv4bel@gmail.com>
Wed, 7 Sep 2022 16:07:14 +0000 (09:07 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 Sep 2022 10:04:49 +0000 (12:04 +0200)
commit38b91b6fbd344e62ababc42842c37018d6325a91
treefbf6c46947ec8a486221944bd47b5080aa3faabd
parent787590327bb5ee2bf27a86808c12d8e6e8d6fc12
efi: capsule-loader: Fix use-after-free in efi_capsule_write

commit e7cc8614a19831c6fa370870ab815024dbc4b867 upstream.

A race condition may occur if the user calls close() on another thread
during a write() operation on the device node of the efi capsule.

This is a race condition that occurs between the efi_capsule_write() and
efi_capsule_flush() functions of efi_capsule_fops, which ultimately
results in UAF.

So, the page freeing process is modified to be done in
efi_capsule_release() instead of efi_capsule_flush().

Cc: <stable@vger.kernel.org> # v4.9+
Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
Link: https://lore.kernel.org/all/20220907102920.GA88602@ubuntu/
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/firmware/efi/capsule-loader.c