🇰🇷 한글 설명
리눅스 커널의 fnic 드라이버에서 작업 큐(work queue) 초기화가 특정 조건문 내에 위치하여, 초기화되지 않은 작업 큐에 작업이 전달될 수 있는 취약점입니다. 이로 인해 작업이 실행되지 않아 파이버 채널(Fibre Channel) 장치의 재발견 프로세스가 중단될 수 있습니다.
💡 쉬운 설명
컴퓨터가 해야 할 일을 기록해두는 메모장이 준비되기도 전에 일을 적으려고 시도하여, 중요한 작업이 누락되는 문제입니다. 이로 인해 연결된 저장 장치를 다시 인식하지 못하는 문제가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: fnic: Move flush_work initialization out of if block
After commit 379a58caa199 ("scsi: fnic: Move fnic_fnic_flush_tx() to a
work queue"), it can happen that a work item is sent to an uninitialized
work queue. This may has the effect that the item being queued is never
actually queued, and any further actions depending on it will not
proceed.
The following warning is observed while the fnic driver is loaded:
kernel: WARNING: CPU: 11 PID: 0 at ../kernel/workqueue.c:1524 __queue_work+0x373/0x410
kernel: <IRQ>
kernel: queue_work_on+0x3a/0x50
kernel: fnic_wq_copy_cmpl_handler+0x54a/0x730 [fnic 62fbff0c42e7fb825c60a55cde2fb91facb2ed24]
kernel: fnic_isr_msix_wq_copy+0x2d/0x60 [fnic 62fbff0c42e7fb825c60a55cde2fb91facb2ed24]
kernel: __handle_irq_event_percpu+0x36/0x1a0
kernel: handle_irq_event_percpu+0x30/0x70
kernel: handle_irq_event+0x34/0x60
kernel: handle_edge_irq+0x7e/0x1a0
kernel: __common_interrupt+0x3b/0xb0
kernel: common_interrupt+0x58/0xa0
kernel: </IRQ>
It has been observed that this may break the rediscovery of Fibre
Channel devices after a temporary fabric failure.
This patch fixes it by moving the work queue initialization out of
an if block in fnic_probe().
📍 영향받는 시스템
fnic 드라이버를 사용하는 리눅스 커널 시스템
⚔️ 공격 벡터
로컬 시스템 또는 네트워크 환경에서의 하드웨어 장애 유도 (Denial of Service 가능성)
🛡️ 대응 방법
fnic_probe() 함수 내의 작업 큐 초기화 로직이 수정된 최신 리눅스 커널로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 버전인지 확인하십시오.