CVE-2026-80951 in Linux
요약
\~에 의해 VulDB • 2026. 09. 12.
리눅스 커널에서 다음 취약점이 해결되었습니다:
i3c: master: svc: IBI 페이로드를 요청된 max_payload_len에 바인딩함
svc_i3c_master_handle_ibi() 함수는 RX FIFO로부터 IBI 페이로드를 읽어와 IBI 슬롯에 저장합니다. 루프의 반복 횟수는 하드웨어 FIFO 크기(SVC_I3C_FIFO_SIZE)로 제한되지만, 슬롯 크기로는 제한되지 않습니다.
slot->data는 i3c_generic_ibi_alloc_pool() 함수에서 슬롯당 max_payload_len 크기로 할당한 IBI 풀을 가리킵니다. svc_i3c_master_request_ibi() 함수는 SVC_I3C_FIFO_SIZE보다 큰 max_payload_len만 거부하므로, 드라이버는 더 작은 값을 요청할 수 있습니다. mctp-i3c은 1을 요청합니다. 각 readsb() 호출은 컨트롤러의 RXCOUNT 바이트(최대 31바이트)를 복사하지만 슬롯 크기에 대한 검사는 수행하지 않습니다. 따라서 슬롯이 수용하는 것보다 많은 바이트를 전송하는 장치는 slot->data 이후로 데이터를 작성하여 IBI 풀에 대해 범위를 벗어난 쓰기(out-of-bounds write) 오류를 유발합니다.
루프를 dev->ibi->max_payload_len으로 제한하고, dw-i3c과 동일한 방식으로 각 읽기 작업을 슬롯의 남은 공간에 맞게 클램핑(clamp)하십시오. 장치는 여전히 요청된 페이로드보다 많은 데이터를 전송할 수 있으므로, RX FIFO에서 나머지 바이트들을 플러시하여 다음 트랜스퍼로 누출되지 않도록 해야 합니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.