🇰🇷 한글 설명
Linux 커널의 NFSv4/flexfiles 구성 요소에서 NFSv4.0 데이터 서버 사용 시 NULL 포인터 역참조가 발생하는 취약점입니다. NFSv4.0은 세션 개념이 없으나 특정 코드 경로가 세션이 존재한다고 가정하여 시스템 오류(Oops)를 유발하거나 무한 루프에 빠질 수 있습니다.
💡 쉬운 설명
리눅스 서버가 특정 네트워크 파일 공유 방식(NFSv4.0)을 사용할 때, 프로그램이 존재하지 않는 정보를 참조하려다 시스템이 멈추거나 오류가 발생하는 문제입니다. 이로 인해 서버의 안정성이 떨어질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
NFSv4/flexfiles: fix NULL dereference for NFSv4.0 data servers
flexfiles accepts NFSv4.0 data servers, but two NFSv4 code paths assume
the data server client has a session. Unlike NFSv4.1+, an NFSv4.0 client
has no session (clp->cl_session is NULL; it uses clp->cl_slot_tbl), so
I/O to a v4.0 flexfiles DS oopses:
- nfs4_init_ds_session() dereferences clp->cl_session->session_state
while seeding the DS lease. It also only seeds cl_lease_time when
NFS4_SESSION_INITING is set; without a session that never happens, so
cl_lease_time stays 0 and nfs4_renew_state() busy-loops, requeuing
every 5 seconds. Seed the lease whenever there is no session and
return before touching session state.
- ff_layout_async_handle_error_v4() dereferences
clp->cl_session->fc_slot_table on every DS I/O error. Fall back to the
v4.0 transport slot table (clp->cl_slot_tbl) when there is no session.
📍 영향받는 시스템
NFSv4.0 데이터 서버 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
NFSv4.0 프로토콜을 사용하는 클라이언트가 데이터 서버에 특정 요청을 보내 시스템 오류를 유발
🛡️ 대응 방법
NFSv4.0 세션 처리 로직이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인