CVE-2021-47267 in Linux
요약
\~에 의해 VulDB • 2026. 06. 17.
리눅스 커널에서 다음 취약점이 해결되었습니다:
usb: 10Gbps 케이블에서 발생하는 다양한 gadged 패닉 수정
usb_assign_descriptors()는 5개의 매개변수와 함께 호출되며, 마지막 4개는 각각 다음 속도에 대한 usb_descriptor_header입니다: 풀 스피드 (USB1.1 - 12Mbps [USB1.0 로우 스피드 @ 1.5Mbps 포함]),
하이스피드 (USB2.0 - 480Mbps), 슈퍼 스피드 (USB3.0 - 5Gbps), 슈퍼 스피드 플러스 (USB3.1 - 10Gbps).
풀/하이/슈퍼 스피드 설명자 간의 차이는 일반적으로 상당합니다(최대 USB 블록 크기가 64바이트에서 512바이트, 1024바이트로 변경되고 사양상의 다른 차이점들 때문). 반면, 5Gbps와 10Gbps 설명자 간의 차이는 거의 없거나 전혀 없을 수 있습니다(많은 경우 동일한 튜닝이 단순히 충분하기 때문입니다).
그러나 gadged 드라이버가 슈퍼 스피드 플러스에 대해 NULL 설명자를 사용하여 usb_assign_descriptors()를 호출한 후 최대 10Gbps 구성에서 사용되는 경우, 10Gbps 지원 장치 포트 + 케이블 + 호스트 포트 조합이 나타날 때 커널이 null pointer dereference로 인해 크래시됩니다. (gadget의 최대 속도가 5Gbps로 설정되어 있었다면 이러한 상황은 발생하지 않았겠지만, 기본적으로 최대 속도로 설정되며 인위적으로 제한할 만한 실제적인 이유는 없습니다.)
해결책은 10Gbps 설명자가 제공되지 않은 경우 5Gbps 설명자를 10Gbps 설명자로 사용하는 것입니다.
물론 5Gbps 설명자도 NULL인 경우에는 이 방법으로 문제가 해결되지 않지만, 그러한 경우는 간단히 해결할 수 없으며(그리고 그러한 gadged들은 어차피 USB3 포트에서 사용될 가능성이 낮습니다).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.