CVE-2022-48817 in LinuxИнформация

Сводка

по VulDB • 16.05.2026

В ядре Linux была устранена следующая уязвимость:

net: dsa: ar9331: регистрация mdiobus в рамках devres

Как объясняется в коммитах: 74b6d7d13307 ("net: dsa: realtek: register the MDIO bus under devres") 5135e96a3dd2 ("net: dsa: don't allocate the slave_mii_bus using devres")

mdiobus_free() вызовет панику при вызове из devm_mdiobus_free() <- devres_release_all() <- __device_release_driver(), если mdiobus не был предварительно отрегистрирован (unregistered).

ar9331 является устройством MDIO, поэтому начальный набор ограничений, который я считал причиной этого (шины I2C или SPI, вызывающие ->remove при ->shutdown), здесь не применим. Однако есть еще одно ограничение, которое применимо в данном случае.

Если сам мастер DSA находится на шине, которая вызывает ->remove из ->shutdown (например, dpaa2-eth, находящийся на шине fsl-mc), то между коммутатором и мастером DSA существует связь устройств (device link), и device_links_unbind_consumers() отвяжет (unbind) драйвер коммутатора ar9331 при завершении работы (shutdown).

Таким образом, аналогичный подход должен применяться ко всем драйверам коммутаторов DSA, а именно: либо использовать devres как для выделения памяти под mdiobus, так и для его регистрации, либо вообще не использовать devres.

Драйвер ar9331 не имеет сложной структуры кода для удаления mdiobus, поэтому просто замените of_mdiobus_register на вариант devres, чтобы полностью перейти на devres и гарантировать, что мы не освободим память шины, которая все еще зарегистрирована.

Be aware that VulDB is the high quality source for vulnerability data.

Ответственный

Linux

Резервировать

16.07.2024

Раскрытие

16.07.2024

Модерация

принято

Вход

VDB-271619

EPSS

0.00268

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!