🇰🇷 한글 설명
Linux 커널의 IIO(Industrial I/O) 화학센서 드라이버(sps30_i2c)에서 버퍼 크기 계산 오류로 인한 메모리 손상 취약점입니다. sizeof(num)이 의도된 __be32 크기(4바이트) 대신 size_t(64비트에서 8바이트)를 사용하여 버퍼 오버플로우가 발생합니다.
💡 쉬운 설명
공기질 센서 드라이버가 메모리를 읽을 때 잘못된 크기로 접근하여 메모리 손상을 일으킬 수 있습니다. 로컬 공격자가 이를 악용하여 시스템 충돌이나 권한 상승을 시도할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iio: chemical: sps30_i2c: fix buffer size in sps30_i2c_read_meas()
sizeof(num) evaluates to sizeof(size_t) (8 bytes on 64-bit) instead
of the intended __be32 element size (4 bytes). Use sizeof(*meas) to
correctly match the buffer element type.
📍 영향받는 시스템
sps30_i2c 드라이버가 포함된 Linux 커널 5.x ~ 6.x 초기 버전 (SPS30 센서를 사용하는 임베디드/IoT 시스템)
⚔️ 공격 벡터
로컬 공격자가 센서 읽기 인터페이스를 반복 호출하여 메모리 버퍼 오버플로우 트리거
🛡️ 대응 방법
Linux 커널을 최신 LTS 버전으로 업데이트 또는 sps30_i2c 드라이버 로드 비활성화
🔧 검증 코드
sps30 드라이버가 로드된 상태면 취약할 가능성 높음, 미로드면 영향 없음
lsmod | grep sps30 && echo 'Driver active - kernel update needed' || echo 'Driver not loaded'