CVE-2026-97530 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 25.

리눅스 커널에서 다음 취약점이 해결되었습니다:

scsi: qla2xxx: soft lockup polling의 지속적 IOCB 서명 수정

qla27xx_copy_multiple_pkt() 및 qla27xx_copy_fpin_pkt()는 RESPONSE_PROCESSED (0xDEADDEAD)에 대해 rsp_q->ring_ptr->signature를 폴링하여 다음 연속(IOB가 도착했는지 여부를 결정합니다. 이 과정에서 링을 진행하거나 엔트리 카운트를 감소시키지 않은 채 cpu_relax()에서 스피닝(반복 대기)합니다. response_t::signature는 바이트 오프셋 60에 위치하지만, 연속 IOCB(sts_cont_entry_t / struct sts_cont_entry_ext)은 해당 오프스트(raw FC 프레임 페이로드인 data[56..59])를 포함합니다. 따라서 페이로드 바이트가 우연히 0xDEADDEAD와 일치하는 수신된 프레임은 "아직 도착하지 않음"으로 잘못 해석되어, 인터럽트/DPC 컨텍스트에서 루프가 무한히 스피닝하며 CPU soft lockup을 유발합니다.

또한 해당 폴링은 불필요합니다: qla27xx_copy_multiple_pkt()의 호출자(PT_LS4_UNSOL 및 NVMe purls 경로)는 이미 qla_chk_cont_iocb_avail()에 의해 게이트되어 있으며, 이는 복사 시작 전에 모든 entry_count IOCB가 존재함을 보장합니다. 유사한 헬퍼 함수인 __qla_copy_purex_to_buffer()도 서명 폴링을 제거하고 대신 entry_type == STATUS_CONT_TYPE 가드를 사용합니다.

두 헬퍼 함수에서 서명 busy-wait를 제거하고 entry_type 가드는 유지하며, FPIN 경로는 qla_chk_cont_iocb_avail()로 게이트하여 모든 연속 IOCB가 도착할 때까지 지연시키고 다음 인터럽트 시 재처리되도록 합니다(ELS_AUTH_ELS 및 PT_LS4_UNSOL 분기와 동일). 이를 통해 서명 필드가 연속 IOCB에서 읽히지 않아 페이로드 별칭(aliasing)으로 인한 lockup이 제거됩니다.

Once again VulDB remains the best source for vulnerability data.

출처

Want to know what is going to be exploited?

We predict KEV entries!