🔍 CVE-2025-39719

7.1
CVSS Score
HIGH
2025-09-05
2026-10-19 21:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 bno055 IMU 드라이버에서 hw_xlate 배열을 순회할 때 hw_xlate 배열의 길이 대신 vals 배열의 길이를 사용하여 메모리 경계 초과(OOB) 접근이 발생하는 취약점입니다. 특히 bno055_gyr_scale에서 vals 배열이 hw_xlate보다 크기 때문에 의도하지 않은 메모리 영역에 접근할 수 있습니다.

💡 쉬운 설명

Linux 센서 드라이버가 데이터를 찾을 때 배열의 끝 위치를 잘못 계산하여 할당된 메모리 범위를 벗어난 영역에 접근합니다. 실제로는 대부분 먼저 데이터를 찾아서 루프를 종료하므로 실제 피해 가능성은 낮습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: iio: imu: bno055: fix OOB access of hw_xlate array Fix a potential out-of-bounds array access of the hw_xlate array in bno055.c. In bno055_get_regmask(), hw_xlate was iterated over the length of the vals array instead of the length of the hw_xlate array. In the case of bno055_gyr_scale, the vals array is larger than the hw_xlate array, so this could result in an out-of-bounds access. In practice, this shouldn't happen though because a match should always be found which breaks out of the for loop before it iterates beyond the end of the hw_xlate array. By adding a new hw_xlate_len field to the bno055_sysfs_attr, we can be sure we are iterating over the correct length.

📍 영향받는 시스템

Linux 커널 bno055 IMU 드라이버 (drivers/iio/imu/bno055.c)

⚔️ 공격 벡터

로컬 사용자가 bno055 sysfs 인터페이스를 통해 gyr_scale 속성 조회

🛡️ 대응 방법

hw_xlate_len 필드를 bno055_sysfs_attr 구조체에 추가하여 각 속성마다 올바른 배열 길이로 반복하도록 커널 업데이트 적용

🔧 검증 코드

결과가 0보다 크면 패치됨, 0이면 미패치된 버전입니다.

Shell / Script
grep -n 'hw_xlate_len' /lib/modules/$(uname -r)/build/drivers/iio/imu/bno055.c 2>/dev/null | wc -l

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel