CVE-2026-98922 in Linuxthông tin

Tóm tắt

Bởi VulDB • 23/10/2026

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

net: emac: di chuyển việc thiết lập netops để sửa lỗi crash

Sửa lỗi crash sau khi khởi động driver:

|BUG: Kernel NULL pointer dereference on read at 0x00000158 |Faulting instruction address: 0xc0566b40 |Oops: Kernel access of bad area, sig: 11 [#1]
|BE PAGE_SIZE=4K PowerPC 44x Platform |Modules linked in: |CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Tainted: GW 7.3.0-rc3+ #1 |Tainted: [W]=WARN
|Hardware name: MyBook Live APM821XX 0x12c41c83 PowerPC 44x Platform |NIP: c0566b40 LR: c05648f8 CTR: c04c1e9c |REGS: c1053a20 TRAP: 0300 Tainted: GW (7.3.0-rc3+) |MSR: 0002b000 <CE,EE,FP,ME> CR: 24008808 XER: 00000000 |DEAR: 00000158 ESR: 00000000 |GPR00: c05648f8 c1053b10 c1063600 c1030000 c5ab3000 00000000 [...]
|GPR08: 00000002 00000000 00000000 c1053b40 84002808 00000000 [...]
|GPR16: cfffd210 00000002 c0beafcc cfffc960 00000000 c1030644 [...]
|GPR24: c0beafbc c1037000 00000000 0000000a 00000000 c1030000 [...]
|NIP [c0566b40] phy_link_topo_add_phy+0x2c/0x1d0
|LR [c05648f8] phy_attach_direct+0x1a4/0x368
|Call Trace: |[c1053b10] [c0811e04] klist_put+0x54/0xb4 (unreliable)
|[c1053b40] [c05648f8] phy_attach_direct+0x1a4/0x368
|[c1053b70] [c0564ae8] phy_connect_direct+0x2c/0x60
|[c1053b90] [c056c7a8] of_phy_connect+0x50/0x74
|[c1053bc0] [c0572a88] emac_probe+0xd50/0x119c
|[c1053c90] [c04cb770] platform_probe+0x74/0xa4
|[c1053cb0] [c04c8f08] really_probe+0x120/0x2b0
|[c1053cd0] [c04c9254] __driver_probe_device+0x1bc/0x1fc
|[c1053d00] [c04c9334] driver_probe_device+0x38/0xa8
|[c1053d30] [c04c9560] __driver_attach+0xf4/0x10c
|[c1053d50] [c04c6af8] bus_for_each_dev+0x68/0xd0
|[c1053d90] [c04c7c34] bus_add_driver+0xcc/0x1ec
|[c1053dc0] [c04c9f6c] driver_register+0xcc/0x110
|[c1053de0] [c0aa3f40] emac_init+0x1c4/0x200

Lỗi này xuất hiện bắt đầu từ phiên bản v7.3-rc1. Tại địa chỉ NIP trong hàm phy_link_topo_add_phy() có một kiểm tra netdev_need_ops_lock(). Điều này được thêm vào bởi commit ded86da4bbb7 ("net: ethtool: relax ethnl_req_get_phydev() locking assertion")

Lỗi xuất hiện vì tại thời điểm gọi phy_connect(), các netdev_ops chưa *được* xác định. Bản sửa của tôi là di chuyển đoạn mã thiết lập netdev_ops+commac.ops+ethtool_ops lên cao hơn, bởi vì emac_init_config() suy ra điều này bằng cách xem xét device-tree và đặt dev->phy_mode tương ứng.

Trong quá trình review, AI của bot Sashiko đã chỉ ra rằng việc gán commac trở thành một dead store (gán không sử dụng). Phát hiện tuyệt vời! Để giữ nguyên hành vi ban đầu, một tùy chọn được đề xuất "chỉ thiết lập dev->commac.ops = &emac_commac_ops trong trường hợp non-gige?" nghe có vẻ như là một kế hoạch tốt. Vì vậy, việc gán dev->commac.ops cho trường hợp non-gige-case đã được di chuyển vào khối else.

Bản patch này đã được kiểm thử trên WD MyBook Live (RGMII). Thiết bị hiện hoạt động trở lại.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

chịu trách nhiệm

Linux

Đặt trước

25/09/2026

Tiết lộ

23/10/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Might our Artificial Intelligence support you?

Check our Alexa App!