🇰🇷 한글 설명
Linux 커널의 NFSv4 클라이언트 할당 과정에서 오류 발생 시 콜백 IDR 항목이 제대로 제거되지 않는 취약점입니다. 이로 인해 해제된 메모리 주소를 가리키는 stale pointer가 남아 있어 Use-After-Free 취약점이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 작업을 하다가 실수로 메모리 주소를 지우지 않고 남겨두어, 나중에 잘못된 정보를 참조하게 만드는 오류입니다. 이 오류를 이용하면 해커가 시스템의 제어권을 뺏을 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
NFSv4: remove callback IDR entry on client allocation failure
nfs4_alloc_client() allocates an NFSv4.0 callback identifier before it
finishes setting up the client. If any later initialization step fails,
the error path frees the nfs_client directly with nfs_free_client(). That
bypasses nfs_put_client(), which is where the callback IDR entry is
removed during normal teardown.
A failed allocation can therefore leave cb_ident_idr pointing at a freed
nfs_client. A later NFSv4.0 callback lookup by cb_ident would find the
stale pointer and take a reference to it.
Make the callback IDR removal helper callable by the allocation failure
path, and remove the callback identifier before freeing the client.
This was found by a local static-analysis checker for publish-before-free
lifetime bugs and confirmed by manual inspection.
📍 영향받는 시스템
NFSv4 콜백 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 권한을 가진 공격자가 의도적으로 클라이언트 할당 실패를 유도하여 Use-After-Free를 유발
🛡️ 대응 방법
NFSv4 콜백 IDR 제거 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인