]> 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)
committerArd Biesheuvel <ardb@kernel.org>
Wed, 7 Sep 2022 16:23:56 +0000 (18:23 +0200)
commitf248d3c987432a9e2dc4e0147660a73142be011a
treebd9589d71ff723e58ae7ef421691f7728e7e8e0c
parent9eddd1aa48216f8cd2772808861d9a6454a3e7e1
efi: capsule-loader: Fix use-after-free in efi_capsule_write

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>
drivers/firmware/efi/capsule-loader.c