🔍 CVE-2026-97527

8.8
CVSS Score
HIGH
2026-09-25
2026-10-21 13:21
✅ 완료

🇰🇷 한글 설명

Linux 커널의 qla2xxx SCSI 드라이버에서 fcport->unsol_ctx_head 리스트를 보호하는 공통 잠금 장치가 없어 발생하는 취약점입니다. 여러 컨텍스트에서 리스트를 동시에 수정할 때 포인터가 손상될 수 있으며, 이를 해결하기 위해 전용 spinlock인 unsol_ctx_lock이 도입되었습니다.

💡 쉬운 설명

여러 작업이 동시에 데이터 목록을 수정하려고 할 때, 이를 순서대로 줄 세워주는 장치가 없어 데이터가 엉키는 문제입니다. 이로 인해 시스템이 불안정해지거나 오류가 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Serialize NVMe unsol ctx list with a per-fcport lock The fcport->unsol_ctx_head list is modified from several contexts without a common lock. Entries are added in qla2xxx_process_purls_iocb() from the response queue ISR (under the qpair qp_lock), while they are removed from qla2xxx_process_purls_pkt() (DPC/purex worker), qla_nvme_xmt_ls_rsp() (NVMe-FC transport callback) and qla_nvme_release_lsrsp_cmd_kref() (SRB completion). The qpair qp_lock cannot serialize this per-fcport list since multiqueue adapters add entries through different qpairs, so a concurrent add and delete (or two concurrent deletes) can corrupt the list pointers. Introduce a dedicated per-fcport spinlock, unsol_ctx_lock, initialized in qla2x00_alloc_fcport(), and take it around every list_add_tail()/list_del() on unsol_ctx_head. The add nests under the existing qp_lock; no delete path takes qp_lock, so the lock order is consistent and deadlock free.

📍 영향받는 시스템

Linux kernel (qla2xxx SCSI driver module)

⚔️ 공격 벡터

멀티큐 어댑터를 사용하는 환경에서 동시적인 입출력 요청을 통한 레이스 컨디션 유발

🛡️ 대응 방법

qla2xxx 드라이버에 unsol_ctx_lock이 적용된 최신 Linux 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel