From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Andy Whitcroft <apw@canonical.com>, Jens Axboe <axboe@kernel.dk>,
Sasha Levin <alexander.levin@microsoft.com>
Subject: [PATCH AUTOSEL 4.4 09/11] floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl
Date: Fri, 5 Oct 2018 12:17:34 -0400 [thread overview]
Message-ID: <20181005161736.20765-9-sashal@kernel.org> (raw)
In-Reply-To: <20181005161736.20765-1-sashal@kernel.org>
From: Andy Whitcroft <apw@canonical.com>
[ Upstream commit 65eea8edc315589d6c993cf12dbb5d0e9ef1fe4e ]
The final field of a floppy_struct is the field "name", which is a pointer
to a string in kernel memory. The kernel pointer should not be copied to
user memory. The FDGETPRM ioctl copies a floppy_struct to user memory,
including this "name" field. This pointer cannot be used by the user
and it will leak a kernel address to user-space, which will reveal the
location of kernel code and data and undermine KASLR protection.
Model this code after the compat ioctl which copies the returned data
to a previously cleared temporary structure on the stack (excluding the
name pointer) and copy out to userspace from there. As we already have
an inparam union with an appropriate member and that memory is already
cleared even for read only calls make use of that as a temporary store.
Based on an initial patch by Brian Belleville.
CVE-2018-7755
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Broke up long line.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
drivers/block/floppy.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index 331363e7de0f..2daa5b84abbc 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -3459,6 +3459,9 @@ static int fd_locked_ioctl(struct block_device *bdev, fmode_t mode, unsigned int
(struct floppy_struct **)&outparam);
if (ret)
return ret;
+ memcpy(&inparam.g, outparam,
+ offsetof(struct floppy_struct, name));
+ outparam = &inparam.g;
break;
case FDMSGON:
UDP->flags |= FTD_MSG;
--
2.17.1
next prev parent reply other threads:[~2018-10-05 16:17 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-05 16:17 [PATCH AUTOSEL 4.4 01/11] ASoC: wm8804: Add ACPI support Sasha Levin
2018-10-05 16:17 ` [PATCH AUTOSEL 4.4 02/11] ASoC: sigmadsp: safeload should not have lower byte limit Sasha Levin
2018-10-05 16:17 ` [PATCH AUTOSEL 4.4 03/11] selftests/efivarfs: add required kernel configs Sasha Levin
2018-10-05 16:17 ` [PATCH AUTOSEL 4.4 04/11] mfd: omap-usb-host: Fix dts probe of children Sasha Levin
2018-10-05 16:17 ` [PATCH AUTOSEL 4.4 05/11] sound: enable interrupt after dma buffer initialization Sasha Levin
2018-10-05 16:17 ` [PATCH AUTOSEL 4.4 06/11] stmmac: fix valid numbers of unicast filter entries Sasha Levin
2018-10-05 16:17 ` [PATCH AUTOSEL 4.4 07/11] net: macb: disable scatter-gather for macb on sama5d3 Sasha Levin
2018-10-05 16:17 ` [PATCH AUTOSEL 4.4 08/11] ARM: dts: at91: add new compatibility string " Sasha Levin
2018-10-05 16:17 ` Sasha Levin [this message]
2018-10-05 16:17 ` [PATCH AUTOSEL 4.4 10/11] drm/amdgpu: Fix SDMA HQD destroy error on gfx_v7 Sasha Levin
2018-10-05 16:17 ` [PATCH AUTOSEL 4.4 11/11] ubifs: Check for name being NULL while mounting Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181005161736.20765-9-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=alexander.levin@microsoft.com \
--cc=apw@canonical.com \
--cc=axboe@kernel.dk \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox