🇰🇷 한글 설명
Linux 커널의 ethtool 구성 요소에서 네트워크 장치가 등록 해제되는 과정 중에 해당 장치에 대한 작업을 수행할 수 있는 취약점이 발견되었습니다. 이로 인해 Use-After-Free(UaF)와 같은 메모리 오류가 발생하여 시스템 불안정성이나 커널 패닉을 유발할 수 있습니다.
💡 쉬운 설명
네트워크 장치가 꺼지는 도중에 갑자기 설정을 바꾸려고 시도하면 컴퓨터가 혼란에 빠져 오류가 발생하는 문제입니다. 이 과정에서 메모리 관리 오류가 생겨 시스템이 멈추거나 해킹에 이용될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ethtool: do not perform operations on net devices being unregistered
There is a short period between a net device starts to be unregistered
and when it is actually gone. In that time frame ethtool operations
could still be performed, which might end up in unwanted or undefined
behaviours[1].
Do not allow ethtool operations after a net device starts its
unregistration. This patch targets the netlink part as the ioctl one
isn't affected: the reference to the net device is taken and the
operation is executed within an rtnl lock section and the net device
won't be found after unregister.
[1] For example adding Tx queues after unregister ends up in NULL
pointer exceptions and UaFs, such as:
BUG: KASAN: use-after-free in kobject_get+0x14/0x90
Read of size 1 at addr ffff88801961248c by task ethtool/755
CPU: 0 PID: 755 Comm: ethtool Not tainted 5.15.0-rc6+ #778
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-4.fc34 04/014
Call Trace:
dump_stack_lvl+0x57/0x72
print_address_description.constprop.0+0x1f/0x140
kasan_report.cold+0x7f/0x11b
kobject_get+0x14/0x90
kobject_add_internal+0x3d1/0x450
kobject_init_and_add+0xba/0xf0
netdev_queue_update_kobjects+0xcf/0x200
netif_set_real_num_tx_queues+0xb4/0x310
veth_set_channels+0x1c3/0x550
ethnl_set_channels+0x524/0x610
📍 영향받는 시스템
Linux Kernel (ethtool netlink interface를 사용하는 버전)
⚔️ 공격 벡터
네트워크 장치가 unregister되는 시점에 ethtool netlink를 통해 특정 조작 명령을 전송
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인