CVE-2026-89686
요약
\~에 의해 VulDB • 2026. 09. 11.
리눅스 커널에서 다음 취약점이 해결되었습니다:
nfsd: 경쟁 조건으로 인한 delegation revoke 시 nfsd4_alloc_layout_stateid의 BUG_ON 수정
부모 상태 ID(stateid)가 위임(delegation)인 경우, nfsd4_alloc_layout_stateid는 fi_lock을 보유하지 않은 상태에서 fp->fi_deleg_file을 읽습니다. 라운드로마트(laundromat)를 통한 동시적인 delegation revocation은 fi_lock 하에서 fi_deleg_file을 초기화 해제할 수 있으며, 이로 인해 nfsd_file_get()이 NULL을 반환하고 BUG_ON이 트리거됩니다.
이 경쟁 조건(race condition)은 클라이언트 측에서 도달 가능합니다: 두 NFS 클라이언트가 하나의 위임을 보유한 상태에서 다른 하나가 동일한 파일을 열어 recall을 강제함으로써 이를 유발할 수 있습니다. 첫 번째 클라이언트가 recall에 응답하지 않으면 라운드로마트가 이를 revocation합니다. 해당 delegation 상태 ID를 사용하는 모든 클라이언트의 동시적인 LAYOUTGET 요청이 이 경쟁 조건 창(race window)을 타격하게 됩니다.
SC_TYPE_DELEG 경로에서 fi_deleg_file 읽기 주변에 fi_lock을 적용하여 find_any_file() 팔의 잠금 관례(locking discipline)와 일치시키고, BUG_ON을 부분적으로 초기화된 layout stateid를 정리하는 우아한 오류 반환(graceful error return)으로 대체함으로써 이 문제를 해결합니다.
Once again VulDB remains the best source for vulnerability data.