From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, "Dmitry Vyukov" <dvyukov@google.com>,
stable <stable@kernel.org>,
syzbot+23f57c5ae902429285d7@syzkaller.appspotmail.com,
Tadeusz Struk <tadeusz.struk@linaro.org>,
PaX Team <pageexec@freemail.hu>
Subject: [PATCH 6.0 09/17] usb: mon: make mmapped memory read only
Date: Mon, 10 Oct 2022 09:04:32 +0200 [thread overview]
Message-ID: <20221010070330.478301738@linuxfoundation.org> (raw)
In-Reply-To: <20221010070330.159911806@linuxfoundation.org>
From: Tadeusz Struk <tadeusz.struk@linaro.org>
commit a659daf63d16aa883be42f3f34ff84235c302198 upstream.
Syzbot found an issue in usbmon module, where the user space client can
corrupt the monitor's internal memory, causing the usbmon module to
crash the kernel with segfault, UAF, etc.
The reproducer mmaps the /dev/usbmon memory to user space, and
overwrites it with arbitrary data, which causes all kinds of issues.
Return an -EPERM error from mon_bin_mmap() if the flag VM_WRTIE is set.
Also clear VM_MAYWRITE to make it impossible to change it to writable
later.
Cc: "Dmitry Vyukov" <dvyukov@google.com>
Cc: stable <stable@kernel.org>
Fixes: 6f23ee1fefdc ("USB: add binary API to usbmon")
Suggested-by: PaX Team <pageexec@freemail.hu> # for the VM_MAYRITE portion
Link: https://syzkaller.appspot.com/bug?id=2eb1f35d6525fa4a74d75b4244971e5b1411c95a
Reported-by: syzbot+23f57c5ae902429285d7@syzkaller.appspotmail.com
Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Link: https://lore.kernel.org/r/20220919215957.205681-1-tadeusz.struk@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/mon/mon_bin.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/drivers/usb/mon/mon_bin.c
+++ b/drivers/usb/mon/mon_bin.c
@@ -1268,6 +1268,11 @@ static int mon_bin_mmap(struct file *fil
{
/* don't do anything here: "fault" will set up page table entries */
vma->vm_ops = &mon_bin_vm_ops;
+
+ if (vma->vm_flags & VM_WRITE)
+ return -EPERM;
+
+ vma->vm_flags &= ~VM_MAYWRITE;
vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
vma->vm_private_data = filp->private_data;
mon_bin_vma_open(vma);
next prev parent reply other threads:[~2022-10-10 7:06 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-10 7:04 [PATCH 6.0 00/17] 6.0.1-rc1 review Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 01/17] xsk: Inherit need_wakeup flag for shared sockets Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 02/17] fs: fix UAF/GPF bug in nilfs_mdt_destroy Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 03/17] [brown paperbag] fix coredump breakage Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 04/17] sparc: Unbreak the build Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 05/17] Makefile.extrawarn: Move -Wcast-function-type-strict to W=1 Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 06/17] hardening: Remove Clangs enable flag for -ftrivial-auto-var-init=zero Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 07/17] docs: update mediator information in CoC docs Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 08/17] hwmon: (aquacomputer_d5next) Fix Quadro fan speed offsets Greg Kroah-Hartman
2022-10-10 7:04 ` Greg Kroah-Hartman [this message]
2022-10-10 7:04 ` [PATCH 6.0 10/17] USB: serial: ftdi_sio: fix 300 bps rate for SIO Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 11/17] gpiolib: acpi: Add support to ignore programming an interrupt Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 12/17] gpiolib: acpi: Add a quirk for Asus UM325UAZ Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 13/17] RISC-V: Print SSTC in canonical order Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 14/17] bpf: Gate dynptr API behind CAP_BPF Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 15/17] net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 16/17] bpf: Fix resetting logic for unreferenced kptrs Greg Kroah-Hartman
2022-10-10 7:04 ` [PATCH 6.0 17/17] Bluetooth: use hdev->workqueue when queuing hdev->{cmd,ncmd}_timer works Greg Kroah-Hartman
2022-10-10 7:43 ` [PATCH 6.0 00/17] 6.0.1-rc1 review Luna Jernberg
2022-10-12 9:04 ` Pavel Machek
2022-10-12 9:13 ` Luna Jernberg
2022-10-10 14:03 ` Fenil Jain
2022-10-10 15:41 ` Naresh Kamboju
2022-10-10 17:07 ` Justin Forbes
2022-10-10 19:13 ` Florian Fainelli
2022-10-10 21:26 ` Shuah Khan
2022-10-11 0:59 ` Zan Aziz
2022-10-11 2:43 ` Slade Watkins
2022-10-11 3:18 ` Guenter Roeck
2022-10-11 8:10 ` Rudi Heitbaum
2022-10-11 8:58 ` Bagas Sanjaya
2022-10-11 16:12 ` Jon Hunter
2022-10-11 20:35 ` Sudip Mukherjee (Codethink)
2022-10-12 0:25 ` Ron Economos
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=20221010070330.478301738@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dvyukov@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pageexec@freemail.hu \
--cc=stable@kernel.org \
--cc=stable@vger.kernel.org \
--cc=syzbot+23f57c5ae902429285d7@syzkaller.appspotmail.com \
--cc=tadeusz.struk@linaro.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;
as well as URLs for NNTP newsgroup(s).