{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2024-57986",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2025-02-27T02:04:28.913Z",
        "datePublished": "2025-02-27T02:07:10.621Z",
        "dateUpdated": "2026-08-05T11:47:12.705Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T11:47:12.705Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: core: Fix assumption that Resolution Multipliers must be in Logical Collections\n\nA report in 2019 by the syzbot fuzzer was found to be connected to two\nerrors in the HID core associated with Resolution Multipliers.  One of\nthe errors was fixed by commit ea427a222d8b (\"HID: core: Fix deadloop\nin hid_apply_multiplier.\"), but the other has not been fixed.\n\nThis error arises because hid_apply_multipler() assumes that every\nResolution Multiplier control is contained in a Logical Collection,\ni.e., there's no way the routine can ever set multiplier_collection to\nNULL.  This is in spite of the fact that the function starts with a\nbig comment saying:\n\n\t * \"The Resolution Multiplier control must be contained in the same\n\t * Logical Collection as the control(s) to which it is to be applied.\n\t   ...\n\t *  If no Logical Collection is\n\t * defined, the Resolution Multiplier is associated with all\n\t * controls in the report.\"\n\t * HID Usage Table, v1.12, Section 4.3.1, p30\n\t *\n\t * Thus, search from the current collection upwards until we find a\n\t * logical collection...\n\nThe comment and the code overlook the possibility that none of the\ncollections found may be a Logical Collection.\n\nThe fix is to set the multiplier_collection pointer to NULL if the\ncollection found isn't a Logical Collection."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H",
                        "baseScore": 7.1,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:A - The malformed report descriptor is supplied entirely by the HID device and parsed automatically during enumeration; HID transports include Bluetooth HID/HoGP, making a remote-but-link-local attacker with a rogue HID peripheral a valid vector. This matches the established treatment of other drivers/hid/hid-core.c report-descriptor parsing flaws.\nAC:L - The attacker fully controls the report descriptor and simply omits a Logical Collection around the Resolution Multiplier item, which deterministically drives the collection walk to a non-Logical root every time. No race, timing, or memory-layout condition is involved.\nPR:N - No credentials or privileges on the target are needed — hid_open_report() runs from the enumeration/probe worker as soon as the device is attached or connects, before any userspace authorization. Locally, /dev/uhid offers the same descriptor-injection path.\nUI:N - Report descriptor parsing and hid_setup_resolution_multiplier() are invoked automatically on device attach/connect and again from hidinput_change_resolution_multipliers(); no victim action is required once the device is in range or plugged in.\nS:U - The mishandling and its consequences are confined to the kernel's HID subsystem and the input events it emits — the same security authority. No hypervisor, IOMMU, or sandbox boundary is crossed.\nC:N - The defect only causes a pointer to reference a valid-but-wrong collection entry; no out-of-bounds read occurs and no kernel memory contents or addresses are exposed to the attacker or to userspace.\nI:L - The kernel SET_REPORTs the device's Resolution Multiplier to logical_maximum but then fails to divide by it, so wheel/scroll values delivered to userspace are scaled by an attacker-chosen factor of up to 255x. This is corruption of data crossing into userspace, but gives no arbitrary-write or control-flow primitive.\nA:H - This commit is the designated fix for syzbot report ec5f884c4a135aa0dbb9, \"INFO: rcu detected stall in hub_event\" — a kernel hang in the USB enumeration worker triggered by a crafted HID descriptor reaching this Resolution Multiplier code. A stall of the hub_event work queue blocks device enumeration and is a complete availability loss."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/hid/hid-core.c"
                    ],
                    "versions": [
                        {
                            "version": "5a4abb36f312cf83206b1b7d1308ba47cba0b3cc",
                            "lessThan": "3a002e4029230d9a6be89f869b2328b258612f5c",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5a4abb36f312cf83206b1b7d1308ba47cba0b3cc",
                            "lessThan": "05dd7d10675b540b8b7b31035c0a8abb6e6f3b88",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5a4abb36f312cf83206b1b7d1308ba47cba0b3cc",
                            "lessThan": "a32ea3f982b389ea43a41ce77b6fb70d74006d9b",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5a4abb36f312cf83206b1b7d1308ba47cba0b3cc",
                            "lessThan": "bebf542e8d7c44a18a95f306b1b5dc160c823506",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5a4abb36f312cf83206b1b7d1308ba47cba0b3cc",
                            "lessThan": "ed3d3883476423f337aac0f22c521819b3f1e970",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5a4abb36f312cf83206b1b7d1308ba47cba0b3cc",
                            "lessThan": "ebaeca33d32c8bdb705a8c88267737a456f354b1",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5a4abb36f312cf83206b1b7d1308ba47cba0b3cc",
                            "lessThan": "a5498f1f864ea26f4c613c77f54409c776a95a90",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "5a4abb36f312cf83206b1b7d1308ba47cba0b3cc",
                            "lessThan": "64f2657b579343cf923aa933f08074e6258eb07b",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/hid/hid-core.c"
                    ],
                    "versions": [
                        {
                            "version": "5.0",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "5.0",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.4.291",
                            "lessThanOrEqual": "5.4.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.10.235",
                            "lessThanOrEqual": "5.10.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.15.179",
                            "lessThanOrEqual": "5.15.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.129",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.6.76",
                            "lessThanOrEqual": "6.6.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.12.13",
                            "lessThanOrEqual": "6.12.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.13.2",
                            "lessThanOrEqual": "6.13.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.14",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "5.4.291"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "5.10.235"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "5.15.179"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "6.1.129"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "6.6.76"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "6.12.13"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "6.13.2"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.0",
                                    "versionEndExcluding": "6.14"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/3a002e4029230d9a6be89f869b2328b258612f5c"
                },
                {
                    "url": "https://git.kernel.org/stable/c/05dd7d10675b540b8b7b31035c0a8abb6e6f3b88"
                },
                {
                    "url": "https://git.kernel.org/stable/c/a32ea3f982b389ea43a41ce77b6fb70d74006d9b"
                },
                {
                    "url": "https://git.kernel.org/stable/c/bebf542e8d7c44a18a95f306b1b5dc160c823506"
                },
                {
                    "url": "https://git.kernel.org/stable/c/ed3d3883476423f337aac0f22c521819b3f1e970"
                },
                {
                    "url": "https://git.kernel.org/stable/c/ebaeca33d32c8bdb705a8c88267737a456f354b1"
                },
                {
                    "url": "https://git.kernel.org/stable/c/a5498f1f864ea26f4c613c77f54409c776a95a90"
                },
                {
                    "url": "https://git.kernel.org/stable/c/64f2657b579343cf923aa933f08074e6258eb07b"
                }
            ],
            "title": "HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html"
                    },
                    {
                        "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html"
                    }
                ],
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2025-11-03T19:33:04.819Z"
                }
            },
            {
                "x_adpType": "supplier",
                "providerMetadata": {
                    "orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
                    "shortName": "siemens-SADP",
                    "dateUpdated": "2026-05-12T12:01:47.655Z"
                },
                "affected": [
                    {
                        "vendor": "Siemens",
                        "product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
                        "versions": [
                            {
                                "status": "affected",
                                "version": "0",
                                "lessThan": "*",
                                "versionType": "custom"
                            }
                        ],
                        "defaultStatus": "unknown"
                    }
                ],
                "references": [
                    {
                        "url": "https://cert-portal.siemens.com/productcert/html/ssa-265688.html"
                    }
                ]
            }
        ]
    }
}