🇰🇷 한글 설명
리눅스 커널의 posix-cpu-timers에서 execve 호출 시 CPU 타이머가 적절히 해제되지 않아 발생하는 Use-After-Free 취약점입니다. 비리더 스레드가 PID를 전환할 때 타이머 삭제 과정에서 기존 PID를 찾지 못해 타이머가 메모리에서 해제되지 않고 남아있게 됩니다. 이로 인해 나중에 타이머 목록을 처리할 때 이미 해제된 메모리에 접근하게 되어 시스템 불안정이나 보안 문제가 발생할 수 있습니다.
💡 쉬운 설명
프로그램이 실행되는 과정에서 타이머를 정리해야 하는데, 실수로 타이머를 지우지 못하고 메모리만 먼저 비워버리는 문제입니다. 이로 인해 컴퓨터가 이미 사라진 정보를 다시 사용하려고 시도하다가 오류가 발생하거나 해킹에 이용될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
posix-cpu-timers: Cleanup CPU timers before freeing them during exec
Commit 55e8c8eb2c7b ("posix-cpu-timers: Store a reference to a pid not a
task") started looking up tasks by PID when deleting a CPU timer.
When a non-leader thread calls execve, it will switch PIDs with the leader
process. Then, as it calls exit_itimers, posix_cpu_timer_del cannot find
the task because the timer still points out to the old PID.
That means that armed timers won't be disarmed, that is, they won't be
removed from the timerqueue_list. exit_itimers will still release their
memory, and when that list is later processed, it leads to a
use-after-free.
Clean up the timers from the de-threaded task before freeing them. This
prevents a reported use-after-free.
📍 영향받는 시스템
Linux Kernel (posix-cpu-timers 관련 취약한 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 프로세스 실행(execve) 과정을 유도하여 메모리 오류를 일으키는 방식
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.