🇰🇷 한글 설명
Linux 커널의 qla2xxx SCSI 드라이버에서, 복구 가능한 PCI 오류가 감지되고 복구된 후에도 오류 상태가 남아 있는지 확인하거나 OS의 resume 신호를 기다리지 않고 하드웨어에 먼저 접근하는 문제가 해결되었습니다. 이로 인해 PCI 오류 직후 펌웨어 덤프 과정에서 경고와 MBX 명령 타임아웃이 발생할 수 있었습니다.
💡 쉬운 설명
서버의 파이버 채널 저장장치 연결 카드에 일시적인 통신 오류가 생겼을 때, 드라이버가 아직 복구되지 않은 상태에서 카드에 접근해 시스템이 불안정해질 수 있었습니다. 이 취약점은 드라이버가 복구 완료를 확인한 뒤에만 하드웨어에 접근하도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: qla2xxx: Fix premature hw access after PCI error
After a recoverable PCI error has been detected and recovered, qla driver
needs to check to see if the error condition still persist and/or wait
for the OS to give the resume signal.
Sep 8 22:26:03 localhost kernel: WARNING: CPU: 9 PID: 124606 at qla_tmpl.c:440
qla27xx_fwdt_entry_t266+0x55/0x60 [qla2xxx]
Sep 8 22:26:03 localhost kernel: RIP: 0010:qla27xx_fwdt_entry_t266+0x55/0x60
[qla2xxx]
Sep 8 22:26:03 localhost kernel: Call Trace:
Sep 8 22:26:03 localhost kernel: ? qla27xx_walk_template+0xb1/0x1b0 [qla2xxx]
Sep 8 22:26:03 localhost kernel: ? qla27xx_execute_fwdt_template+0x12a/0x160
[qla2xxx]
Sep 8 22:26:03 localhost kernel: ? qla27xx_fwdump+0xa0/0x1c0 [qla2xxx]
Sep 8 22:26:03 localhost kernel: ? qla2xxx_pci_mmio_enabled+0xfb/0x120
[qla2xxx]
Sep 8 22:26:03 localhost kernel: ? report_mmio_enabled+0x44/0x80
Sep 8 22:26:03 localhost kernel: ? report_slot_reset+0x80/0x80
Sep 8 22:26:03 localhost kernel: ? pci_walk_bus+0x70/0x90
Sep 8 22:26:03 localhost kernel: ? aer_dev_correctable_show+0xc0/0xc0
Sep 8 22:26:03 localhost kernel: ? pcie_do_recovery+0x1bb/0x240
Sep 8 22:26:03 localhost kernel: ? aer_recover_work_func+0xaa/0xd0
Sep 8 22:26:03 localhost kernel: ? process_one_work+0x1a7/0x360
..
Sep 8 22:26:03 localhost kernel: qla2xxx [0000:42:00.2]-8041:22: detected PCI
disconnect.
Sep 8 22:26:03 localhost kernel: qla2xxx [0000:42:00.2]-107ff:22:
qla27xx_fwdt_entry_t262: dump ram MB failed. Area 5h start 198013h end 198013h
Sep 8 22:26:03 localhost kernel: qla2xxx [0000:42:00.2]-107ff:22: Unable to
capture FW dump
Sep 8 22:26:03 localhost kernel: qla2xxx [0000:42:00.2]-1015:22: cmd=0x0,
waited 5221 msecs
Sep 8 22:26:03 localhost kernel: qla2xxx [0000:42:00.2]-680d:22: mmio
enabled returning.
Sep 8 22:26:03 localhost kernel: qla2xxx [0000:42:00.2]-d04c:22: MBX
Command timeout for cmd 0, iocontrol=ffffffff jiffies=10140f2e5
mb[0-3]=[0xffff 0xffff 0xffff 0xffff]
📍 영향받는 시스템
Linux 커널 qla2xxx 드라이버를 사용하는 QLogic 파이버 채널 HBA 장착 시스템 (수정 커널 적용 전 버전)
⚔️ 공격 벡터
로컬 하드웨어 오류 상황에서 발생하는 비정상 동작으로, 원격 공격자가 직접 악용하기는 어려움
🛡️ 대응 방법
배포판의 최신 커널 업데이트를 적용하고 재부팅하여 수정된 qla2xxx 드라이버를 사용하도록 합니다.
🔧 검증 코드
출력된 커널 버전이 배포판의 수정 패치가 포함된 최신 버전인지, 그리고 qla2xxx 모듈 정보가 표시되는지 확인하여 드라이버 사용 여부와 업데이트 적용 상태를 판단합니다.
uname -r && (modinfo qla2xxx 2>/dev/null | grep -E '^(version|filename)')