🇰🇷 한글 설명
Linux 커널의 mpu3050 자이로 센서 드라이버에서 전력 관리 함수의 반환값을 확인하지 않아 발생하는 취약점입니다. pm_runtime_resume_and_get()으로 변경하여 에러 전파 및 실패 시 사용 카운트 증가를 방지해야 합니다.
💡 쉬운 설명
IMU 센서 드라이버가 전력 관리 오류를 제대로 처리하지 않아 시스템이 불안정해질 수 있습니다. 커널 패치를 통해 에러 처리를 추가하면 됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iio: gyro: mpu3050-core: fix pm_runtime error handling
The return value of pm_runtime_get_sync() is not checked, allowing
the driver to access hardware that may fail to resume. The device
usage count is also unconditionally incremented. Use
pm_runtime_resume_and_get() which propagates errors and avoids
incrementing the usage count on failure.
In preenable, add pm_runtime_put_autosuspend() on set_8khz_samplerate()
failure since postdisable does not run when preenable fails.
📍 영향받는 시스템
Linux kernel mpu3050-core driver (Invensense MPU-3050 6-Axis Motion Tracking Device)
⚔️ 공격 벡터
직접 공격 벡터 없음 - 전력 관리 에러로 인한 장치 오작동 및 시스템 불안정성
🛡️ 대응 방법
최신 Linux kernel 버전으로 업데이트하여 pm_runtime 에러 처리 패치 적용
🔧 검증 코드
커널 버전 확인 후 mpu3050 드라이버 코드에서 pm_runtime_resume_and_get 사용 여부 확인. 해당 함수가 있으면 패치된 버전, 없으면 미패치 버전입니다.
uname -r | grep -E '^[0-9.]+' && grep -r 'pm_runtime_resume_and_get' /lib/modules/$(uname -r)/kernel/drivers/iio/gyro/ 2>/dev/null | head -1