GHSA-43VJ-4W6Q-2R6J
Vulnerability from github – Published: 2026-09-04 18:31 – Updated: 2026-09-04 18:31In 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": [],
"aliases": [
"CVE-2026-80782"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-04T16:18:04Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: magicmouse: do not keep a stale msc-\u003einput if no input is claimed\n\nmagicmouse_input_mapping() caches the first hid_input\u0027s input_dev in\nmsc-\u003einput while the report descriptor is parsed, and the rest of the\ndriver treats a non-NULL msc-\u003einput as proof that an input device was\nregistered.\n\nThat does not hold on the hid-input error path. If hidinput_connect()\nfails -- for instance because input_register_device() returns an error --\nit unwinds through hidinput_disconnect(), which frees every input_dev it\ncreated, including the one cached in msc-\u003einput.\n\nThe failure does not abort the probe. hid_connect() only skips the claim:\n\n\tif ((connect_mask \u0026 HID_CONNECT_HIDINPUT) \u0026\u0026 !hidinput_connect(hdev,\n\t\t\t\tconnect_mask \u0026 HID_CONNECT_HIDINPUT_FORCE))\n\t\thdev-\u003eclaimed |= HID_CLAIMED_INPUT;\n\nand the \"device has no listeners\" bailout below it does not fire for this\ndriver, which sets -\u003eraw_event; on the USB Magic Mouse 2 / Magic Trackpad\n2 paths hidraw and hiddev are claimed as well. hid_hw_start() therefore\nreturns 0 and magicmouse_probe() continues with msc-\u003einput pointing at\nfreed memory. Being non-NULL, it passes the \"input not registered\" check\nin probe and the NULL checks in -\u003eraw_event and -\u003eevent, so the next\ninput report dereferences freed memory.\n\nClear msc-\u003einput when the HID core did not claim an input device, so the\nexisting NULL checks cover this case as well.",
"id": "GHSA-43vj-4w6q-2r6j",
"modified": "2026-09-04T18:31:25Z",
"published": "2026-09-04T18:31:25Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-80782"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/0af3b89705688af01aa06025b84fa7a1e06ba6cc"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/0bf253e9ac994cb5329bc87b00bb4eeca9136791"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/15b60ade825c8ce9ec560048a4ae3747e4572be3"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/2ef16934e069d5f771e989d6ee5c3ece5042f3cd"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/3d7a7bac4c75f25b2513505a0ac5ba909588ed2b"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/403cc9bd6ccb9fbe68d501c3236e5a6dd5504e14"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/9bdf8c7bfd79f1090e61d28f969b32880fd77bb3"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/c3597923932bb90d4fc2186aef552f6677175e4a"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/e0c224c93d10ee38854fdf24c815108aedd3dcb3"
}
],
"schema_version": "1.4.0",
"severity": []
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.