🇰🇷 한글 설명
Linux 커널의 st_lsm6dsx IIO 드라이버에서, 이벤트 감지를 지원하지 않는 센서(예: LSM6DS0)에 대해 가속도계 웨이크업 이벤트를 설정하면 NULL 포인터 역참조가 발생합니다. 이벤트 스펙이 없는 별도의 iio_chan_spec 배열을 정의하여 이를 수정합니다.
💡 쉬운 설명
일부 센서는 움직임 감지 기능이 없는데, 사용자가 이 기능을 설정하려 하면 시스템이 잘못된 메모리 주소를 참조해 오류가 발생합니다. 해당 센서에 맞는 채널 정의를 따로 사용하도록 고쳐졌습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection
The st_lsm6dsx_acc_channels array of struct iio_chan_spec has a non-NULL
event_spec field, indicating support for IIO events. However, event
detection is not supported for all sensors, and if userspace tries to
configure accelerometer wakeup events on a sensor device that does not
support them (e.g. LSM6DS0), st_lsm6dsx_write_event() dereferences a NULL
pointer when trying to write to the wakeup register.
Define an additional struct iio_chan_spec array whose members have a NULL
event_spec field, and use this array instead of st_lsm6dsx_acc_channels for
sensors without event detection capability.
📍 영향받는 시스템
st_lsm6dsx IIO 드라이버를 포함한 Linux 커널 (수정 이전 버전, 이벤트 미지원 LSM6DS0 등 센서 사용 장치)
⚔️ 공격 벡터
로컬 사용자가 이벤트 미지원 센서에 대해 가속도계 웨이크업 이벤트 설정을 시도하여 커널 NULL 포인터 역참조를 유발 (서비스 거부 가능성)
🛡️ 대응 방법
Linux 커널을 해당 수정 사항이 포함된 최신 안정 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 커널 패치 이력과 비교하여 수정 커밋이 포함되었는지 확인하며, 해당 드라이버 사용 여부는 lsmod | grep st_lsm6dsx 로 확인합니다