🇰🇷 한글 설명
리눅스 커널의 tracing 기능 중 simple ring buffer reader swap 과정에서 재시도 횟수 처리 오류가 발견되었습니다. 성공적인 교체 후에도 오류를 반환하거나, 실패 시에도 성공한 것처럼 포인터를 업데이트하여 링 버퍼를 손상시킬 수 있는 취약점입니다.
💡 쉬운 설명
데이터를 기록하는 메모리 공간을 교체하는 과정에서 계산 오류로 인해 데이터가 엉키거나 시스템이 오작동할 수 있는 문제입니다. 이로 인해 시스템의 기록 기능이 제대로 작동하지 않거나 데이터가 깨질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tracing: Fix retry exhaustion in simple ring buffer reader swap
simple_ring_buffer_swap_reader_page() starts with retry set to 8 and
post-decrements it only after a failed link replacement. On the final
attempt, a successful replacement leaves retry at zero, while a failed
replacement leaves it at -1.
The current !retry test reverses both outcomes. It returns an error after
a successful final replacement, leaving the link update complete but the
reader bookkeeping unfinished. After a failed final replacement, it
falls through and updates the head and reader pointers as though the
replacement succeeded, which can corrupt the ring.
Treat only a negative counter as exhaustion and return the documented
-EBUSY error.
📍 영향받는 시스템
Linux kernel (tracing subsystem 사용 시)
⚔️ 공격 벡터
로컬 시스템에서 커널의 tracing 기능을 조작하여 링 버퍼의 데이터 무결성을 파괴하는 방식
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.