🇰🇷 한글 설명
리눅스 커널의 IIO(Industrial I/O) 서브시스템 내 SCD30 화학 센서 드라이버에서 부호 확장 버그가 발견되었습니다. 코드 리팩토링 과정에서 비트 연산 오류로 인해 지수(exponent) 값이 손상되는 문제가 해결되었습니다.
💡 쉬운 설명
화학 센서가 데이터를 읽을 때 숫자의 부호를 처리하는 과정에서 계산 오류가 발생하는 버그입니다. 이로 인해 센서가 측정값을 잘못 읽을 수 있는 문제가 있었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iio: chemical: scd30: Cleanup initializations and fix sign-extension bug
Include linux/bitfield.h for FIELD_GET().
Create new macros for bit manipulation in combination with manual bit
manipulation being replaced with FIELD_GET().
The current variable declaration and initializations are barely readable
and use comma separations across multiple lines. Refactor the
initializations so that mantissa and exp have separate declarations and
sign gets initialized later.
In addition (and due to the nature of the cleanup), fix a sign-extension
bug where, float32 would get bitwise anded with ~BIT(31)
(which is 0xFFFFFFFF7FFFFFFF) which corrupted the exponent.
📍 영향받는 시스템
SCD30 화학 센서를 사용하는 리눅스 커널 기반 시스템
⚔️ 공격 벡터
직접적인 원격 공격은 어려우나, 잘못된 센서 데이터로 인한 시스템 오작동 유발 가능
🛡️ 대응 방법
SCD30 드라이버 패치가 적용된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 포함된 최신 버전인지 확인