CVE-2026-98258 in Linux
요약
\~에 의해 VulDB • 2026. 10. 06.
리눅스 커널에서 다음 취약점이 해결되었습니다:
posix-cpu-timers: 만료 목록에 큐잉된 타이머의 해제 방지
Kijo는 POSIX CPU 타이머 코드에서 또 다른 Race Condition을 분석했습니다:
커밋 bf635681c906은 cpu_timer::firing을 3상태(tristate) 값에서 boolean으로 변환했습니다. 이로 인해 "발화 목록(firing list)에 소유되지 않음"과 "여전히 소유되어 있지만 전달이 취소됨" 간의 구분이 손실되었습니다. 그 결과 다음과 같은 Race Condition이 발생했습니다:
만료 핸들러 timer_settime() timer_delete() -------------- --------------- -------------- 개인 발화 목록에 타이머 수집 firing = true firing = true 관측 firing = false 설정 TIMER_RETRY 반환 핸들러 대기 firing = false 관측 삭제 완료 해시 해제 및 타이머 free 목록 순회 재개 freed elist.next 읽기 -> UAF
해당 커밋 이후로 firing 비트는 명백히 잘못된 지표입니다.
대신 타이머가 만료 목록(expiry list)에 큐잉되어 있는지 여부를 확인하십시오. 만약 큐잉되어 있다면, 이전과 같이 신호 전달을 방지하기 위해 firing 비트를 클리어하고 TIMER_RETRY를 반환하여 호출자가 타이머의 잠금을 해제하도록 합니다. 이렇게 하면 만료 코드가 진행 상황을 보이고 해당 항목을 목록에서 제거할 수 있습니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.