В ядре Linux устранена следующая уязвимость: net/mlx5e: Исправлена гонка между отключением DIM и net_dim(). Существует гонка между отключен…
В ядре Linux устранена следующая уязвимость: net/mlx5e: Исправлена гонка между отключением DIM и net_dim(). Существует гонка между отключением DIM и вызовами NAPI с использованием указателя dim на RQ или SQ [1]. Если NAPI проверит состояние бита DIM и увидит, что он всё ещё установлен, предполагается, что `rq->dim` или `sq->dim` действительны. Но если DIM будет отключён сразу после этой проверки, указатель может быть уже установлен в NULL, что приведёт к разыменованию NULL-указателя в net_dim(). Для исправления этого вызовается `synchronize_net()` перед освобождением контекста DIM. Это гарантирует, что все незавершённые вызовы NAPI будут завершены до сброса указателя. Журнал ядра: BUG: разыменование NULL-указателя, адрес: 0000000000000000 ... RIP: 0010:net_dim+0x23/0x190 ... Трассировка вызова: <TASK> ? __die+0x20/0x60 ? page_fault_oops+0x150/0x3e0 ? common_interrupt+0xf/0xa0 ? sysvec_call_function_single+0xb/0x90 ? exc_page_fault+0x74/0x130 ? asm_exc_page_fault+0x22/0x30 ? net_dim+0x23/0x190 ? mlx5e_poll_ico_cq+0x41/0x6f0 [mlx5_core] ? sysvec_apic_timer_interrupt+0xb/0x90 mlx5e_handle_rx_dim+0x92/0xd0 [mlx5_core] mlx5e_napi_poll+0x2cd/0xac0 [mlx5_core] ? mlx5e_poll_ico_cq+0xe5/0x6f0 [mlx5_core] busy_poll_stop+0xa2/0x200 ? mlx5e_napi_poll+0x1d9/0xac0 [mlx5_core] ? mlx5e_trigger_irq+0x130/0x130 [mlx5_core] __napi_busy_loop+0x345/0x3b0 ? sysvec_call_function_single+0xb/0x90 ? asm_sysvec_call_function_single+0x16/0x20 ? sysvec_apic_timer_interrupt+0xb/0x90 ? pcpu_free_area+0x1e4/0x2e0 napi_busy_loop+0x11/0x20 xsk_recvmsg+0x10c/0x130 sock_recvmsg+0x44/0x70 __sys_recvfrom+0xbc/0x130 ? __schedule+0x398/0x890 __x64_sys_recvfrom+0x20/0x30 do_syscall_64+0x4c/0x100 entry_SYSCALL_64_after_hwframe+0x4b/0x53 ... ---[ end trace 0000000000000000 ]--- ... ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]--- Источники: - [1] https://git.kernel.org/stable/c/7581afc051542e11ccf3ade68acd01b7fb1a3cde - [2] https://git.kernel.org/stable/c/2bc6fb90486e42dd80e660ef7a40c02b2516c6d6 - [3] https://git.kernel.org/stable/c/eb41a264a3a576dc040ee37c3d9d6b7e2d9be968
Продукт содержит параллельную последовательность кода, требующую временного монопольного доступа к разделяемому ресурсу, однако существует временно́е окно, в течение которого этот ресурс может быть изменён другой параллельно выполняемой последовательностью кода.
https://cwe.mitre.org/data/definitions/362.html →Открыть в коллекции CWE →Злоумышленник нацеливается на состояние гонки, возникающее когда несколько процессов одновременно обращаются к одному ресурсу и манипулируют им, а результат выполнения зависит от конкретного порядка этих обращений. Злоумышленник может эксплуатировать состояние гонки, «участвуя в гонке»: изменяя ресурс и нарушая нормальный порядок выполнения. Например, состояние гонки может возникнуть при обращении к файлу: злоумышленник может обмануть систему, подменив исходный файл своей версией и заставив систему прочитать вредоносный файл.
https://capec.mitre.org/data/definitions/26.html →Открыть в коллекции CAPEC →Данная атака нацелена на состояние гонки, возникающее между моментом проверки (состояния) ресурса и моментом его использования. Типичный пример — обращение к файлу. Злоумышленник может эксплуатировать состояние гонки при обращении к файлу, «участвуя в гонке»: изменяя ресурс между первым обращением целевой программы к файлу и фактическим его использованием. В этом промежутке злоумышленник может заменить или изменить файл, вызвав неожиданное поведение приложения.
https://capec.mitre.org/data/definitions/29.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-5.10 | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается |