[PATCH 1/1] cdrom: Fix spectre-v1 gadget

From: Jordy Zomer
Date: Fri Jun 09 2023 - 09:15:08 EST


This patch fixes a spectre-v1 gadget in cdrom.
The gadget could be triggered by,
speculatviely bypassing the cdi->capacity check.

Signed-off-by: Jordy Zomer <jordyzomer@xxxxxxxxxx>
---
drivers/cdrom/cdrom.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 416f723a2dbb..3c349bc0a269 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -233,6 +233,7 @@

-------------------------------------------------------------------------*/

+#include "asm/barrier.h"
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

#define REVISION "Revision: 3.20"
@@ -2329,6 +2330,8 @@ static int cdrom_ioctl_media_changed(struct cdrom_device_info *cdi,
if (arg >= cdi->capacity)
return -EINVAL;

+ arg = array_index_mask_nospec(arg, cdi->capacity);
+
info = kmalloc(sizeof(*info), GFP_KERNEL);
if (!info)
return -ENOMEM;
--
2.41.0.162.gfafddb0af9-goog