🇰🇷 한글 설명
Linux 커널의 hwmon(drivetemp) 드라이버에서 SCSI 명령 실행 시 양수 형태의 오류 코드가 반환되어도 이를 올바르게 처리하지 못하는 문제가 해결되었습니다. 이로 인해 디스크 연결 해제 등 SCSI 오류 발생 시 초기화되지 않은 데이터가 사용자 공간으로 보고될 수 있었습니다. 패치는 양수 오류 코드를 -EIO로 변환하도록 수정되었습니다.
💡 쉬운 설명
디스크 온도를 읽는 Linux 드라이버가 디스크 오류 상황에서 잘못된 값을 시스템에 보고하던 문제입니다. 수정으로 오류 발생 시 올바른 오류 신호를 전달하도록 개선되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
hwmon: (drivetemp) Fix driver producing garbage data when SCSI errors occur
scsi_execute_cmd() function can return both negative (linux codes) and
positive (scsi_cmnd result field) error codes.
Currently the driver just passes error codes of scsi_execute_cmd() to
hwmon core, which is incorrect because hwmon only checks for negative
error codes. This leads to hwmon reporting uninitialized data to
userspace in case of SCSI errors (for example if the disk drive was
disconnected).
This patch checks scsi_execute_cmd() output and returns -EIO if it's
error code is positive.
[groeck: Avoid inline variable declaration for portability]
📍 영향받는 시스템
수정 이전 버전의 Linux 커널 (drivetemp hwmon 드라이버 사용 시)
⚔️ 공격 벡터
로컬 사용자가 디스크 연결 해제 등 SCSI 오류를 유발하면 쓰레기 온도 데이터가 노출되는 방식으로, 주로 데이터 무결성 및 안정성 문제입니다.
🛡️ 대응 방법
최신 안정 버전의 Linux 커널로 업데이트하거나 배포판의 보안 업데이트를 적용하세요.
🔧 검증 코드
커널 버전을 확인하고, 해당 커널 버전이 패치가 포함된 수정 버전 이상인지 배포판 보안 공지와 대조합니다. 소스가 없으면 커널 버전만으로 판단하세요.
uname -r && grep -n 'EIO' /usr/src/linux/drivers/hwmon/drivetemp.c 2>/dev/null | head -5