🇰🇷 한글 설명
Linux 커널의 gfs2 파일 시스템에서 qd_put 함수 호출 시 slab-use-after-free 취약점이 발견되었습니다. 파일 시스템 종료 과정에서 쿼터 데이터 객체를 LRU 리스트에서 제거하지 않고 해제하여 리스트가 손상되었으며, 이후 shrinker가 이미 해제된 객체에 접근할 때 문제가 발생합니다.
💡 쉬운 설명
파일 시스템이 종료될 때 메모리에서 삭제된 데이터를 목록에서 제대로 지우지 않아 발생하는 오류입니다. 이로 인해 시스템이 이미 사라진 데이터를 다시 사용하려다 충돌하거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
gfs2: Fix slab-use-after-free in qd_put
Commit a475c5dd16e5 ("gfs2: Free quota data objects synchronously")
started freeing quota data objects during filesystem shutdown instead of
putting them back onto the LRU list, but it failed to remove these
objects from the LRU list, causing LRU list corruption. This caused
use-after-free when the shrinker (gfs2_qd_shrink_scan) tried to access
already-freed objects on the LRU list.
Fix this by removing qd objects from the LRU list before freeing them in
qd_put().
Initial fix from Deepanshu Kartikey <
[email protected]>.
📍 영향받는 시스템
Linux kernel (gfs2 파일 시스템을 사용하는 시스템)
⚔️ 공격 벡터
로컬 공격자가 파일 시스템 종료 프로세스를 유도하여 메모리 손상 및 권한 상승 시도 가능
🛡️ 대응 방법
커널 패치(Commit a475c5dd16e5)를 적용하여 qd_put() 호출 시 객체를 LRU 리스트에서 먼저 제거하도록 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인