🇰🇷 한글 설명
Linux 커널의 sun4i 타이머 드라이버에서 최소 델타 값을 잘못 광고하여 발생하는 취약점입니다. 이로 인해 타이머 간격이 0으로 설정될 수 있으며, Allwinner D1과 같은 시스템에서 부팅 중 멈춤 현상이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 시간을 측정하는 부품이 너무 짧은 시간을 계산하려다 오류를 일으켜 시스템이 멈추는 문제입니다. 타이머가 '0'이라는 잘못된 값을 받으면서 다음 동작을 수행하지 못하게 됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
clocksource/drivers/timer-sun4i: Advertise a real minimum delta
sun4i_clkevt_next_event() compensates for the timer stop/start
synchronization delay by programming evt - TIMER_SYNC_TICKS into the
hardware interval register. The clockevent device currently advertises
TIMER_SYNC_TICKS as min_delta_ticks, so the clockevents core is allowed
to call set_next_event() with evt == TIMER_SYNC_TICKS.
That programs a zero-tick interval. With oneshot/highres/nohz timer
operation this can leave the next event stuck, which was observed as a
boot hang on Allwinner D1 after the clockevents core started reusing
forced minimum-delta events.
Advertise one extra tick instead, so the smallest event accepted by the
core still programs at least one hardware tick after the synchronization
compensation.
📍 영향받는 시스템
Linux kernel (sun4i clocksource driver 사용 시스템, 특히 Allwinner D1 관련 하드웨어)
⚔️ 공격 벡터
로컬 시스템 환경에서 타이머 설정 오류를 유도하여 시스템 중단(DoS) 유발 가능
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 패치된 최신 버전인지 확인