🇰🇷 한글 설명
Linux 커널의 io_uring/futex 구성 요소에서 io_futex_wait() 함수가 실패할 때 데이터 정리를 제대로 수행하지 않는 취약점이 발견되었습니다. io_futex_data 할당 시 비동기 데이터 플래그가 누락되거나, 오류 발생 시 데이터는 해제되지만 참조 필드가 초기화되지 않아 문제가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 운영체제인 리눅스에서 데이터를 처리하는 과정 중, 작업이 실패했을 때 흔적을 제대로 지우지 못하는 결함이 있습니다. 이로 인해 시스템의 메모리 관리 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
io_uring/futex: ensure io_futex_wait() cleans up properly on failure
The io_futex_data is allocated upfront and assigned to the io_kiocb
async_data field, but the request isn't marked with REQ_F_ASYNC_DATA
at that point. Those two should always go together, as the flag tells
io_uring whether the field is valid or not.
Additionally, on failure cleanup, the futex handler frees the data but
does not clear ->async_data. Clear the data and the flag in the error
path as well.
Thanks to Trend Micro Zero Day Initiative and particularly ReDress for
reporting this.
📍 영향받는 시스템
io_uring을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 공격자가 특수하게 조작된 io_uring 시스템 호출을 통해 메모리 오류를 유도
🛡️ 대응 방법
io_uring 관련 패치가 적용된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인