🇰🇷 한글 설명
Linux 커널의 SCSI qla2xxx 드라이버에서, 컨트롤러 추가/제거 시 abort 경로에서 명령을 잠금(lock)을 잡은 상태로 완료하여 커널 경고(WARNING)가 발생하는 문제가 수정되었습니다. 해결책은 명령을 잠금 없이 완료하도록 변경하는 것입니다.
💡 쉬운 설명
서버에 연결된 특정 저장장치 드라이버가 제거되는 과정에서 잘못된 순서로 작업을 처리해 시스템 경고가 발생하던 문제입니다. 이번 패치로 작업 처리 순서를 바로잡아 경고와 잠재적 불안정을 막습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: qla2xxx: Perform lockless command completion in abort path
While adding and removing the controller, the following call trace was
observed:
WARNING: CPU: 3 PID: 623596 at kernel/dma/mapping.c:532 dma_free_attrs+0x33/0x50
CPU: 3 PID: 623596 Comm: sh Kdump: loaded Not tainted 5.14.0-96.el9.x86_64 #1
RIP: 0010:dma_free_attrs+0x33/0x50
Call Trace:
qla2x00_async_sns_sp_done+0x107/0x1b0 [qla2xxx]
qla2x00_abort_srb+0x8e/0x250 [qla2xxx]
? ql_dbg+0x70/0x100 [qla2xxx]
__qla2x00_abort_all_cmds+0x108/0x190 [qla2xxx]
qla2x00_abort_all_cmds+0x24/0x70 [qla2xxx]
qla2x00_abort_isp_cleanup+0x305/0x3e0 [qla2xxx]
qla2x00_remove_one+0x364/0x400 [qla2xxx]
pci_device_remove+0x36/0xa0
__device_release_driver+0x17a/0x230
device_release_driver+0x24/0x30
pci_stop_bus_device+0x68/0x90
pci_stop_and_remove_bus_device_locked+0x16/0x30
remove_store+0x75/0x90
kernfs_fop_write_iter+0x11c/0x1b0
new_sync_write+0x11f/0x1b0
vfs_write+0x1eb/0x280
ksys_write+0x5f/0xe0
do_syscall_64+0x5c/0x80
? do_user_addr_fault+0x1d8/0x680
? do_syscall_64+0x69/0x80
? exc_page_fault+0x62/0x140
? asm_exc_page_fault+0x8/0x30
entry_SYSCALL_64_after_hwframe+0x44/0xae
The command was completed in the abort path during driver unload with a
lock held, causing the warning in abort path. Hence complete the command
without any lock held.
📍 영향받는 시스템
패치 이전의 Linux 커널 (qla2xxx 파이버 채널 HBA 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
로컬 사용자 또는 관리자가 드라이버 제거(unbind/remove) 작업을 수행할 때 발생하는 결함으로, 원격 공격 경로는 확인되지 않습니다.
🛡️ 대응 방법
배포판 제공 최신 커널 업데이트를 적용하고 재부팅하여 수정된 qla2xxx 드라이버를 사용하세요.
🔧 검증 코드
커널 버전이 해당 배포판의 수정 패치 포함 버전 이상인지 배포판 보안 공지와 대조하고, qla2xxx 모듈이 없다면 이 취약점의 영향을 받지 않습니다.
uname -r && (modinfo qla2xxx 2>/dev/null | grep -E '^(version|srcversion|filename)')