🇰🇷 한글 설명
Linux 커널 NFSv4 pNFS 구현에서, open() 중 위임(delegation)을 반환할 때 발생하는 교착상태(deadlock)를 수정한 패치입니다. delegreturn이 상태 복구로 인해 완료될 수 없는 레이아웃 반환을 기다리며 멈추는 문제가 있었으며, 이를 해결하기 위해 비차단(non-blocking) 플래그를 pnfs_roc()까지 전달하도록 변경했습니다.
💡 쉬운 설명
NFS로 파일을 여는 도중 시스템이 서로 기다리며 멈추는 버그가 있었습니다. 이번 수정으로 기다리지 않고 진행하도록 바뀌어 멈춤 현상이 해결됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
pNFS: Fix a deadlock when returning a delegation during open()
Ben Coddington reports seeing a hang in the following stack trace:
0 [ffffd0b50e1774e0] __schedule at ffffffff9ca05415
1 [ffffd0b50e177548] schedule at ffffffff9ca05717
2 [ffffd0b50e177558] bit_wait at ffffffff9ca061e1
3 [ffffd0b50e177568] __wait_on_bit at ffffffff9ca05cfb
4 [ffffd0b50e1775c8] out_of_line_wait_on_bit at ffffffff9ca05ea5
5 [ffffd0b50e177618] pnfs_roc at ffffffffc154207b [nfsv4]
6 [ffffd0b50e1776b8] _nfs4_proc_delegreturn at ffffffffc1506586 [nfsv4]
7 [ffffd0b50e177788] nfs4_proc_delegreturn at ffffffffc1507480 [nfsv4]
8 [ffffd0b50e1777f8] nfs_do_return_delegation at ffffffffc1523e41 [nfsv4]
9 [ffffd0b50e177838] nfs_inode_set_delegation at ffffffffc1524a75 [nfsv4]
10 [ffffd0b50e177888] nfs4_process_delegation at ffffffffc14f41dd [nfsv4]
11 [ffffd0b50e1778a0] _nfs4_opendata_to_nfs4_state at ffffffffc1503edf [nfsv4]
12 [ffffd0b50e1778c0] _nfs4_open_and_get_state at ffffffffc1504e56 [nfsv4]
13 [ffffd0b50e177978] _nfs4_do_open at ffffffffc15051b8 [nfsv4]
14 [ffffd0b50e1779f8] nfs4_do_open at ffffffffc150559c [nfsv4]
15 [ffffd0b50e177a80] nfs4_atomic_open at ffffffffc15057fb [nfsv4]
16 [ffffd0b50e177ad0] nfs4_file_open at ffffffffc15219be [nfsv4]
17 [ffffd0b50e177b78] do_dentry_open at ffffffff9c09e6ea
18 [ffffd0b50e177ba8] vfs_open at ffffffff9c0a082e
19 [ffffd0b50e177bd0] dentry_open at ffffffff9c0a0935
The issue is that the delegreturn is being asked to wait for a layout
return that cannot complete because a state recovery was initiated. The
state recovery cannot complete until the open() finishes processing the
delegations it was given.
The solution is to propagate the existing flags that indicate a
non-blocking call to the function pnfs_roc(), so that it knows not to
wait in this situation.
📍 영향받는 시스템
pNFS(NFSv4.1 이상)를 사용하는 Linux 커널 (수정된 특정 버전 범위는 커널 브랜치별 확인 필요)
⚔️ 공격 벡터
CVSS 점수가 없고 공격 벡터가 명시되지 않은 결함으로, 주로 NFS 클라이언트에서 발생하는 서비스 거부(교착상태) 문제로 보입니다.
🛡️ 대응 방법
배포판 제공 최신 Linux 커널 업데이트를 적용하여 해당 패치가 포함된 버전으로 재부팅합니다.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 커널 changelog와 대조해 CVE-2026-23050 수정 패치 포함 여부를 확인하며, 패치 포함 버전 이상이면 조치가 완료된 것입니다.