{"id":"CVE-2026-80783","revision":"294fc1a48b0c409bbdf3fc795a907337","records":[{"revision":"294fc1a48b0c409bbdf3fc795a907337","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-80783","aliases":[],"title":"HID: magicmouse: prevent unbounded recursion in magicmouse_raw_event()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: magicmouse: prevent unbounded recursion in magicmouse_raw_event()\n\nmagicmouse_raw_event() handles DOUBLE_REPORT_ID (0xf7) packets, which pack\ntwo touch reports into one, by splitting the packet and calling itself on\neach half. The only guard against runaway recursion is a \"size < 1\" check,\nwhich stops zero-sized calls but does not bound the recursion depth.\n\nA malicious HID device that matches this driver can send a report starting\nwith DOUBLE_REPORT_ID and filled with the sequence [0xf7, 0x00]. Each level\nconsumes two bytes and recurses on the remainder, so an incoming report of\nup to HID_MAX_BUFFER_SIZE (16 KiB) drives roughly 8000 nested calls. That\neasily exhausts the 16 KiB kernel stack, leading to a stack overflow: a\npanic with CONFIG_VMAP_STACK, or memory corruption without it.\n\nA double report only ever wraps two normal reports; it is never\nlegitimately nested. Refuse to re-enter the DOUBLE_REPORT_ID case from a\nrecursive call so the recursion depth is bounded to two, while all valid\npackets keep being parsed exactly as before.","state":0,"publishedAt":"2026-09-04T15:12:54.859+00:00","modifiedAt":"2026-10-19T08:43:38.543+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/hid/hid-magicmouse.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"a462230e16acc8664145216da3c928d03556691a\",\n                            \"lessThan\": \"26c45abed62536aabf4033fb6d64cf72e93374e9\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"a462230e16acc8664145216da3c928d03556691a\",\n                            \"lessThan\": \"8a10a624996f16628234306b46f0cf36707d78bd\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"a462230e16acc8664145216da3c928d03556691a\",\n                            \"lessThan\": \"d16df755b4493b6d37803c628b2c621d096796a8\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"a462230e16acc8664145216da3c928d03556691a\",\n                            \"lessThan\": \"bec338b07beb883726b32192c8f01c601bc76fda\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"a462230e16acc8664145216da3c928d03556691a\",\n                            \"lessThan\": \"70589b0c005db003f6d8ae4db3c4d54fed7b83e4\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"a462230e16acc8664145216da3c928d03556691a\",\n                            \"lessThan\": \"a33a596d3ad8dfe6c96a368097a028abeee16c17\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"a462230e16acc8664145216da3c928d03556691a\",\n                            \"lessThan\": \"d095de37f78c5f32a4252ef0f99b84ba76550b86\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"a462230e16acc8664145216da3c928d03556691a\",\n                            \"lessThan\": \"db8d634128d2ba88d79c0b601e983ebe14bb0519\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/hid/hid-magicmouse.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"2.6.37\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"2.6.37\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.220\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.187\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.156\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.108\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.49\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.1.11\",\n                            \"lessThanOrEqual\": \"7.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.1\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["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"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-80783","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-80783","identifiers":["CVE-2026-80783"]},"retained":false,"historicalAffected":[]}],"coverage":[]}