[하루한줄] CVE-2021-20226: 리눅스 커널의 UAF 취약점
URL
CVE-2021–20226 a reference counting bug which leads to local privilege escalation in io_uring.
Target
io_uring in Linux kernel 5.6
Explain
Linux kernel 비동기 I/O 메커니즘인 io_uring에서 발생하는 Use-after-free 취약점에 대한 새로운 write-up이 공개되었습니다. File structure를 worker 스레드가 사용할 메모리로 옮기는 과정에서 reference 카운터를 늘리지 않고 file descriptor table을 공유하면 취약점이 발생합니다.
Worker 스레드는 file_struct 구조체에 대한 reference를 찾기 위해 함수 fdget()
를 사용합니다. 하지만 fdget()
는 file_struct에 대한 reference counter가 1일 때 이를 증가시키지 않으므로 fdget()
에 의해 얻은 파일은 이미 닫히고 해제되어 있을 수도 있습니다.
이미 닫히고 해제된 파일에 접근해 작업한다는 것은 Use-after-free 취약점으로 해커는 이를 악용해 로컬 시스템에 서비스 거부 공격을 할 수 있습니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.