CVE-2026-64102 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 22.

리눅스 커널에서 다음 취약점이 해결되었습니다:

RDMA/siw: 서명된 수신 연산 전에 MPA FPDU 길이 오버플로우(underflow) 거부

악의적인 연결된 siw 피어는 공표된 오퍼코드에 대해 고정된 DDP/RDMAP 헤더보다 작은 MPA 길이 필드(c_hdr->mpa_len, 16비트 빅엔디안, 피어가 제어 가능)를 가진 iWARP FPDU를 보낼 수 있습니다. Soft-iWARP는 iwarp_pktinfo[opcode].hdr_len을 기반으로 siw_get_hdr()에서 전체 헤더를 구문 분석하지만 mpa_len이 해당 헤더 길이와 비교되지는 않습니다.

그 후 siw_tcp_rx_data()에서는 다음을 유도합니다:

srx->fpdu_part_rem = be16_to_cpu(mpa_len) - fpdu_part_rcvd + MPA_HDR_SIZE;

여기서 fpdu_part_rcvd는 이 시점에서 iwarp_pktinfo[opcode].hdr_len과 같습니다. 태그된 WRITE( hdr_len 16, MPA_HDR_SIZE 2 )의 경우 가장 작은 온-와이어 mpa_len인 0은 fpdu_part_rem = -14를 생성하며, hdr_len - MPA_HDR_SIZE보다 작은 모든 mpa_len는 음수 정수로 오버플로우됩니다.

이 서명된 값은 다음과 같이 siw_proc_write()/siw_proc_rresp()로 흐릅니다:

bytes = min(srx->fpdu_part_rem, srx->skb_new);

int len으로 siw_check_mem()에 전달되며(유효한 기준 주소에서 len이 음수일 때 addr + len > mem->va + mem->len 간격 검사가 충족됨), 서명된 복사 길이로 skb_copy_bits()를 통해 siw_rx_data() -> siw_rx_kva()/siw_rx_umem()에 도달합니다. skb_copy_bits()의 헤더 복사 분기는 이를 size_t로 승격시켜 멀티 기가바이트 읽기를 생성합니다.

실제 커널 TCP 수신 경로를 구동하는 KUnit 하네스 아래에서 KASAN을 사용하면 -- 루프백 AF_INET 소켓 페어, kernel_sendmsg를 통해 잘못된 FPDU 작성, softirq에서 sk_data_ready 발화, tcp_read_sock가 siw_tcp_rx_data로 디스패치 -- 다음과 같은 보고가 나옵니다:

BUG: KASAN: use-after-free in skb_copy_bits+0x284/0x480 Read of size 4294967295 at addr ffff888... Call Trace: skb_copy_bits siw_rx_kva siw_rx_data siw_check_mem siw_proc_write siw_tcp_rx_data __tcp_read_sock siw_qp_llp_data_ready tcp_data_ready tcp_data_queue

피어 헤더가 완전히 조립되는 가장 초기 지점에서 누락된 불변식을 추가합니다. iwarp_pktinfo[*].hdr_len - MPA_HDR_SIZE는 정확히 각 오퍼코드에 대해 siw 송신기가 최소 mpa_len으로 사용하는 값입니다(drivers/infiniband/sw/siw/siw_qp.c:33). 따라서 이는 프로토콜 계약과 일치합니다. 범위를 벗어난 FPDU는 TERM_ERROR_LAYER_LLP / LLP_ETYPE_MPA / LLP_ECODE_FPDU_START로 연결을 종료합니다 -- 이는 RFC 5044 섹션 8 오류 코드 3("FPDU 시작 시 Marker 및 ULPDU Length 필드가 동의하지 않음")이며, 이 불일치에 대한 올바른 프레임링 오류 클래스입니다.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Linux

예약하다

2026. 07. 19.

모더레이션

수락

항목

VDB-380216

EPSS

0.00506

출처

Interested in the pricing of exploits?

See the underground prices here!