🇰🇷 한글 설명
Linux 커널의 taprio 네트워크 스케줄러에서 admin 포인터가 스케줄 전환 중 댕글링 포인터가 되어 use-after-free 취약점이 발생합니다. rcu_replace_pointer()를 사용하여 포인터를 즉시 업데이트하여 메모리 해제 전 교체함으로써 해결됩니다.
💡 쉬운 설명
Linux 커널의 네트워크 스케줄링 기능에서 이미 해제된 메모리를 다시 접근하려고 할 때 발생하는 버그입니다. 이로 인해 시스템 충돌이나 정보 유출이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: sched: fix use-after-free in taprio_change()
In 'taprio_change()', 'admin' pointer may become dangling due to sched
switch / removal caused by 'advance_sched()', and critical section
protected by 'q->current_entry_lock' is too small to prevent from such
a scenario (which causes use-after-free detected by KASAN). Fix this
by prefer 'rcu_replace_pointer()' over 'rcu_assign_pointer()' to update
'admin' immediately before an attempt to schedule freeing.
📍 영향받는 시스템
Linux 커널 (taprio 네트워크 스케줄링 기능 포함된 버전)
⚔️ 공격 벡터
로컬 사용자가 taprio 스케줄 설정을 변경하면서 advance_sched() 실행 시 trigger
🛡️ 대응 방법
커널 패치 적용 (rcu_replace_pointer() 관련 taprio 수정사항 포함)
🔧 검증 코드
커널 설정에서 taprio 기능 활성화 여부를 확인하고, 커널 버전을 확인하여 패치 여부를 판단합니다.
grep -r 'taprio_change' /boot/config-$(uname -r) 2>/dev/null || uname -r | awk -F. '{print $1"."$2}' | xargs -I {} sh -c 'echo "Kernel: {}"'