CVSS
Вероятност да бъде експлоатирана в следващите 30 дни (EPSS)
Атакува се
Време до експлоатация
Описание
Оригинално описание
In the Linux kernel, the following vulnerability has been resolved: accel/rocket: search every core slot when a core is removed rocket_remove() decrements rdev->num_cores for each core it removes, while find_core_for_dev() searches slots 0 to num_cores - 1. Unbinding the cores in the order they were bound therefore loses the last one: by the time it is removed the search range has already shrunk past its slot, so find_core_for_dev() returns -1 and rocket_remove() gives up without doing anything. num_cores never reaches zero, rocket_device_fini() never runs, and the file-scoped rdev keeps pointing at a device that is going away. Binding the cores again starts from that stale count, because rocket_probe() takes rdev->num_cores as the slot to fill. On an RK3588, which describes three cores, the second round lands on slots 1, 2 and 3 while rdev->cores was allocated with room for three: rocket fdab0000.npu: Rockchip NPU core 1 version: 1179210309 rocket fdac0000.npu: Rockchip NPU core 2 version: 1179210309 rocket fdad0000.npu: Rockchip NPU core 3 version: 1179210309 The write to rdev->cores[3] is past the end of the array. Nothing in tree reads the core array often enough to notice, so the overrun is silent today. It turned up while testing a devfreq series on top of this, where a worker walks every core a few times a second, and UBSAN caught the first bool it read out of the overrun entry: UBSAN: invalid-load in drivers/accel/rocket/rocket_devfreq.c:47:10 load of value 5 is not a valid value for type '_Bool' Workqueue: devfreq_wq devfreq_monitor Record how many slots were allocated and search all of them. Every core is then found on removal, num_cores reaches zero, the device is torn down and a later bind starts from a clean rdev. This does not make unbinding a single core out of several work. probe still takes num_cores as the slot to fill, so rebinding one core while its siblings stay bound would write over a slot that is already in use, and rocke
Засегнати продукти
- Linux Linux: ed98261b41687323ffa02ca20fef1e60b38fd1aa преди 5078c91f5c84bb383d0a10ed39856f98575e39cf; ed98261b41687323ffa02ca20fef1e60b38fd1aa преди 134451cf95cb6aa04b725fbfa04e878d072756f5; ed98261b41687323ffa02ca20fef1e60b38fd1aa преди 6eff1d69dae808a1518aee5a58d0853a8db3f1be
- Linux Linux: 6.18; преди 6.18; 6.18.59 до 6.18.*; 7.2.13 до 7.2.*; 7.3 до *
История
- 28 октомври 2026 Публикувано
Други уязвимости в Linux Linux
Първоизточници
- https://www.cve.org/CVERecord?id=CVE-2026-99184
- https://nvd.nist.gov/vuln/detail/CVE-2026-99184
- https://git.kernel.org/stable/c/5078c91f5c84bb383d0a10ed39856f98575e39cf
- https://git.kernel.org/stable/c/134451cf95cb6aa04b725fbfa04e878d072756f5
- https://git.kernel.org/stable/c/6eff1d69dae808a1518aee5a58d0853a8db3f1be