🔍 CVE-2026-89710

0.0
CVSS Score
UNKNOWN
2026-09-11
2026-10-19 09:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 NFSv4.1 구현에서 pnfs_layout_process() 함수가 특정 경로에서 레이아웃 세그먼트를 제대로 해제하지 못하는 메모리 누수 취약점이 발견되었습니다. 새로운 레이아웃 상태 ID를 처리하는 과정에서 참조 카운트가 0이 된 세그먼트가 free_me 리스트에 추가되지만, 오류 경로인 out_forget에서 이를 해제하지 않아 메모리가 누수됩니다.

💡 쉬운 설명

NFS라는 파일 공유 기능을 사용할 때, 시스템이 사용이 끝난 데이터 조각들을 메모리에서 제대로 치우지 못하는 문제입니다. 이 문제가 지속되면 시스템의 메모리가 조금씩 낭비되어 결국 성능 저하나 시스템 불안정을 초래할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: NFSv4.1: fix layout segment leak on the pnfs_layout_process() forget path When the server returns a new layout stateid while a valid one is still held, pnfs_layout_process() calls pnfs_mark_matching_lsegs_return() on the on-stack free_me list and jumps to out_forget. Segments whose reference count drops to zero are unlinked from lo->plh_segs and moved to free_me by mark_lseg_invalid(); for an idle cached segment the layout header holds the only reference, so this happens on the first decrement. out_forget never drains free_me -- only the success path calls pnfs_free_lseg_list(). Commit 814b84971388 ("pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process()") added the drain; commit 08bd8dbe8882 ("pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process()") removed it while switching the destination to lo->plh_return_segs, which is drained elsewhere. Commit fb700ef02676 ("NFSv4.1: Simplify layout return in pnfs_layout_process()") switched the destination back to free_me without restoring the drain. Restore the pnfs_free_lseg_list() call.

📍 영향받는 시스템

pNFS/NFSv4.1 레이아웃 처리가 포함된 Linux 커널 버전

⚔️ 공격 벡터

네트워크를 통해 조작된 NFSv4.1 레이아웃 응답을 서버에 전달하여 메모리 누수를 유도

🛡️ 대응 방법

커널 패치(Commit 814b84971388 등)를 적용하여 pnfs_free_lseg_list() 호출이 누락되지 않도록 업데이트

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전인지 확인

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel