🇰🇷 한글 설명
Linux 커널의 usb-storage alauda 드라이버에서 alauda_init_media() 실패 시 uzonesize가 0으로 유지되어 alauda_read_data()와 alauda_write_lba()에서 0으로 나누기 오류를 유발할 수 있습니다. 커널이 USB 저장 장치의 초기화 상태를 추적하지 못하는 결과입니다.
💡 쉬운 설명
USB 저장장치를 연결할 때 리눅스 커널이 제대로 초기화하지 못하면 계산 오류가 발생할 수 있습니다. 이는 특정 USB 기기로 시스템을 충돌시킬 수 있는 로컬 서비스 거부 취약점입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb-storage: alauda: Check whether the media is initialized
The member "uzonesize" of struct alauda_info will remain 0
if alauda_init_media() fails, potentially causing divide errors
in alauda_read_data() and alauda_write_lba().
- Add a member "media_initialized" to struct alauda_info.
- Change a condition in alauda_check_media() to ensure the
first initialization.
- Add an error check for the return value of alauda_init_media().
📍 영향받는 시스템
Linux kernel 5.10 이상의 usb-storage alauda 드라이버가 포함된 모든 시스템
⚔️ 공격 벡터
악의적으로 조작된 USB 저장장치를 연결하거나 alauda 드라이버 코드 경로를 트리거하여 divide-by-zero 오류 유발
🛡️ 대응 방법
Linux 커널을 CVE-2024-38619 패치가 포함된 최신 버전으로 업데이트 (5.15.156 이상 권장)
🔧 검증 코드
미디어 초기화 상태 추적 코드가 커널 설정에 포함되어 있으면 'Patched', 없으면 'Vulnerable'로 표시됩니다. 정확한 검증을 위해서는 커널 소스에서 alauda.c 파일의 media_initialized 멤버 존재 여부를 확인하세요.
grep -i 'media_initialized' /boot/config-$(uname -r) && echo 'Patched' || echo 'Vulnerable'