🇰🇷 한글 설명
Linux 커널의 IB/hfi1 드라이버에서 sc_disable() 함수 호출 시 리스트를 잘못 이동하여 발생하는 취약점입니다. 링크가 다운되고 전송 완료를 기다리는 프로세스가 있을 때 커널 NULL 포인터 역참조가 발생하여 시스템이 충돌할 수 있습니다.
💡 쉬운 설명
컴퓨터의 통신 부품을 관리하는 프로그램에서 데이터 목록을 정리하는 방식에 오류가 있는 상태입니다. 특정 상황에서 이 오류가 발생하면 컴퓨터 시스템이 갑자기 멈추거나 꺼질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
IB/hfi1: Correctly move list in sc_disable()
Commit 13bac861952a ("IB/hfi1: Fix abba locking issue with sc_disable()")
incorrectly tries to move a list from one list head to another. The
result is a kernel crash.
The crash is triggered when a link goes down and there are waiters for a
send to complete. The following signature is seen:
BUG: kernel NULL pointer dereference, address: 0000000000000030
[...]
Call Trace:
sc_disable+0x1ba/0x240 [hfi1]
pio_freeze+0x3d/0x60 [hfi1]
handle_freeze+0x27/0x1b0 [hfi1]
process_one_work+0x1b0/0x380
? process_one_work+0x380/0x380
worker_thread+0x30/0x360
? process_one_work+0x380/0x380
kthread+0xd7/0x100
? kthread_complete_and_exit+0x20/0x20
ret_from_fork+0x1f/0x30
The fix is to use the correct call to move the list.
📍 영향받는 시스템
hfi1 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
네트워크 링크 다운 및 특정 전송 대기 상태를 유도하여 커널 패닉 유발
🛡️ 대응 방법
커널 패치(Commit 13bac861952a 포함 버전)를 적용하여 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인