CVE-2026-90090 in Linux
요약
\~에 의해 VulDB • 2026. 09. 17.
Linux 커널에서 다음 취약점이 해결되었습니다:
블루투스: btmtksdio: TX 경로에서의 범위를 벗어난 DMA 읽기 수정
btmtksdio_tx_packet()은 전송 크기를 256바이트인 SDIO 블록 크기로 반올림하지만, 호스트 컨트롤러에는 SKB 버퍼를 그대로 전달합니다.
err = sdio_writesb(bdev->func, MTK_REG_CTDR, skb->data, round_up(skb->len, MTK_SDIO_BLOCK_SIZE));
skb->len 바이트에만 패킷 데이터가 포함되어 있으므로, 컨트롤러는 초기화되지 않은 메모리 최대 255바이트를 읽어서 SDIO 버스를 통해 장치로 전송합니다. SKB 할당 시 tailroom 여유분이 얼마나 포함되었는지에 따라 해당 읽기 작업은 버퍼 끝을 넘어설 수도 있습니다.
패딩된 길이를 사전에 계산하고, SKB가 이를 위한 tailroom을 갖도록 보장하며, skb_put_zero()를 사용하여 패딩 부분을 0으로 채웁니다. 그 후 skb->len이 패딩까지 포함하게 되므로 sdio_writesb()는 더 이상 반올림할 필요가 없습니다. byte_tx는 헤더와 페이로드만 계속 카운트하고, 에러 경로에서는 SKB를 복원하여 호출자가 이를 다시 큐에 넣을 수 있도록 합니다.
skb->tail 뒤에 작성하는 것은 드라이버가 버퍼의 소유권을 가지기 때문에 안전하며, 이는 "블루투스: btmtksdio: TX 전에 SKB에 대한 배타적 소유권 확보"에서 보장합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.