🇰🇷 한글 설명
Linux 커널의 nfsd 구성 요소에서 관리자에 의해 취소된 위임(delegation)을 처리할 때 SC_STATUS_FREED 플래그를 적절히 설정하지 않는 취약점이 발견되었습니다. 이로 인해 이미 해제된 위임이 목록에 다시 추가되어, 이후 클라이언트를 파괴하는 과정에서 Use-After-Free(UAF) 오류가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 파일 공유 시스템(NFS)에서 사용 권한을 회수할 때, 이미 회수된 권한을 다시 사용하려고 시도하면서 발생하는 오류입니다. 이 오류를 이용하면 공격자가 시스템의 메모리를 조작하여 보안을 무너뜨릴 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nfsd: set SC_STATUS_FREED in nfsd4_drop_revoked_stid for delegations
nfsd4_drop_revoked_stid() handles FREE_STATEID for admin-revoked
delegations but does not set SC_STATUS_FREED before releasing cl_lock.
revoke_delegation() uses this flag to detect whether FREE_STATEID has
already processed the delegation -- without it, the freed delegation is
added to cl_revoked via list_add(), producing a use-after-free when
cl_revoked is later traversed in __destroy_client().
The SC_STATUS_REVOKED path in nfsd4_free_stateid() (line 7983) already
sets SC_STATUS_FREED correctly. Apply the same pattern to the
SC_STATUS_ADMIN_REVOKED path in nfsd4_drop_revoked_stid().
📍 영향받는 시스템
Linux Kernel (nfsd 모듈 사용 환경)
⚔️ 공격 벡터
네트워크를 통해 조작된 NFS 요청을 보내 관리자 권한의 위임 취소를 유도하여 메모리 오류 유발
🛡️ 대응 방법
nfsd4_drop_revoked_stid 함수에 SC_STATUS_FREED 플래그를 설정하도록 커널 패치를 적용하거나 최신 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 최신 보안 패치 버전인지 확인합니다.