🇰🇷 한글 설명
Linux 커널의 idpf 드라이버에서 vport 초기화 실패 시 드라이버를 제거하려고 하면 NULL 포인터 역참조가 발생하여 시스템이 충돌할 수 있는 취약점입니다. vport_config에 대한 NULL 체크가 누락되어 발생하며, 이를 통해 커널 패닉이 유발될 수 있습니다.
💡 쉬운 설명
장치 드라이버를 제거하는 과정에서 준비되지 않은 데이터를 참조하여 컴퓨터 시스템이 갑자기 멈추거나 꺼질 수 있는 오류입니다. 장치가 제대로 작동하지 않는 상태에서 제거를 시도할 때 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
idpf: fix possible vport_config NULL pointer deref in remove
Attempting to remove the driver will cause a crash in cases where
the vport failed to initialize. Following trace is from an instance where
the driver failed during an attempt to create a VF:
[ 1661.543624] idpf 0000:84:00.7: Device HW Reset initiated
[ 1722.923726] idpf 0000:84:00.7: Transaction timed-out (op:1 cookie:2900 vc_op:1 salt:29 timeout:60000ms)
[ 1723.353263] BUG: kernel NULL pointer dereference, address: 0000000000000028
...
[ 1723.358472] RIP: 0010:idpf_remove+0x11c/0x200 [idpf]
...
[ 1723.364973] Call Trace:
[ 1723.365475] <TASK>
[ 1723.365972] pci_device_remove+0x42/0xb0
[ 1723.366481] device_release_driver_internal+0x1a9/0x210
[ 1723.366987] pci_stop_bus_device+0x6d/0x90
[ 1723.367488] pci_stop_and_remove_bus_device+0x12/0x20
[ 1723.367971] pci_iov_remove_virtfn+0xbd/0x120
[ 1723.368309] sriov_disable+0x34/0xe0
[ 1723.368643] idpf_sriov_configure+0x58/0x140 [idpf]
[ 1723.368982] sriov_numvfs_store+0xda/0x1c0
Avoid the NULL pointer dereference by adding NULL pointer check for
vport_config[i], before freeing user_config.q_coalesce.
📍 영향받는 시스템
Linux kernel (idpf driver 사용 시스템)
⚔️ 공격 벡터
로컬 권한을 가진 사용자가 SRIOV 설정 변경 또는 드라이버 제거를 시도하여 커널 패닉 유도
🛡️ 대응 방법
idpf 드라이버의 vport_config NULL 체크 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인합니다.