В ядре Linux устранена следующая уязвимость:
coresight: платформа: отложить приращение счетчика подключений до тех пор, пока выделение не будет успешным
coresight_add_out_conn() увеличивает nr_outconns перед вызовом
devm_krealloc_array() и еще раз перед devm_kmalloc(). Если либо
выделение не удалось, счетчик уже сдвинут, пока соответствующий
запись массива имеет значение NULL или неинициализированный мусор.
coresight_add_in_conn() имеет ту же проблему с nr_inconns и
devm_krealloc_array(). В обоих случаях зонд возвращает -ENOMEM, что вызывает
coresight_get_platform_data() для вызова coresight_release_platform_data()
для уборки.
Эта функция выполняет итерацию до nr_outconns (или nr_inconns).
записи и разыменование каждого указателя безоговорочно, попадая в NULL
или попадание мусора и паника вместо того, чтобы изящно потерпеть неудачу. Исправьте, переместив приращение счетчика после того, как все распределения будут успешными,
поэтому структура всегда согласована на любом пути ошибки.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: coresight: platform: defer connection counter increment until alloc succeeds coresight_add_out_conn() increments nr_outconns before calling devm_krealloc_array() and again before devm_kmalloc(). If either allocation fails, the counter is already bumped while the corresponding array entry is NULL or uninitialized garbage. coresight_add_in_conn() has the same problem with nr_inconns and devm_krealloc_array(). In both cases the probe returns -ENOMEM, which causes coresight_get_platform_data() to call coresight_release_platform_data() for cleanup. That function iterates up to nr_outconns (or nr_inconns) entries and dereferences each pointer unconditionally, hitting the NULL or garbage entry and panicking instead of failing gracefully. Fix by moving the counter increments to after all allocations succeed, so the struct is always consistent on any error path.
Характеристики атаки
Последствия
Строка CVSS v3.1
Уязвимые продукты 2
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.5
|
7.1.5
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.5
|
7.2-rc1
|