🇰🇷 한글 설명
Linux 커널의 SCSI sd_zbc 드라이버에서 존(zone) 개수를 처리할 때 정수 오버플로 및 절단 오류가 발생합니다. 32비트 범위를 초과하는 존 개수를 처리하는 과정에서 자원 할당 크기가 잘못 계산되거나 부호 있는 정수 오버플로가 발생하여 일관성 없는 데이터 관리가 이루어질 수 있습니다.
💡 쉬운 설명
저장 장치의 구역(zone) 개수가 너무 많을 때, 컴퓨터가 이를 제대로 계산하지 못해 숫자가 엉뚱하게 바뀌는 문제입니다. 이로 인해 시스템이 저장 장치의 정보를 잘못 읽거나 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: sd_zbc: Reject disks with too many zones
sd_zbc_read_zones() computes the number of zones with 64-bit arithmetic and
stores the result in the unsigned int nr_zones field of struct
zoned_disk_info, silently truncating counts that exceed 32 bits. The
truncated count is later used to size per-zone resources, while the device
may still report more zones than fit.
Moreover, sd_zbc_report_zones() counts the reported zones with a signed int
zone_idx, which overflows past INT_MAX. Reject devices reporting more than
INT_MAX zones at scan time; such a device is not realistic for any medium
that exists today, and accepting it produces inconsistent zone bookkeeping.
📍 영향받는 시스템
Linux kernel (scsi: sd_zbc 관련 모듈이 포함된 버전)
⚔️ 공격 벡터
조작된 존(zone) 정보를 보고하는 악의적인 SCSI 저장 장치를 시스템에 연결
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인