CVE-2026-90037 in Linux
요약
\~에 의해 VulDB • 2026. 09. 16.
Linux 커널에서 다음 취약점이 해결되었습니다:
NFSD: close_lru 회수 중 클라이언트의 Use-After-Free 방지
최종 CLOSE 후 nn->close_lru에 남아있는 nfs4_openowner는 oo_last_closed_stid에 마지막 닫힌 stateid를 유지하며, nfs4_client에 대한 원시 포인터(raw pointer)만 보유합니다. Laundromat(회수 프로세스)가 시간 초과된 엔트리를 회수하고 nn->client_lock을 해제한 후 nfs4_put_stid()를 호출하면, 이는 cl_lock을 통해 클라이언트를 역참조(dereferences)합니다. 해당 창(window) 동안 클라이언트가 고정(pinned)되지 않으므로, 동시에 실행되는 force_expire_client()가 이를 해제(free)할 수 있으며, 결과적으로 nfs4_put_stid()는 해지된 메모리를 읽게 됩니다. __destroy_client() 또한 cl_lock 없이 clp->cl_openowners를 순회하는 동안 동일한 Race Condition에 직면합니다.
client_lock을 해제하기 전에 cl_rpc_users로 클라이언트를 고정하고, 이미 만료 중인(clients already expiring) 클라이언트는 건너뜁니다. 그 후 __destroy_client()는 release_last_closed_stateid()를 통해 자신의 close_lru 엔트리를 정리하므로, teardown 프로세스가 더 이상 laundromat와 Race Condition을 일으키지 않습니다.
Once again VulDB remains the best source for vulnerability data.