USB UVC · CVE-2024-53104 · INPUT VALIDATION

USB 카메라의 장치 정보도 커널의 외부 입력입니다

카메라를 연결할 때 해석하는 형식 정보, 메모리 경계 검사, 패치 판단을 구분합니다.

영상보다 먼저 장치 정보를 해석합니다

USB 카메라는 지원하는 영상 형식과 프레임 등을 descriptor로 설명합니다. 호스트 드라이버는 이 장치 제공 정보를 읽어 내부 구조를 준비합니다. 카메라처럼 보이거나 표준 UVC 유형으로 식별된다고 해서 descriptor 내용이 안전한 것은 아닙니다.

장치 제공 UVC descriptor의 크기·허용 형식을 확인한 뒤, 검증한 메모리 범위 안에서 내부 구조를 작성하는 신뢰 경계
  1. 장치가 제공한 형식·프레임 descriptor

  2. 호스트의 크기 계산과 허용된 형식 검사

  3. 검증한 메모리 범위 안에서 내부 구조 작성

이 경계는 영상 픽셀을 어떻게 처리하느냐와 별개입니다. CSI 카메라의 센서·수신기·버퍼 경로를 그대로 USB 카메라의 보안 모델로 옮기지 않습니다.

크기 계산과 파서가 같은 종류를 다뤄야 합니다

Ubuntu의 CVE-2024-53104 기록은 UVC_VS_UNDEFINED 프레임의 파싱과 스트리밍 구조 크기 계산이 일치하지 않아 경계 밖 쓰기가 발생할 수 있었다고 설명합니다. 수정은 해당 종류의 프레임 파싱을 건너뜁니다. 할당 크기 계산에서 제외한 입력을 뒤의 파서가 처리하도록 두면, 길이 하나를 검사했다고 해서 전체 쓰기 범위가 보장되지는 않습니다.

Ubuntu CVE 원인·수정 기록

연구자가 체인을 보였다고 모든 장비가 영향을 받는 것은 아닙니다

NCC Group의 DEF CON 34 발표 소개는 CVE-2024-53104와 별도의 정보 노출 결함 CVE-2025-38494를 연결한 USB 연구를 설명합니다. 이는 연구진에게 귀속한 결과입니다. 공개 소개만으로 모든 Ubuntu 커널·모든 USB 카메라에서 같은 체인이 성립한다고 판단하지 않습니다.

여기서는 공식 발표 소개와 CVE·커널 문서의 범위를 다룹니다. 백서 전체, 슬라이드 전체와 시연 영상을 직접 검증하거나 공격을 재현한 글이 아닙니다. 공격 페이로드나 장치 제작 절차는 제시하지 않습니다.

NCC Group 공식 발표 소개

실행 중인 커널과 USB 승인 정책을 각각 확인합니다

먼저 설치된 커널 패키지와 실제 실행 중인 커널을 확인하고, 공급자의 해당 릴리스·패키지 공지에서 수정 상태를 대조합니다. 배포판 이름이나 상위 버전 숫자만으로 판정하지 않습니다. 업데이트 뒤에도 수정된 커널이 실제로 실행 중인지 확인해야 합니다.

Linux USB 승인 문서는 장치와 인터페이스의 허용 상태 및 기본 정책을 구분합니다. 승인 정책은 신뢰하지 않는 장치의 노출을 줄일 수 있지만, 그렇다고 커널 패치가 필요 없어지는 것은 아닙니다. 장치가 스스로 적은 클래스·유형·프로토콜만 신뢰 대상으로 삼아서도 안 됩니다. 운영 장비에 정책을 적용하기 전에는 필요한 입력 장치와 복구 경로가 남는지 검토합니다.

Linux USB 장치·인터페이스 승인