Каталог

Сортировать по

Фильтры по оценкам

Range: 0.0 - 10.0

Range: 0.000 - 1.000

Sources

Очистить фильтры

CVE-2024-56599

CVSS СреднийEPSS Отсутствует

Оценка EPSS

Оценка: 0.0000

CVSS 3.x

Оценка: 5.5

Источники
astradebiannvdubuntu

В ядре Linux устранена следующая уязвимость: wifi: ath10k: избегать ошибки NULL pointer во время удаления sdio. При выполнении 'rmmod ath10k' ath10k_sdio_remove() освободит sdio рабочую очередь с помощью destroy_workqueue(). Но если CONFIG_INIT_ON_FREE_DEFAULT_ON установлен в значение yes, произойдет паника ядра: Call trace: destroy_workqueue+0x1c/0x258 ath10k_sdio_remove+0x84/0x94 sdio_bus_remove+0x50/0x16c device_release_driver_internal+0x188/0x25c device_driver_detach+0x20/0x2c Это связано с тем, что во время 'rmmod ath10k' ath10k_sdio_remove() вызовет ath10k_core_destroy() перед destroy_workqueue(). wiphy_dev_release() в конечном итоге будет вызван в ath10k_core_destroy(). Эта функция освободит struct cfg80211_registered_device *rdev и все его члены, включая wiphy, dev и указатель на рабочую очередь sdio. Затем указатель на sdio рабочую очередь будет установлен в NULL из-за CONFIG_INIT_ON_FREE_DEFAULT_ON. После освобождения устройства destroy_workqueue() будет использовать указатель NULL, тогда произойдет паника ядра. Call trace: ath10k_sdio_remove ->ath10k_core_unregister …… ->ath10k_core_stop ->ath10k_hif_stop ->ath10k_sdio_irq_disable ->ath10k_hif_power_down ->del_timer_sync(&ar_sdio->sleep_timer) ->ath10k_core_destroy ->ath10k_mac_destroy ->ieee80211_free_hw ->wiphy_free …… ->wiphy_dev_release ->destroy_workqueue Необходимо вызвать destroy_workqueue() перед ath10k_core_destroy(), освободить буфер рабочей очереди сначала, а затем освободить указатель на рабочую очередь с помощью ath10k_core_destroy(). Этот порядок соответствует порядку пути ошибки в ath10k_sdio_probe(). В рабочей очереди sdio не будет ставиться в очередь никакой работы между ее уничтожением и вызовом ath10k_core_destroy(). Основываясь на стеке вызовов выше, причина в следующем: Только ath10k_sdio_sleep_timer_handler(), ath10k_sdio_hif_tx_sg() и ath10k_sdio_irq_disable() будут ставить работу в очередь в рабочей очереди sdio. Таймер сна будет удален перед ath10k_core_destroy() в ath10k_hif_power_down(). ath10k_sdio_irq_disable() вызывается только в ath10k_hif_stop(). ath10k_core_unregister() вызовет ath10k_hif_power_down() для остановки hif шины, поэтому ath10k_sdio_hif_tx_sg() больше не будет вызываться. Протестировано на: QCA6174 hw3.2 SDIO WLAN.RMH.4.4.1-00189.

Нажмите для просмотра деталей
Предыдущая
Страница 125 из 21224
445686 всего уязвимостей
Следующая