CVE-2026-23368 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 06.

리눅스 커널에서 다음 취약점이 해결되었습니다:

net: phy: AB-BA 교착 상태(deadlock)를 피하기 위해 probe 단계에서 phy led_triggers를 등록합니다.

LEDS_TRIGGER_NETDEV과 LED_TRIGGER_PHY가 모두 활성화되어 있을 때 AB-BA 교착 상태가 발생합니다:

[ 1362.049207] [<8054e4b8>] led_trigger_register+0x5c/0x1fc <-- "triggers_list_lock" 잠금을 down_write(&triggers_list_lock);를 통해 획득 시도 중
[ 1362.054536] [<80662830>] phy_led_triggers_register+0xd0/0x234
[ 1362.060329] [<8065e200>] phy_attach_direct+0x33c/0x40c
[ 1362.065489] [<80651fc4>] phylink_fwnode_phy_connect+0x15c/0x23c
[ 1362.071480] [<8066ee18>] mtk_open+0x7c/0xba0
[ 1362.075849] [<806d714c>] __dev_open+0x280/0x2b0
[ 1362.080384] [<806d7668>] __dev_change_flags+0x244/0x24c
[ 1362.085598] [<806d7698>] dev_change_flags+0x28/0x78
[ 1362.090528] [<807150e4>] dev_ioctl+0x4c0/0x654 <-- rtnl_lock(); 호출을 통해 "rtnl_mutex" 잠금 보유 중
[ 1362.094985] [<80694360>] sock_ioctl+0x2f4/0x4e0
[ 1362.099567] [<802e9c4c>] sys_ioctl+0x32c/0xd8c
[ 1362.104022] [<80014504>] syscall_common+0x34/0x58

여기서 LED_TRIGGER_PHY는 RTNL을 보유하는 동안 phy_attach 중에 LED 트리거를 등록한 후 triggers_list_lock을 획득합니다.

[ 1362.191107] [<8054e4b8>] led_trigger_register+0x5c/0x1fc <-- "triggers_list_lock" 잠금을 down_write(&triggers_list_lock);를 통해 획득 시도 중
[ 1362.196636] [<80662830>] phy_led_triggers_register+0xd0/0x234
[ 1362.202550] [<8065e200>] phy_attach_direct+0x33c/0x40c
[ 1362.207710] [<80651fc4>] phylink_fwnode_phy_connect+0x15c/0x23c
[ 1362.213701] [<8066ee18>] mtk_open+0x7c/0xba0
[ 1362.218150] [<806d714c>] __dev_open+0x280/0x2b0
[ 1362.222685] [<806d7668>] __dev_change_flags+0x244/0x24c
[ 1362.227899] [<806d7698>] dev_change_flags+0x28/0x78
[ 1362.232829] [<807150e4>] dev_ioctl+0x4c0/0x654 <-- rtnl_lock(); 호출을 통해 "rtnl_mutex" 잠금 보유 중
[ 1362.237284] [<80694360>] sock_ioctl+0x2f4/0x4e0
[ 1362.241765] [<802e9c4c>] sys_ioctl+0x32c/0xd8c
[ 1362.245799] [<80014504>] syscall_common+0x34/0x58

반대로 LEDS_TRIGGER_NETDEV은 triggers_list_lock을 먼저 획득한 후 RTNL을 획득합니다. 고전적인 AB-BA 교착 상태입니다.

phy_led_triggers_register()는 RTNL이 필요하지 않으며, 보호가 필요한 네트워크 스택으로의 호출을 수행하지 않습니다. 또한 PHY가 MAC에 연결될 필요가 없으며, 트리거는 phydev 상태만 사용합니다. 이를 통해 phy_led_triggers_register() 호출을 다른 위치로 이동할 수 있습니다. PHY probe() 및 release()는 RTNL을 보유하지 않으므로 AB-BA 교착 상태를 해결할 수 있습니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!