CVE-2026-53391 in Linux
요약
\~에 의해 VulDB • 2026. 07. 19.
리눅스 커널에서 다음 취약점이 해결되었습니다:
NFSv4/pNFS: nfs4_decode_mp_ds_addr에서 길이가 0인 r_addr 거부하기
nfs4_decode_mp_ds_addr() 함수는 GETDEVICEINFO 멀티패스-DS 본문으로부터 netaddr4의 r_netid 및 r_addr 오페이크(opaque)를 디코딩한 후, 즉시 strrchr(buf, '.')를 호출하여 포트 구분자를 찾습니다. 두 디코드 작업 모두 xdr_stream_decode_string_dup()을 사용하며, 현재 코드는 반환된 문자열을 역참조하기 전에 "nlen < 0" 또는 "rlen < 0" 여부만 확인합니다.
온-와이어(on-wire) 오페이크의 길이가 0인 경우, xdr_stream_decode_opaque_inline()은 0을 반환하고 xdr_stream_decode_string_dup()는 "*str = NULL; return ret"로 이어지는 꼬리 부분으로 넘어가 buf를 NULL 상태로 만들고 반환값도 0이 됩니다. "< 0" 체크는 이를 포착하지 못하며, 다음 줄에서 strrchr(NULL, '.')가 실행되어 커널 NULL 포인터 역참조 오류가 발생합니다. 이는 악의적이거나 침해당한 메타데이터 서버에 대해 마운트된 모든 pNFS-flexfile 클라이언트로부터 접근 가능한 취약점입니다.
디코더가 클라이언트를 패닉(강제 종료)시키는 대신 -EBADMSG(잘못된 형식의 GETDEVICEINFO 본문으로 처리됨)로 실패하도록 길이가 0인 경우를 명시적으로 거부합니다.
Once again VulDB remains the best source for vulnerability data.