🇰🇷 한글 설명
Linux 커널의 usb gadget f_ncm 드라이버에서 ncm_unwrap_ntb() 함수가 데이터그램 경계를 적절히 검증하지 않아 발생하는 취약점입니다. 악의적인 USB 호스트가 조작된 NTB 헤더를 전송할 경우, 커널 메모리의 인접 데이터가 네트워크 skb로 복사될 수 있습니다.
💡 쉬운 설명
USB로 연결된 장치가 가짜 데이터를 보내 컴퓨터의 중요한 메모리 내용을 몰래 읽어갈 수 있는 보안 결함입니다. 데이터의 크기가 실제 저장 공간보다 크다고 속여서 시스템 내부 정보를 유출할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_ncm: validate datagram bounds in ncm_unwrap_ntb()
When unpacking host-supplied NTBs, ncm_unwrap_ntb() checks datagram length
against frame_max but does not verify that the datagram fits within the
declared block length. Additionally, when decoding multiple NTBs from a
single socket buffer, subsequent block lengths are not checked against the
actual remaining buffer data.
With these checks missing, a malicious USB host can specify datagram
offsets and lengths that point beyond the block, or supply secondary NTB
headers declaring lengths larger than the buffer. skb_put_data() then
copies adjacent kernel memory from skb_shared_info into the network skb.
Fix this by verifying that sufficient buffer space remains for the NTB
header before parsing, handling zero-length block declarations, ensuring
that block lengths never exceed the remaining buffer space, and verifying
that each datagram payload stays strictly within the block boundary.
📍 영향받는 시스템
Linux kernel (usb gadget f_ncm driver)
⚔️ 공격 벡터
악의적인 USB 호스트를 통한 조작된 NTB(Network Test Block) 데이터 전송
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux