🇰🇷 한글 설명
Linux 커널의 iio proximity pulsedlight 드라이버에서 전원 관리 설정 실패 시 iio 장치가 제대로 등록 해제되지 않는 취약점이 발견되었습니다. 이로 인해 장치 등록 해제 과정에서 메모리가 해제되었음에도 불구하고 sysfs 및 chardev 노드가 남아 있어, 해제된 메모리를 가리키는 dangling pointer 문제가 발생할 수 있습니다.
💡 쉬운 설명
장치를 켜는 과정에서 오류가 발생했을 때, 장치가 완전히 꺼지지 않고 껍데기만 남는 현상이 있습니다. 이 껍데기가 이미 사라진 메모리 영역을 가리키고 있어 시스템 오류나 보안 문제를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iio: proximity: pulsedlight: fix iio_device left registered on PM setup failure
pm_runtime_set_active() failing in probe() jumps to error_unreg_buffer,
which only calls iio_triggered_buffer_cleanup() -- it does not undo the
iio_device_register() that already succeeded a few lines above. probe()
then returns the error, the devm-managed indio_dev is freed, but the
iio core still has it registered: the sysfs/chardev nodes stay live and
point at freed memory.
Add an error_unreg_dev label that unregisters the iio device before
falling through to the existing buffer cleanup, mirroring the teardown
order already used in lidar_remove().
📍 영향받는 시스템
Linux kernel (iio: proximity: pulsedlight 드라이버 포함 버전)
⚔️ 공격 벡터
해제된 메모리 영역을 참조하는 시스템 노드를 통한 Use-After-Free 공격 가능성
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 버전인지 확인