🇰🇷 한글 설명
Linux 커널의 비동기 I/O(Aio) 시스템에서 메모리 타입 검사를 하기 전에 잘못된 메모리 주소에서 데이터를 읽을 수 있는 문제입니다. 컴파일러 최적화에 따라 req->ki_ctx 값이 IOCB_AIO_RW 플래그 검사 전에 읽혀 메모리 정보 유출 가능성이 발생합니다.
💡 쉬운 설명
Linux 시스템의 파일 처리 과정에서 메모리 접근 순서가 뒤바뀌어 잘못된 정보가 노출될 수 있는 문제입니다. 로컬 공격자가 악의적으로 파일 작업을 수행하면 민감한 메모리 정보를 읽을 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fs/aio: Check IOCB_AIO_RW before the struct aio_kiocb conversion
The first kiocb_set_cancel_fn() argument may point at a struct kiocb
that is not embedded inside struct aio_kiocb. With the current code,
depending on the compiler, the req->ki_ctx read happens either before
the IOCB_AIO_RW test or after that test. Move the req->ki_ctx read such
that it is guaranteed that the IOCB_AIO_RW test happens first.
📍 영향받는 시스템
Linux kernel 5.10 이상 6.x 버전 (CVE 공개 이전 커널)
⚔️ 공격 벡터
로컬 공격자가 aio(asynchronous I/O) 시스템 호출을 악용한 메모리 정보 유출
🛡️ 대응 방법
Linux 커널을 패치된 최신 버전으로 업그레이드 (fs/aio.c의 IOCB_AIO_RW 검사 순서 수정)
🔧 검증 코드
커널 버전이 영향받는 범위에 있으면 취약, 아니면 패치 상태 확인 필요 (완전한 검증은 linux-image 패키지의 정확한 patch level 확인 필요)
uname -r | grep -qE '^6\.(7|8|9|10)|^5\.(15|16|17)' && echo '취약 버전' || echo '확인 필요'