🇰🇷 한글 설명
Linux 커널의 fxls8962af 가속도계 드라이버에서 Use-After-Free 취약점이 발견되었습니다. 버퍼 모드 해제 과정에서 인터럽트 처리가 완료되지 않은 상태로 데이터에 접근할 때 발생하는 레이스 컨디션이 원인입니다.
💡 쉬운 설명
가속도 센서가 데이터를 처리하는 도중에 갑자기 작동을 멈추려고 할 때, 이미 사라진 메모리 주소를 참조하여 시스템이 충돌할 수 있는 문제입니다. 이로 인해 시스템이 멈추거나 예상치 못한 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iio: accel: fxls8962af: Fix use after free in fxls8962af_fifo_flush
fxls8962af_fifo_flush() uses indio_dev->active_scan_mask (with
iio_for_each_active_channel()) without making sure the indio_dev
stays in buffer mode.
There is a race if indio_dev exits buffer mode in the middle of the
interrupt that flushes the fifo. Fix this by calling
synchronize_irq() to ensure that no interrupt is currently running when
disabling buffer mode.
Unable to handle kernel NULL pointer dereference at virtual address 00000000 when read
[...]
_find_first_bit_le from fxls8962af_fifo_flush+0x17c/0x290
fxls8962af_fifo_flush from fxls8962af_interrupt+0x80/0x178
fxls8962af_interrupt from irq_thread_fn+0x1c/0x7c
irq_thread_fn from irq_thread+0x110/0x1f4
irq_thread from kthread+0xe0/0xfc
kthread from ret_from_fork+0x14/0x2c
📍 영향받는 시스템
Linux kernel (fxls8962af driver component)
⚔️ 공격 벡터
로컬 공격자가 특정 하드웨어 인터럽트 타이밍을 조작하여 커널 메모리 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 synchronize_irq()가 적용된 드라이버 사용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.