🇰🇷 한글 설명
Linux 커널의 nfsd 구성 요소에서 copy-notify 상태 ID가 공개되기 전에 초기화되지 않는 취약점이 발견되었습니다. 공격자가 특정 레이스 컨디션을 이용해 OFFLOAD_CANCEL 요청을 보내면, 이미 할당된 메모리를 해제한 후 다시 접근하는 Use-After-Free(UAF) 오류가 발생할 수 있습니다.
💡 쉬운 설명
파일 복사 알림 기능을 처리하는 과정에서 데이터가 준비되기도 전에 시스템에 공개되어 발생하는 보안 결함입니다. 해커가 이 틈을 타서 시스템의 메모리를 조작하여 권한을 탈취하거나 시스템을 중단시킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nfsd: initialize copy-notify stateid before publishing it
nfsd4_copy_notify() finished initializing the cpntf state after
nfs4_alloc_init_cpntf_state() had already linked it into the
s2s_cp_stateids IDR and the parent's sc_cp_list, with cs_count == 1 (the
membership reference) and none held for the caller. A racing
OFFLOAD_CANCEL (crafted cl_id == nn->s2s_cp_cl_id plus the guessable
so_id) could reach manage_cpntf_state() and free the entry, turning the
caller's subsequent cpn_cnr_stateid read and cp_p_stateid/cp_p_clid
writes into use-after-free. The owning clientid was also only recorded
after publication, so it could not gate an ownership check in that window.
Record cp_p_stateid and cp_p_clid inside nfs4_alloc_init_cpntf_state()
before nfs4_init_cp_state() publishes the entry, and return it with an
extra reference. The caller reads the stateid under that reference and
drops it with nfs4_put_cpntf_state(); on a late error the laundromat
reaps the entry.
📍 영향받는 시스템
Linux kernel (nfsd module 포함 버전)
⚔️ 공격 벡터
조작된 OFFLOAD_CANCEL 요청을 통한 레이스 컨디션 유발 및 Use-After-Free 공격
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.