🔍 CVE-2024-27059

5.5
CVSS Score
MEDIUM
2024-05-01
2026-10-15 01:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 USB 스토리지 드라이버(isd200)에서 ATA 디바이스의 HEADS 또는 SECTORS 값이 0일 경우 나누기 연산에서 0으로 나누는 오류가 발생하여 시스템이 충돌할 수 있습니다. 악의적이거나 결함 있는 USB 디바이스 에뮬레이션을 통해 트리거될 수 있으며, 패치는 초기화 단계에서 이 값들을 검증하여 0인 경우 장치 바인딩을 거부합니다.

💡 쉬운 설명

특정 USB 장치가 잘못된 값을 보내면 리눅스 커널이 계산 오류로 충돌할 수 있습니다. 커널을 업데이트하면 리눅스가 이러한 장치를 거부하도록 수정됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command The isd200 sub-driver in usb-storage uses the HEADS and SECTORS values in the ATA ID information to calculate cylinder and head values when creating a CDB for READ or WRITE commands. The calculation involves division and modulus operations, which will cause a crash if either of these values is 0. While this never happens with a genuine device, it could happen with a flawed or subversive emulation, as reported by the syzbot fuzzer. Protect against this possibility by refusing to bind to the device if either the ATA_ID_HEADS or ATA_ID_SECTORS value in the device's ID information is 0. This requires isd200_Initialization() to return a negative error code when initialization fails; currently it always returns 0 (even when there is an error).

📍 영향받는 시스템

Linux kernel usb-storage isd200 driver를 포함한 모든 버전 (패치 이전)

⚔️ 공격 벡터

악의적으로 조작된 USB 저장 장치 또는 에뮬레이션 디바이스를 시스템에 연결하여 트리거

🛡️ 대응 방법

Linux 커널을 CVE-2024-27059 패치가 적용된 버전 이상으로 업데이트

🔧 검증 코드

커널 버전을 확인하고, 보안 공지사항(linux-cve.mitre.org, nvd.nist.gov)에서 해당 버전의 CVE-2024-27059 패치 상태를 확인합니다.

Shell / Script
dmesg | grep -E 'isd200|usb.*storage' | tail -5 || uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel