CVE-2026-98922 in LinuxИнформация

Сводка

по VulDB • 23.10.2026

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

net: emac: перемещение установки netops для устранения сбоя

устраняет следующий сбой при инициализации драйвера:

|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

Эта ошибка появилась начиная с версии v7.3-rc1. В точке NIP в функции phy_link_topo_add_phy() находится проверка netdev_need_ops_lock(). Она была добавлена следующим коммитом ded86da4bbb7 ("net: ethtool: relax ethnl_req_get_phydev() locking assertion")

Ошибка возникает потому, что на момент вызова _phy_connect() значения netdev_ops еще не были определены. Мой исправление заключается в перемещении кода, устанавливающего netdev_ops+commac.ops+ethtool_ops, выше, так как emac_init_config() выводит их путем анализа device-tree и соответствующим образом устанавливает требуемое dev->phy_mode.

Во время проверки ИИ бота Sashiko указал, что присваивание commac стало мертвым присваиванием (dead store). Отличное замечание! Чтобы сохранить исходное поведение без изменений, предложенный вариант "устанавливать dev->commac.ops = &emac_commac_ops только в случае non-gige?" показался отличным планом. Таким образом, присваивание dev->commac.ops для случая non-gige перемещено внутрь блока else.

Эт патч был протестирован на устройстве WD MyBook Live (RGMII). Устройство теперь работает снова.

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

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

Linux

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

25.09.2026

Раскрытие

23.10.2026

Модерация

принято

Вход

VDB-425690

EPSS

0.00198

KEV

Нет

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

Очень низкий

Сектор

Police, Energy, ...

Источники

Do you want to use VulDB in your project?

Use the official API to access entries easily!