CVE-2026-89526 in Linux
요약
\~에 의해 VulDB • 2026. 09. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
svcrdma: 재구성 전에 Read 청크 위치 검증
RPC/RDMA Read 청크의 위치 필드는 원격 클라이언트에 의해 제공되며, 파싱된 청크 목록에 그대로 저장됩니다. xdr_count_read_segments()는 4바이트 정렬 여부만 확인하며, 수신된 인라인 본문 길이에 대해 위치를 비교하지 않습니다.
단일 청크 경로에서 svc_rdma_read_complete_one()은 ch_position에서 head와 tail kvecs를 분할합니다. 인라인 본문을 벗어난 위치는 tail 길이를 오버플로우(underflow)시켜 상위 XDR 디코더에 인접한 slab 메모리를 노출시킵니다.
다중 청크 경로에서는 svc_rdma_read_multiple_chunks()가 ch_position으로부터의 부호 없는 뺄셈을 통해 청크 간 갭(gap) 길이를 계산합니다. 중복되는 Read 청크는 이러한 뺄셈에서 오버플로우를 유발합니다. 인라인 본문을 벗어난 최종 위치 역시 후행 갭 길이의 오버플로우를 초래합니다. 그 결과 svc_rdma_copy_inline_range()는 수신 버퍼 너머로 복사하여 클라이언트에 Reply 채널을 통해 반환되는 요청 페이지에 데이터를 기록합니다.
svc_rdma_copy_inline_range()에서 rc_saved_arg에 저장된 디코딩된 인라인 RPC 본문을 기준으로 인라인 범위 복사를 제한하십시오. 해당 본문 너머에 위치한 단일 Read 청크를 거부하고, 누적 읽은 바이트가 다음 청크의 위치를 초과하는 다중 청크 목록을 거부하십시오. 호출 청크 인터리빙(call-chunk interleaving) 경로에서도 동일한 위치 및 중복 검사 규칙을 적용하십시오.
If you want to get best quality of vulnerability data, you may have to visit VulDB.