В ядре Linux устранена следующая уязвимость: net: ntb_netdev: Переместить ntb_netdev_rx_handler() для вызова netif_rx() из __netif_rx(). Сл…
В ядре Linux устранена следующая уязвимость: net: ntb_netdev: Переместить ntb_netdev_rx_handler() для вызова netif_rx() из __netif_rx(). Следующее выводится при использовании idxd (DSA) dmanegine в качестве средства перемещения данных для ntb_transport, который использует ntb_netdev. [74412.546922] BUG: using smp_processor_id() in preemptible [00000000] code: irq/52-idxd-por/14526 [74412.556784] caller is netif_rx_internal+0x42/0x130 [74412.562282] CPU: 6 PID: 14526 Comm: irq/52-idxd-por Not tainted 6.9.5 #5 [74412.569870] Hardware name: Intel Corporation ArcherCity/ArcherCity, BIOS EGSDCRB1.E9I.1752.P05.2402080856 02/08/2024 [74412.581699] Call Trace: [74412.584514] <TASK> [74412.586933] dump_stack_lvl+0x55/0x70 [74412.591129] check_preemption_disabled+0xc8/0xf0 [74412.596374] netif_rx_internal+0x42/0x130 [74412.600957] __netif_rx+0x20/0xd0 [74412.604743] ntb_netdev_rx_handler+0x66/0x150 [ntb_netdev] [74412.610985] ntb_complete_rxc+0xed/0x140 [ntb_transport] [74412.617010] ntb_rx_copy_callback+0x53/0x80 [ntb_transport] [74412.623332] idxd_dma_complete_txd+0xe3/0x160 [idxd] [74412.628963] idxd_wq_thread+0x1a6/0x2b0 [idxd] [74412.634046] irq_thread_fn+0x21/0x60 [74412.638134] ? irq_thread+0xa8/0x290 [74412.642218] irq_thread+0x1a0/0x290 [74412.646212] ? __pfx_irq_thread_fn+0x10/0x10 [74412.651071] ? __pfx_irq_thread_dtor+0x10/0x10 [74412.656117] ? __pfx_irq_thread+0x10/0x10 [74412.660686] kthread+0x100/0x130 [74412.664384] ? __pfx_kthread+0x10/0x10 [74412.668639] ret_from_fork+0x31/0x50 [74412.672716] ? __pfx_kthread+0x10/0x10 [74412.676978] ret_from_fork_asm+0x1a/0x30 [74412.681457] </TASK> Причина в том, что обработчик завершения прерывания драйвера idxd использует потоковое прерывание, и потоковый обработчик не является контекстом жесткого или программного прерывания. Однако __netif_rx() можно вызывать только из контекста прерывания. Измените вызов на netif_rx(), чтобы разрешить завершение через нормальный контекст для драйверов dmaengine, которые используют потоковую обработку irq. В то время как следующий коммит изменил netif_rx() на __netif_rx(), baebdf48c360 ("net: dev: Makes sure netif_rx() can be invoked in any context."), изменение должно было быть noop вместо этого. Однако код, предшествующий этому исправлению, должен был использовать netif_rx_ni() или netif_rx_any_context().
Продукт не определяет должным образом, в каком состоянии он находится, вследствие чего принимает состояние X за состояние Y и выполняет некорректные операции, имеющие значение для безопасности.
https://cwe.mitre.org/data/definitions/372.html →Открыть в коллекции CWE →Нет описания в исходных данных.
https://capec.mitre.org/data/definitions/74.html →Открыть в коллекции CAPEC →Некоторые веб-приложения требуют от пользователей поэтапной отправки информации через упорядоченную последовательность веб-форм. Это нередко применяется при сборе большого объёма информации или когда данные из предыдущих форм используются для предварительного заполнения полей или определения того, какие дополнительные сведения необходимо собрать. Злоумышленник, знающий имена различных форм в последовательности, может явно ввести имя более поздней формы и перейти к ней, минуя предыдущие. Это может привести к неполному сбору информации, ошибочным допущениям о данных, отправленных злоумышленником, или иным проблемам, нарушающим функционирование приложения.
https://capec.mitre.org/data/definitions/140.html →Открыть в коллекции CAPEC →| Продукт | Вендор | Статус |
|---|---|---|
| kernel | Отслеживается | |
| kernel | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается |