CVE-2026-80827 in Linux정보

요약

\~에 의해 VulDB • 2026. 09. 04.

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

USB: serial: option: 인터럽트 URB 콜백에서의 슬랩 OOB(Out-of-Bounds) 읽기 수정

인터럽트 URB 버퍼는 setup_port_interrupt_in() 함수 내에서 엔드포인트의 wMaxPacketSize를 기반으로 할당됩니다.

buffer_size = usb_endpoint_maxp(epd); port->interrupt_in_buffer = kmalloc(buffer_size, GFP_KERNEL);

USB 장치가 인터럽트 IN 엔드포인트에서 wMaxPacketSize = 8을 선언하면, 버퍼는 정확히 8바이트인 kmalloc-8 캐시로부터 할당됩니다.

장치가 짧은 패킷(actual_length < wMaxPacketSize)을 전송하는 경우, URB은 상태 == 0으로 완료되며 콜백이 다음 읽기 작업을 진행합니다:

data[sizeof(struct usb_ctrlrequest)]

이는 data[8]로 평가되어, 할당된 8바이트 버퍼를 넘어 1바이트에 접근하게 됩니다. 이로 인해 슬랩 OOB(Out-of-Bounds) 읽기가 발생합니다.

이를 해결하기 위해 누락된 경계 검사를 추가합니다: 먼저 req_pkt->bRequestType 및 req_pkt->bRequest에 액세스하기 전에 실제 길이가 struct usb_ctrlrequest 헤더를 포함하기에 충분한지 확인하고, 조건문 내부에서 data[sizeof(struct usb_ctrlrequest)]을 읽기 전에 모뎀 신호 상태용 추가 바이트가 있는지 검증합니다. 일관성을 위해 sizeof(struct usb_ctrlrequest) 대신 sizeof(*req_pkt)를 사용합니다.

[ johan: dev_err() 사용; 시그널 선언과 초기화 분리 ]

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

책임이 있는

Linux

예약하다

2026. 08. 26.

모더레이션

수락

항목

VDB-398945

EPSS

0.00195

출처

Might our Artificial Intelligence support you?

Check our Alexa App!