IM
IronMonkey Threat Research

CVE-2024-57986 HIGH

Published: 2025-02-27 | Last Modified: 2026-08-04 | Status: Modified

Description

In the Linux kernel, the following vulnerability has been resolved: HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections A report in 2019 by the syzbot fuzzer was found to be connected to two errors in the HID core associated with Resolution Multipliers. One of the errors was fixed by commit ea427a222d8b ("HID: core: Fix deadloop in hid_apply_multiplier."), but the other has not been fixed. This error arises because hid_apply_multipler() assumes that every Resolution Multiplier control is contained in a Logical Collection, i.e., there's no way the routine can ever set multiplier_collection to NULL. This is in spite of the fact that the function starts with a big comment saying: * "The Resolution Multiplier control must be contained in the same * Logical Collection as the control(s) to which it is to be applied. ... * If no Logical Collection is * defined, the Resolution Multiplier is associated with all * controls in the report." * HID Usage Table, v1.12, Section 4.3.1, p30 * * Thus, search from the current collection upwards until we find a * logical collection... The comment and the code overlook the possibility that none of the collections found may be a Logical Collection. The fix is to set the multiplier_collection pointer to NULL if the collection found isn't a Logical Collection.

Additional Descriptions (1)

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: HID: core: Fix posture that Resolution Multipliers must be in Logical Collections Se descubrió que un informe de 2019 del fuzzer syzbot estaba relacionado con dos errores en el núcleo de HID asociados con Resolution Multipliers. Uno de los errores se solucionó con el commit ea427a222d8b ("HID: core: Fix deadloop in hid_apply_multipler."), pero el otro no se solucionó. Este error surge porque hid_apply_multipler() asume que cada control Resolution Multiplier está contenido en una colección lógica, es decir, no hay forma de que la rutina pueda establecer multiplier_collection en NULL. Esto es a pesar del hecho de que la función comienza con un gran comentario que dice: * "El control Multiplicador de resolución debe estar contenido en la misma * Colección lógica que el control o los controles a los que se aplicará. ... * Si no se define ninguna Colección lógica, el Multiplicador de resolución se asocia con todos los * controles del informe". * Tabla de uso de HID, v1.12, Sección 4.3.1, p30 * * Por lo tanto, busque desde la colección actual hacia arriba hasta que encontremos una * colección lógica... El comentario y el código pasan por alto la posibilidad de que ninguna de las colecciones encontradas pueda ser una Colección lógica. La solución es establecer el puntero multiplier_collection en NULL si la colección encontrada no es una Colección lógica.

CVSS Metrics

Base Score: 5.5 (MEDIUM)

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Attack VectorLOCAL
Attack ComplexityLOW
Privileges RequiredLOW
User InteractionNONE
ScopeUNCHANGED
Confidentiality ImpactNONE
Integrity ImpactNONE
Availability ImpactHIGH

Source: [email protected]

Type: Primary

Exploitability Score: 1.8

Impact Score: 3.6

Weaknesses

Source Type Description
[email protected] Primary
en NVD-CWE-noinfo

Affected Products

Vendor Product Version Update Type
linux linux_kernel * <built-in method update of dict object at 0x7fd3703cde80> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd368d0b440> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd39c466c00> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd386710900> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd368d09d80> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd3854dd980> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd38678ffc0> Operating System

Affected Configurations

Operator: OR

Vulnerable CPE
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

References