From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-cve-announce@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@kernel.org>
Subject: CVE-2026-80783: HID: magicmouse: prevent unbounded recursion in magicmouse_raw_event()
Date: Fri, 4 Sep 2026 17:11:22 +0200 [thread overview]
Message-ID: <2026090404-CVE-2026-80783-a7f6@gregkh> (raw)
From: Greg Kroah-Hartman <gregkh@kernel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
HID: magicmouse: prevent unbounded recursion in magicmouse_raw_event()
magicmouse_raw_event() handles DOUBLE_REPORT_ID (0xf7) packets, which pack
two touch reports into one, by splitting the packet and calling itself on
each half. The only guard against runaway recursion is a "size < 1" check,
which stops zero-sized calls but does not bound the recursion depth.
A malicious HID device that matches this driver can send a report starting
with DOUBLE_REPORT_ID and filled with the sequence [0xf7, 0x00]. Each level
consumes two bytes and recurses on the remainder, so an incoming report of
up to HID_MAX_BUFFER_SIZE (16 KiB) drives roughly 8000 nested calls. That
easily exhausts the 16 KiB kernel stack, leading to a stack overflow: a
panic with CONFIG_VMAP_STACK, or memory corruption without it.
A double report only ever wraps two normal reports; it is never
legitimately nested. Refuse to re-enter the DOUBLE_REPORT_ID case from a
recursive call so the recursion depth is bounded to two, while all valid
packets keep being parsed exactly as before.
The Linux kernel CVE team has assigned CVE-2026-80783 to this issue.
Affected and fixed versions
===========================
Issue introduced in 2.6.37 with commit a462230e16acc8664145216da3c928d03556691a and fixed in 5.15.220 with commit 26c45abed62536aabf4033fb6d64cf72e93374e9
Issue introduced in 2.6.37 with commit a462230e16acc8664145216da3c928d03556691a and fixed in 6.1.187 with commit 8a10a624996f16628234306b46f0cf36707d78bd
Issue introduced in 2.6.37 with commit a462230e16acc8664145216da3c928d03556691a and fixed in 6.6.156 with commit d16df755b4493b6d37803c628b2c621d096796a8
Issue introduced in 2.6.37 with commit a462230e16acc8664145216da3c928d03556691a and fixed in 6.12.108 with commit bec338b07beb883726b32192c8f01c601bc76fda
Issue introduced in 2.6.37 with commit a462230e16acc8664145216da3c928d03556691a and fixed in 6.18.49 with commit 70589b0c005db003f6d8ae4db3c4d54fed7b83e4
Issue introduced in 2.6.37 with commit a462230e16acc8664145216da3c928d03556691a and fixed in 7.1.11 with commit a33a596d3ad8dfe6c96a368097a028abeee16c17
Issue introduced in 2.6.37 with commit a462230e16acc8664145216da3c928d03556691a and fixed in 7.2.1 with commit d095de37f78c5f32a4252ef0f99b84ba76550b86
Issue introduced in 2.6.37 with commit a462230e16acc8664145216da3c928d03556691a and fixed in 7.3-rc1 with commit db8d634128d2ba88d79c0b601e983ebe14bb0519
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2026-80783
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
drivers/hid/hid-magicmouse.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/26c45abed62536aabf4033fb6d64cf72e93374e9
https://git.kernel.org/stable/c/8a10a624996f16628234306b46f0cf36707d78bd
https://git.kernel.org/stable/c/d16df755b4493b6d37803c628b2c621d096796a8
https://git.kernel.org/stable/c/bec338b07beb883726b32192c8f01c601bc76fda
https://git.kernel.org/stable/c/70589b0c005db003f6d8ae4db3c4d54fed7b83e4
https://git.kernel.org/stable/c/a33a596d3ad8dfe6c96a368097a028abeee16c17
https://git.kernel.org/stable/c/d095de37f78c5f32a4252ef0f99b84ba76550b86
https://git.kernel.org/stable/c/db8d634128d2ba88d79c0b601e983ebe14bb0519
reply other threads:[~2026-09-04 15:15 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=2026090404-CVE-2026-80783-a7f6@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=cve@kernel.org \
--cc=gregkh@kernel.org \
--cc=linux-cve-announce@vger.kernel.org \
--cc=linux-kernel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.