|
Takashi Iwai |
132771 |
From 433b7cd1e702b0918ef90cbf06c3da24313625d2 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
132771 |
From: Johan Hovold <johan@kernel.org>
|
|
Takashi Iwai |
132771 |
Date: Wed, 1 Dec 2021 14:25:27 +0100
|
|
Takashi Iwai |
132771 |
Subject: [PATCH] firmware: qemu_fw_cfg: fix sysfs information leak
|
|
Takashi Iwai |
132771 |
Git-commit: 433b7cd1e702b0918ef90cbf06c3da24313625d2
|
|
Takashi Iwai |
8f947a |
Alt-commit: 1b656e9aad7f4886ed466094d1dc5ee4dd900d20
|
|
Takashi Iwai |
132771 |
Patch-mainline: v5.17-rc1
|
|
Takashi Iwai |
132771 |
References: git-fixes
|
|
Takashi Iwai |
132771 |
|
|
Takashi Iwai |
132771 |
Make sure to always NUL-terminate file names retrieved from the firmware
|
|
Takashi Iwai |
132771 |
to avoid accessing data beyond the entry slab buffer and exposing it
|
|
Takashi Iwai |
132771 |
through sysfs in case the firmware data is corrupt.
|
|
Takashi Iwai |
132771 |
|
|
Takashi Iwai |
132771 |
Fixes: 75f3e8e47f38 ("firmware: introduce sysfs driver for QEMU's fw_cfg device")
|
|
Takashi Iwai |
132771 |
Cc: stable@vger.kernel.org # 4.6
|
|
Takashi Iwai |
132771 |
Cc: Gabriel Somlo <somlo@cmu.edu>
|
|
Takashi Iwai |
132771 |
Signed-off-by: Johan Hovold <johan@kernel.org>
|
|
Takashi Iwai |
132771 |
Link: https://lore.kernel.org/r/20211201132528.30025-4-johan@kernel.org
|
|
Takashi Iwai |
132771 |
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Takashi Iwai |
132771 |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
132771 |
|
|
Takashi Iwai |
132771 |
---
|
|
Takashi Iwai |
132771 |
drivers/firmware/qemu_fw_cfg.c | 2 +-
|
|
Takashi Iwai |
132771 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
Takashi Iwai |
132771 |
|
|
Takashi Iwai |
132771 |
diff --git a/drivers/firmware/qemu_fw_cfg.c b/drivers/firmware/qemu_fw_cfg.c
|
|
Takashi Iwai |
132771 |
index ccb7ed62452f..f08e056ed0ae 100644
|
|
Takashi Iwai |
132771 |
--- a/drivers/firmware/qemu_fw_cfg.c
|
|
Takashi Iwai |
132771 |
+++ b/drivers/firmware/qemu_fw_cfg.c
|
|
Takashi Iwai |
132771 |
@@ -598,7 +598,7 @@ static int fw_cfg_register_file(const struct fw_cfg_file *f)
|
|
Takashi Iwai |
132771 |
/* set file entry information */
|
|
Takashi Iwai |
132771 |
entry->size = be32_to_cpu(f->size);
|
|
Takashi Iwai |
132771 |
entry->select = be16_to_cpu(f->select);
|
|
Takashi Iwai |
132771 |
- memcpy(entry->name, f->name, FW_CFG_MAX_FILE_PATH);
|
|
Takashi Iwai |
132771 |
+ strscpy(entry->name, f->name, FW_CFG_MAX_FILE_PATH);
|
|
Takashi Iwai |
132771 |
|
|
Takashi Iwai |
132771 |
/* register entry under "/sys/firmware/qemu_fw_cfg/by_key/" */
|
|
Takashi Iwai |
132771 |
err = kobject_init_and_add(&entry->kobj, &fw_cfg_sysfs_entry_ktype,
|
|
Takashi Iwai |
132771 |
--
|
|
Takashi Iwai |
132771 |
2.31.1
|
|
Takashi Iwai |
132771 |
|