Peter Hutterer
6236342157
Xi: flush hierarchy events after adding/removing master devices
...
The `XISendDeviceHierarchyEvent()` function allocates space to store up
to `MAXDEVICES` (256) `xXIHierarchyInfo` structures in `info`.
If a device with a given ID was removed and a new device with the same
ID added both in the same operation, the single device ID will lead to
two info structures being written to `info`.
Since this case can occur for every device ID at once, a total of two
times `MAXDEVICES` info structures might be written to the allocation.
To avoid it, once one add/remove master is processed, send out the
device hierarchy event for the current state and continue. That event
thus only ever has exactly one of either added/removed in it (and
optionally slave attached/detached).
CVE-2024-21885, ZDI-CAN-22744
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
(cherry picked from commit 4a5e9b1895 )
2024-01-16 09:57:59 +01:00
..
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2021-04-13 14:28:13 +02:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-05-14 13:17:30 +01:00
2020-07-05 13:07:33 -07:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2024-01-16 09:57:55 +01:00
2020-03-30 21:48:11 +00:00
2021-05-30 13:26:37 +03:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2020-07-05 13:07:33 -07:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2014-03-27 14:09:43 +00:00
2017-04-26 15:25:27 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2020-03-30 21:48:11 +00:00
2012-03-21 13:54:42 -07:00
2017-06-19 11:58:56 +10:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2016-10-26 15:35:07 +10:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2019-02-14 09:10:58 +10:00
2013-05-07 09:41:19 +10:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2024-01-16 09:57:59 +01:00
2021-08-17 16:02:44 -04:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2022-12-14 11:24:39 +10:00
2012-03-21 13:54:42 -07:00
2023-10-25 10:51:17 +10:00
2012-03-21 13:54:42 -07:00
2021-05-30 13:46:59 +03:00
2012-03-21 13:54:42 -07:00
2024-01-16 09:57:45 +01:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2021-05-30 13:26:33 +03:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-03-01 10:16:20 -05:00
2012-03-21 13:54:42 -07:00
2017-06-07 14:49:04 +10:00
2012-03-21 13:54:42 -07:00