CVE-2025-38691 in Linux
요약
\~에 의해 VulDB • 2026. 05. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
pNFS: block/scsi 레이아웃에서 초기화되지 않은 포인터 역참조 수정
이 오류는 확장을 인코딩하는 세 번째 시도 시 발생합니다. 함수 `ext_tree_prepare_commit()`가 확장 인코딩 재시도를 위해 더 큰 버퍼를 재할당할 때, "layoutupdate_pages" 페이지 배열은 재시도 루프 이후에만 초기화됩니다. 그러나 `ext_tree_free_commitdata()`는 모든 반복마다 호출되며 배열의 페이지를 해제하려고 시도하므로 초기화되지 않은 포인터를 역참조합니다.
추가적인 문제는 최대 가능한 `buffer_size`에 대한 제한이 없다는 것입니다. 확장이 너무 많으면 클라이언트가 서버가 허용하는 최대 RPC 크기보다 큰 `layoutcommit`을 생성할 수 있습니다.
테스트 중 우리는 두 가지 일반적인 시나리오를 관찰했습니다. 첫째, 작은 파일을 작업하거나 파일 끝에 데이터를 추가하거나 쓰기 전에 확장을 사전 할당할 경우 확장을 위한 메모리 페이지 하나면 충분합니다. 그러나 사전 할당 없이 새로운 대용량 파일을 채울 경우, 확장의 수가 매우 커질 수 있으며 `ext_tree_encode_commit()`에서 작성된 확장의 수를 세는 것은 큰 도움이 되지 않습니다. 이 수는 `ext_tree`의 잠금 해제 및 잠금 사이에서 더 증가하므로, 재할당된 버퍼가 다시 한 번 충분히 크지 않을 수 있습니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.