CVE-2026-74683 in Linux
요약
\~에 의해 VulDB • 2026. 08. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
입력(evdev): 이벤트 마스크를 가져올 때 이벤트 타입 인덱스를 정제(sanitize)함
사용자가 제공한 이벤트 타입 인덱스는 EVIOCGMASK / EVIOCSMASK ioctls에 전달되며, evdev_get_mask_cnt()의 static counts 배열과 evdev_get_mask()의 클라이언트 evmasks 배열의 인덱스로 사용됩니다.
이벤트 타입은 아키텍처적으로 EV_CNT로 제한되지만, 예측 실행(speculative execution) 중 경계 검사(bounds checks)가 잘못 예측되어 범위를 벗어난(out-of-bounds) 메모리 로드(load)를 수행할 수 있습니다.
evdev_get_mask_cnt()에서 array_index_mask_nospec()을 사용하여 분기(branchless) 방식으로 이벤트 타입 인덱스를 정제합니다. 이를 통해 배열 접근 시 인덱스가 0으로 클램프(clamp)되어 안전하게 처리되며, 인덱스가 범위를 벗어날 경우 예측 실행(speculatively) 중에 반환되는 카운트가 0으로 강제됩니다.
evdev_get_mask()에는 추가적인 array_index_nospec() 호출이 필요하지 않습니다. evdev_get_mask_cnt()가 이미 범위 밖의 타입에 대해 카운트(및 결과 xfer_size)를 예측 실행 중 0으로 강제하여, 클라이언트 evmasks 배열에 대한 임의의 예측 메모리 접근을 방지하기 때문입니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.