CVE-2024-57986
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
27/02/2025
Last modified:
13/03/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections<br />
<br />
A report in 2019 by the syzbot fuzzer was found to be connected to two<br />
errors in the HID core associated with Resolution Multipliers. One of<br />
the errors was fixed by commit ea427a222d8b ("HID: core: Fix deadloop<br />
in hid_apply_multiplier."), but the other has not been fixed.<br />
<br />
This error arises because hid_apply_multipler() assumes that every<br />
Resolution Multiplier control is contained in a Logical Collection,<br />
i.e., there&#39;s no way the routine can ever set multiplier_collection to<br />
NULL. This is in spite of the fact that the function starts with a<br />
big comment saying:<br />
<br />
* "The Resolution Multiplier control must be contained in the same<br />
* Logical Collection as the control(s) to which it is to be applied.<br />
...<br />
* If no Logical Collection is<br />
* defined, the Resolution Multiplier is associated with all<br />
* controls in the report."<br />
* HID Usage Table, v1.12, Section 4.3.1, p30<br />
*<br />
* Thus, search from the current collection upwards until we find a<br />
* logical collection...<br />
<br />
The comment and the code overlook the possibility that none of the<br />
collections found may be a Logical Collection.<br />
<br />
The fix is to set the multiplier_collection pointer to NULL if the<br />
collection found isn&#39;t a Logical Collection.
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/05dd7d10675b540b8b7b31035c0a8abb6e6f3b88
- https://git.kernel.org/stable/c/3a002e4029230d9a6be89f869b2328b258612f5c
- https://git.kernel.org/stable/c/64f2657b579343cf923aa933f08074e6258eb07b
- https://git.kernel.org/stable/c/a32ea3f982b389ea43a41ce77b6fb70d74006d9b
- https://git.kernel.org/stable/c/a5498f1f864ea26f4c613c77f54409c776a95a90
- https://git.kernel.org/stable/c/bebf542e8d7c44a18a95f306b1b5dc160c823506
- https://git.kernel.org/stable/c/ebaeca33d32c8bdb705a8c88267737a456f354b1
- https://git.kernel.org/stable/c/ed3d3883476423f337aac0f22c521819b3f1e970