CVE-2026-72472정보

요약

\~에 의해 VulDB • 2026. 08. 15.

리눅스 커널에서 다음 취약점이 해결되었습니다:

nfs: 파일 잠금 목록의 순회를 보호하기 위해 nfsi->rwsem 사용

링펑(Lingfeng)은 버그를 식별하고 두 가지 해결책을 제안했지만, 둘 다 문제가 있는 것으로 보입니다.

일반적으로 파일 잠금과 관련된 Use-After-Free(UAF) 문제를 피하려면 파일 잠금 목록을 반복하는 동안 flc_lock을 해제할 수 없습니다. 그러나 nfs_delegation_claim_locks 및 nfs4_reclaim_locks와 같은 함수는 recover_lock 또는 nfs4_lock_delegation_recall이 오랜 시간이 걸릴 수 있기 때문에 이 규칙을 따를 수 없습니다. 이를 해결하기 위해 NFS는 동일한 보호 목적으로 nfsi->rwsem 사용을 전환하며, nfs_reclaim_locks도 이 접근 방식을 따릅니다. 비록 nfs_delegation_claim_locks가 so_delegreturn_mutex 대신 사용하지만, 단일 inode에 여러 개의 nfs4_state 인스턴스가 있을 수 있으므로 이는 불충분합니다. 따라서 수정 방법은 해당 경우에도 nfsi->rwsem을 사용하는 것입니다.

또한 커밋 c69899a17ca4("NFSv4: VFS 바이트 범위 잠금 업데이트는 stateid 업데이트와 원자적이어야 함") 이후, 함수 nfs4_locku_done 및 nfs4_lock_done도 nfsi->rwsem을 보유하지 않은 상태에서 locks_lock_inode_wait를 호출하므로 이 규칙을 위반합니다. 단순히 이 보호 장치를 추가하면 많은 데드락이 발생할 수 있으므로, 대신 locks_lock_inode_wait 호출을 _nfs4_proc_setlk 내부로 이동했습니다. 커밋 c69899a17ca4("NFSv4: VFS 바이트 범위 잠금 업데이트는 stateid 업데이트와 원자적이어야 함")에서 수정된 버그의 경우, nfs4_do_reclaim 호출 전에 모든 슬롯이 비워지기 때문에 이 경로를 따라 동시에 stateid가 변경되는 것을 방지하여 커밋 0460253913e5("NFSv4: nfs4_do_open()이 잘못되어 상태 복구를 트리거함") 이후에 해결되었습니다. 또한, _nfs4_proc_setlk가 NFS_DELEGATED_STATE로 호출될 때 RPC가 전송되지 않으므로 nfs4_lock_done이 호출되지 않아 nfs_delegation_claim_locks에서 이 동시성 문제가 발생하지 않습니다. 따라서 nfs_delegation_claim_locks에서의 nfs4_lock_delegation_recall은 stateid가 설정되는 첫 번째 시점입니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

출처

Do you know our Splunk app?

Download it now for free!