🇰🇷 한글 설명
Linux 커널의 io_uring/eventfd 구성 요소에서 RCU(Read-Copy-Update) 메커니즘 처리 오류가 발견되었습니다. io_eventfd_do_signal() 호출 시 참조 횟수가 0이 되면 즉시 메모리를 해제하는데, 이는 RCU grace period를 충분히 기다리지 않아 메모리 손상이나 시스템 불안정을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터가 데이터를 정리할 때, 아직 사용 중인 데이터가 있는지 충분히 확인하지 않고 바로 지워버리는 문제가 있습니다. 이로 인해 시스템이 갑자기 멈추거나 예상치 못한 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
io_uring/eventfd: ensure io_eventfd_signal() defers another RCU period
io_eventfd_do_signal() is invoked from an RCU callback, but when
dropping the reference to the io_ev_fd, it calls io_eventfd_free()
directly if the refcount drops to zero. This isn't correct, as any
potential freeing of the io_ev_fd should be deferred another RCU grace
period.
Just call io_eventfd_put() rather than open-code the dec-and-test and
free, which will correctly defer it another RCU grace period.
📍 영향받는 시스템
io_uring을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 공격자가 특수하게 조작된 io_uring 시스템 호출을 통해 메모리 관리 오류를 유도
🛡️ 대응 방법
io_eventfd_put()을 사용하여 RCU grace period를 준수하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 최신 보안 패치 버전인지 확인