Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: Input: evdev - sanitize event type index when fetching event masks The user-supplied event type index passed to EVIOCGMASK / EVIOCSMASK ioctls is used to index the static counts array in evdev_get_mask_cnt() and client evmasks array in evdev_get_mask(). While the event type is architecturally bounded by EV_CNT, speculative execution may mispredict bounds checks and perform out-of-bounds loads. Sanitize the event type index in evdev_get_mask_cnt() branchlessly using array_index_mask_nospec(). This clamps the index to 0 for safe array access and forces the returned count to 0 speculatively when the index is out of bounds. We do not need additional array_index_nospec() calls in evdev_get_mask() because evdev_get_mask_cnt() speculatively forces the count (and resulting xfer_size) to 0 for out-of-bounds types, preventing any speculative memory access to client evmasks array.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 06a16293f71927f756dcf37558a79c0b05a91641 before c79b08d8fa230871a3634e34a66e591ac2d084ef; affected 06a16293f71927f756dcf37558a79c0b05a91641 before f27fa9b39f925d26e034a1f382cb45523138f4ae; affected 06a16293f71927f756dcf37558a79c0b05a91641 before f3fc329acad9a71b3c077237cbac20670d2358c8; affected 06a16293f71927f756dcf37558a79c0b05a91641 before 5db341189bb7ff041d570dbe36ecca7e32913927; affected 06a16293f71927f756dcf37558a79c0b05a91641 before 433913b4a92214d76e9f0c03ad9128fec943d5f8; affected 06a16293f71927f756dcf37558a79c0b05a91641 before 4034ef247a9dde3f56660b01f0c3280dac6b1274; affected 06a16293f71927f756dcf37558a79c0b05a91641 before 810e1883d4815f29c30d900ad7333d03cc2515d1; affected 06a16293f71927f756dcf37558a79c0b05a91641 before 3abd29c61d2ef37c4102cf755b18be53bb9dbea6 |
| Linux / Linux | affected 4.4; unaffected 0 before 4.4; unaffected 5.10.265 through 5.10.*; unaffected 5.15.216 through 5.15.*; unaffected 6.1.183 through 6.1.*; unaffected 6.6.152 through 6.6.*; unaffected 6.12.104 through 6.12.*; unaffected 6.18.45 through 6.18.*; unaffected 7.1.9 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/c79b08d8fa230871a3634e34a66e591ac2d084ef
- https://git.kernel.org/stable/c/f27fa9b39f925d26e034a1f382cb45523138f4ae
- https://git.kernel.org/stable/c/f3fc329acad9a71b3c077237cbac20670d2358c8
- https://git.kernel.org/stable/c/5db341189bb7ff041d570dbe36ecca7e32913927
- https://git.kernel.org/stable/c/433913b4a92214d76e9f0c03ad9128fec943d5f8
- https://git.kernel.org/stable/c/4034ef247a9dde3f56660b01f0c3280dac6b1274
- https://git.kernel.org/stable/c/810e1883d4815f29c30d900ad7333d03cc2515d1
- https://git.kernel.org/stable/c/3abd29c61d2ef37c4102cf755b18be53bb9dbea6