CVE-2026-98619 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 19.

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

net: ethtool: ioctl 셀프 테스트 중 rtnl_lock 유지

인터페이스를 내렸다가 다시 올리는 오프라인(self) 테스트는 netif_close() 및 netif_open()을 사용할 때 둘 모두에 대해 rtnl_lock이 필요합니다. ethtool IOCTL 경로가 ops-locked 드라이버의 경우 rtnl 선택적(rtnl-optional)이 되었으므로, ETHTOOL_TEST ioctl은 netdev 인스턴스 잠금만 유지한 채로 실행됩니다. 따라서 ops-locked 드라이버에서는 셀프 테스트 시 rtnl_lock 없이 장치가 다운되는 상황이 발생합니다.

lockdep를 사용하면 이러한 조건에서 오프라인 셀프 테스트가 결정론적으로 재현됩니다; 여기서 유일한 잠금은 instance lock이며, rtnl은 아닙니다:

WARNING: suspicious RCU usage net/core/netpoll.c:207 suspicious rcu_dereference_protected() usage! 1 lock held by ethtool/107: #0: (&dev->lock){+.+.}, at: dev_ethtool
Call Trace: netpoll_poll_disable __dev_close_many netif_close_many netif_close fbnic_self_test dev_ethtool_locked dev_ethtool dev_ioctl sock_ioctl __x64_sys_ioctl

lockdep가 없는 경우에도 동일한 조건이 __dev_close_many() / __dev_open() 내의 ASSERT_RTNL()를 트리거합니다. 이 체크는 전역 rtnl 상태만 샘플링하므로, 동시에 rtnl을 보유하는 다른 프로세스에 의해 가려질 수 있지만, 장치는 여전히 필요한 잠금 없이 재구성되고 있습니다.

ethtool self_test는 레거시 ioctl 전용 명령이므로, ETHTOOL_TEST 케이스는 ioctl 경로에서만 필요합니다. 셀프 테스트에 rtnl_lock이 필요한 드라이버를 위한 opt-in 비트를 추가하고, 오프라인 셀프 테스트가 인터페이스를 내렸다가 다시 올리는 ops-locked 드라이버에 해당 비트를 설정합니다:

- fbnic (queue_mgmt_ops를 통해 ops-locked): fbnic_self_test()의 오프라인 경로는 netif_close() / netif_open()을 사용합니다. - bnxt (queue_mgmt_ops를 통해 ops-locked): bnxt_self_test()의 오프라인 경로는 bnxt_close_nic() / bnxt_half_open_nic() / bnxt_half_close_nic() / bnxt_open_nic()을 거치며, 이는 장치를 닫고 다시 엽니다.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-422162

EPSS

0.00000

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!