🔍 CVE-2026-89646

7.8
CVSS Score
HIGH
2026-09-11
2026-10-19 09:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 Ceph 파일 시스템에서 unmount 시 writeback 작업이 중단될 경우 inode 참조가 누수되는 취약점입니다. 이로 인해 inode가 메모리에서 해제되지 않아 VFS Busy 상태가 발생하며, 결국 커널 버그(kernel BUG)를 유발할 수 있습니다.

💡 쉬운 설명

파일 시스템을 분리할 때 데이터 저장 작업이 중간에 끊기면, 시스템이 사용 중인 파일 정보를 메모리에서 제대로 지우지 못하는 문제입니다. 이 문제가 반복되면 시스템이 파일을 계속 붙잡고 있어 오류가 발생하거나 시스템이 불안정해질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ceph: fix leaked inode reference on writeback abort at umount ceph_dirty_folio() takes a wrbuffer claim on each newly dirtied folio: it bumps i_wrbuffer_ref (taking an ihold() on the 0->1 transition) and attaches the snap_context to folio->private. That claim is released only by ceph_put_wrbuffer_cap_refs(), which for a submitted write runs from writepages_finish(). In ceph_submit_write(), if ceph_inc_osd_stopping_blocker() fails -- which happens during umount -- the request is aborted before submission: the already-collected folios are only redirtied and unlocked, so writepages_finish() never runs and the claim is leaked. redirty_page_for_writepage() -> folio_redirty_for_writepage() -> filemap_dirty_folio() sets PG_dirty directly and does not go through ->dirty_folio, so ceph_dirty_folio() is not re-entered to rebalance it. Because every subsequent writeback also fails the osd_stopping_blocker, i_wrbuffer_ref never returns to 0, the ihold() is never dropped, and the inode cannot be evicted: VFS: Busy inodes after unmount of ceph kernel BUG at fs/super.c:650! Release the orphaned claim in the abort path before redirtying, via ceph_undo_wrbuffer_claim(): detach the snap_context, drop the wrbuffer reference (letting i_wrbuffer_ref reach 0 and iput() the inode), and drop the snap_context reference -- i.e. do what writepages_finish() would have done for these never-submitted folios. Only the locked_pages entries are undone; folios still in the fbatch were never dirty-cleared by this call (folio_clear_dirty_for_io() is the ownership-transfer point, and a successful move NULLs the fbatch slot), so they hold no claim this call owns.

📍 영향받는 시스템

Linux kernel (Ceph file system component)

⚔️ 공격 벡터

로컬 사용자가 Ceph 파일 시스템을 unmount 하는 과정에서 특정 조건(OSD 중단 등)을 유도하여 발생

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

출력된 커널 버전이 Ceph 관련 inode 누수 패치가 포함된 버전인지 배포판 보안 공지를 통해 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel