CVE-2026-98406 in Linux정보

요약

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

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

wifi: mac80211: sdata가 드라이버에 없으면 set_bitrate_mask 시 WARN 발생 방지

ieee80211_set_bitrate_mask()는 인터페이스가 실행 중인지 ieee80211_sdata_running()를 통해 확인하지만, 인터페이스가 여전히 드라이버 내에 존재하는지는 확인하지 않습니다.

sdata가 실행 중이지만 IEEE80211_SDATA_IN_DRIVER이 설정되지 않은 경우, 호출은 driver-ops.h의 drv_set_bitrate_mask()에 도달하여 다음을 유발합니다:

wlan1: Failed check-sdata-in-driver check, flags: 0x0 WARNING: net/mac80211/driver-ops.h:884 at drv_set_bitrate_mask

Syzkaller는 wext SIOCSIWRATE ioctl를 통해 이를 트리거합니다. Call Trace는 wext-core.c의 wext_ioctl_dispatch()가 ioctl을 디스패치하고, SIOCSIWRATE에 대해 ioctl_standard_call()을 호출하며, 이는 wext-compat.c의 cfg80211_wext_siwrate()를 호출함을 보여줍니다. 이는 비트레이트 마스크를 구성하여 rdev_set_bitrate_mask()를 호출하고, 결국 cfg.c의 ieee80211_set_bitrate_mask()에 도달합니다. 인터페이스는 SDATA_STATE_RUNNING을 통해 실행 중으로 표시되지만 flags가 0이므로 check_sdata_in_driver()이 실패합니다.

인터페이스가 해제되는 동안 또는 drv_add_interface()에서 IN_DRIVER를 설정하기 전에 인터페이스 부팅 중에 wext ioctl가 발행되면, running 확인은 통과하지만 IN_DRIVER는 클리어된 상태입니다.

드라이버 호출 전 ieee80211_set_bitrate_mask()에서 IEEE80211_SDATA_IN_DRIVER을 확인하고 -ENETDOWN를 반환합니다. 이는 driver-ops.h의 WARN_ONCE를 방지하며, 드라이버에 없을 때 조기에 종료하는 다른 cfg.c 작업과 일치합니다.

이 변경은 cfg80211_wext_siwrate()에서 guard(wiphy)를 통해 wiphy mutex가 유지되고, IN_DRIVER는 drv_add_interface() 및 driver-ops.c의 drv_remove_interface()에서 RTNL 및 wiphy 경로 하에 설정/해제되므로 드라이버 추가/제거와 관련하여 race-free하므로 안전합니다. -ENETDOWN 반환은 다른 실행 중이지 않은 경로가 사용하는 동일한 오류이며, 새로운 잠금(locking)을 도입하지 않습니다.

[두 번째 syzbot 보고서도 포함]

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

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-419873

EPSS

0.00000

출처

Might our Artificial Intelligence support you?

Check our Alexa App!