---
id: CVE-2026-80782
title: 'HID: magicmouse: do not keep a stale msc->input if no input is claimed'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  HID: magicmouse: do not keep a stale msc->input if no input is claimed

  magicmouse_input_mapping() caches the first hid_input's input_dev in
  msc->input while the report…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b <
    c3597923932bb90d4fc2186aef552f6677175e4a
  - >-
    Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b <
    e0c224c93d10ee38854fdf24c815108aedd3dcb3
  - >-
    Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b <
    403cc9bd6ccb9fbe68d501c3236e5a6dd5504e14
  - >-
    Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b <
    3d7a7bac4c75f25b2513505a0ac5ba909588ed2b
  - >-
    Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b <
    9bdf8c7bfd79f1090e61d28f969b32880fd77bb3
  - >-
    Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b <
    15b60ade825c8ce9ec560048a4ae3747e4572be3
  - >-
    Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b <
    0bf253e9ac994cb5329bc87b00bb4eeca9136791
  - >-
    Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b <
    2ef16934e069d5f771e989d6ee5c3ece5042f3cd
  - >-
    Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b <
    0af3b89705688af01aa06025b84fa7a1e06ba6cc
  - Linux 0e55072e7c63a6569cab1447e9025d160abd9dd9
  - Linux >= 3.8.7 < 3.9
  - Linux 3.9
published: '2026-09-04'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T08:43:37.541Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-80782'
references:
  - url: 'https://git.kernel.org/stable/c/c3597923932bb90d4fc2186aef552f6677175e4a'
  - url: 'https://git.kernel.org/stable/c/e0c224c93d10ee38854fdf24c815108aedd3dcb3'
  - url: 'https://git.kernel.org/stable/c/403cc9bd6ccb9fbe68d501c3236e5a6dd5504e14'
  - url: 'https://git.kernel.org/stable/c/3d7a7bac4c75f25b2513505a0ac5ba909588ed2b'
  - url: 'https://git.kernel.org/stable/c/9bdf8c7bfd79f1090e61d28f969b32880fd77bb3'
  - url: 'https://git.kernel.org/stable/c/15b60ade825c8ce9ec560048a4ae3747e4572be3'
  - url: 'https://git.kernel.org/stable/c/0bf253e9ac994cb5329bc87b00bb4eeca9136791'
  - url: 'https://git.kernel.org/stable/c/2ef16934e069d5f771e989d6ee5c3ece5042f3cd'
  - url: 'https://git.kernel.org/stable/c/0af3b89705688af01aa06025b84fa7a1e06ba6cc'
tags:
  - cve.org
epss: 0.00195
epssPercentile: 0.08586
ingestedAt: '2026-10-19T10:20:54.956Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

HID: magicmouse: do not keep a stale msc->input if no input is claimed

magicmouse_input_mapping() caches the first hid_input's input_dev in
msc->input while the report descriptor is parsed, and the rest of the
driver treats a non-NULL msc->input as proof that an input device was
registered.

That does not hold on the hid-input error path. If hidinput_connect()
fails -- for instance because input_register_device() returns an error --
it unwinds through hidinput_disconnect(), which frees every input_dev it
created, including the one cached in msc->input.

The failure does not abort the probe. hid_connect() only skips the claim:

	if ((connect_mask & HID_CONNECT_HIDINPUT) && !hidinput_connect(hdev,
				connect_mask & HID_CONNECT_HIDINPUT_FORCE))
		hdev->claimed |= HID_CLAIMED_INPUT;

and the "device has no listeners" bailout below it does not fire for this
driver, which sets ->raw_event; on the USB Magic Mouse 2 / Magic Trackpad
2 paths hidraw and hiddev are claimed as well. hid_hw_start() therefore
returns 0 and magicmouse_probe() continues with msc->input pointing at
freed memory. Being non-NULL, it passes the "input not registered" check
in probe and the NULL checks in ->raw_event and ->event, so the next
input report dereferences freed memory.

Clear msc->input when the HID core did not claim an input device, so the
existing NULL checks cover this case as well.

## Affected

- `Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b < c3597923932bb90d4fc2186aef552f6677175e4a`
- `Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b < e0c224c93d10ee38854fdf24c815108aedd3dcb3`
- `Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b < 403cc9bd6ccb9fbe68d501c3236e5a6dd5504e14`
- `Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b < 3d7a7bac4c75f25b2513505a0ac5ba909588ed2b`
- `Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b < 9bdf8c7bfd79f1090e61d28f969b32880fd77bb3`
- `Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b < 15b60ade825c8ce9ec560048a4ae3747e4572be3`
- `Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b < 0bf253e9ac994cb5329bc87b00bb4eeca9136791`
- `Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b < 2ef16934e069d5f771e989d6ee5c3ece5042f3cd`
- `Linux >= f1a9a149abc86903e81dd1b2e720f3f89874384b < 0af3b89705688af01aa06025b84fa7a1e06ba6cc`
- `Linux 0e55072e7c63a6569cab1447e9025d160abd9dd9`
- `Linux >= 3.8.7 < 3.9`
- `Linux 3.9`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
