CVE-2026-31617 in Linux
요약
\~에 의해 VulDB • 2026. 05. 21.
리눅스 커널에서 다음 취약점이 해결되었습니다:
usb: gadget: f_ncm: ncm_unwrap_ntb()에서 최소 block_len 검증
호스트에서 제공된 NTB 헤더에서 읽은 block_len은 ntb_max에 대해 검사되지만 하한선은 없습니다. block_len이 opts->ndp_size보다 작을 경우, 다음 경계 검사: ndp_index > (block_len - opts->ndp_size) 가 오버플로우(underflow)를 발생시켜 ndp_index가 절대 초과할 수 없는 매우 큰 부호 없는 정수 값을 생성하며, 이로 인해 검사 자체가 무효화됩니다.
block_len - opts->dpe_size에 대한 데이터그램 인덱스 검사에서도 동일한 오버플로우가 발생합니다. 이러한 검사들이 무력화됨에 따라 악의적인 USB 호스트는 실제 전송 범위를 벗어난 지점을 가리키는 ndp_index 및 데이터그램 오프셋을 선택할 수 있으며, skb_put_data()는 인접한 커널 메모리를 네트워크 skb로 복사합니다.
최소한의 NTB 헤더와 하나의 NDP를 수용할 수 없는 block_len 길이를 거부함으로써 이를 수정합니다. 이를 통해 block_len - opts->ndp_size 및 block_len - opts->dpe_size가 모두 명확하게 정의되도록 합니다.
커밋 8d2b1a1ec9f5("CDC-NCM: avoid overflow in sanity checking")은 NCM의 호스트 측에서 관련된 유형의 문제들을 해결했습니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.