🔍 CVE-2026-98479

7.5
CVSS Score
HIGH
2026-10-18
2026-10-24 14:16
✅ 완료

🇰🇷 한글 설명

Linux 커널 SCSI libiscsi_tcp 드라이버에서 Data-In PDU의 데이터 방향을 검사하지 않아, 쓰기 명령의 ITT에 대해 대상(target)이 보낸 Data-In 데이터가 쓰기 대상 페이지(O_DIRECT의 사용자 버퍼 또는 버퍼드 쓰기의 페이지 캐시)에 복사될 수 있습니다. 이로 인해 데이터 무결성이 훼손되고 악성 대상이 호스트 메모리 내용을 조작할 수 있습니다.

💡 쉬운 설명

악의적이거나 오작동하는 iSCSI 저장장치가 쓰기 요청에 가짜 응답 데이터를 보내면, 리눅스가 이를 그대로 저장하려던 파일 내용에 덮어씌울 수 있습니다. 그 결과 파일이 조용히 손상되거나 잘못된 데이터가 읽히게 됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: scsi: libiscsi_tcp: Check the data direction of a Data-In PDU The Data-In branch of iscsi_tcp_hdr_dissect() resolves the ITT to a task and copies the PDU's data segment into that command's scatterlist without asking whether the command was reading. iscsi_tcp_r2t_rsp() in the same file does ask, and rejects an R2T for a command that is not DMA_TO_DEVICE. A target that answers a WRITE command's ITT with a Data-In therefore has the initiator write target-supplied bytes into the pages that write was about to send. Those are the caller's own pinned pages for an O_DIRECT write, and page cache pages for a buffered one. Observed against a test target that emits one 512-byte Data-In naming a 128 KB write's ITT, after the R2T for that write. With O_DIRECT the caller's buffer ends up holding 512 bytes of the target's data while pwrite() returns 131072. Buffered is quieter: pwrite() and fsync() both succeed, nothing is logged, and reading those blocks back returns the target's bytes out of the page cache without a command going on the wire. Check the direction before using the scatterlist, the way the R2T path already does.

📍 영향받는 시스템

iSCSI 초기자(initiator)를 사용하는 Linux 커널 (libiscsi_tcp 모듈 포함, 수정 전 버전)

⚔️ 공격 벡터

네트워크상의 악의적이거나 손상된 iSCSI 대상 서버가 쓰기 명령의 ITT에 대해 Data-In PDU를 전송하여 초기자 메모리/페이지 캐시에 임의 데이터를 기록하게 함

🛡️ 대응 방법

Linux 커널을 해당 CVE의 수정이 포함된 최신 안정 버전으로 업데이트하고 재부팅

🔧 검증 코드

커널 버전이 배포판 보안 공지에서 해당 CVE 수정이 포함된 버전 이상이면 패치된 것이며, 이전 버전이면 업데이트가 필요합니다. 모듈 정보가 출력되지 않으면 libiscsi_tcp를 사용하지 않는 환경입니다.

Shell / Script
uname -r && (modinfo libiscsi_tcp 2>/dev/null | grep -E 'version|filename')

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel