CVE-2022-48818 in Linuxthông tin

Tóm tắt

Bởi VulDB • 03/06/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

net: dsa: mv88e6xxx: không sử dụng devres cho mdiobus

Như đã giải thích trong các commit: 74b6d7d13307 ("net: dsa: realtek: đăng ký bus MDIO dưới devres") 5135e96a3dd2 ("net: dsa: không cấp phát slave_mii_bus bằng devres")

mdiobus_free() sẽ gây ra panic khi được gọi từ devm_mdiobus_free() <- devres_release_all() <- __device_release_driver(), và mdiobus đó chưa được hủy đăng ký trước đó.

mv88e6xxx là một thiết bị MDIO, vì vậy tập hợp các ràng buộc ban đầu mà tôi nghĩ sẽ gây ra vấn đề này (các bus I2C hoặc SPI gọi ->remove trên ->shutdown) không áp dụng ở đây. Nhưng còn có một ràng buộc khác áp dụng trong trường hợp này.

Nếu chính master DSA nằm trên một bus gọi ->remove từ ->shutdown (như dpaa2-eth, nằm trên fsl-mc bus), sẽ tồn tại một liên kết thiết bị giữa switch và master DSA, và device_links_unbind_consumers() sẽ hủy ràng buộc trình điều khiển Marvell switch trong quá trình shutdown.

systemd-shutdown[1]: Powering off.
mv88e6085 0x0000000008b96000:00 sw_gl0: Link is Down fsl-mc dpbp.9: Removing from iommu group 7 fsl-mc dpbp.8: Removing from iommu group 7 ------------[ cut here ]------------
kernel BUG at drivers/net/phy/mdio_bus.c:677! Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
Modules linked in: CPU: 0 PID: 1 Comm: systemd-shutdow Not tainted 5.16.5-00040-gdc05f73788e5 #15 pc : mdiobus_free+0x44/0x50 lr : devm_mdiobus_free+0x10/0x20 Call trace: mdiobus_free+0x44/0x50 devm_mdiobus_free+0x10/0x20 devres_release_all+0xa0/0x100 __device_release_driver+0x190/0x220 device_release_driver_internal+0xac/0xb0 device_links_unbind_consumers+0xd4/0x100 __device_release_driver+0x4c/0x220 device_release_driver

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

16/07/2024

Tiết lộ

16/07/2024

Kiểm duyệt

được chấp nhận

EPSS

0.00273

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you want to use VulDB in your project?

Use the official API to access entries easily!