CVE-2026-68213 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 11.

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

media: rtl2832_sdr: start_streaming() 실패 시 큐에 쌓인 버퍼 반환

vb2 프레임워크는 start_streaming() 호출 전에 buf_queue()를 통해 드라이버로 버퍼를 전달합니다. 만약 start_streaming()이 vb2_buffer_done()을 통해 해당 버퍼들을 먼저 반환하지 않고 오류를 리턴하면, vb2_start_streaming()은 WARN_ON(owned_by_drv_count)를 발생시키고 큐에 쌓인 버퍼가 누설됩니다.

rtl2832_sdr_start_streaming()에는 이 함정에 빠지는 여러 가지 에러 경로들이 있었습니다: 두 개의 직접적인 조기 반환(-ENODEV, -ERESTARTSYS), 그리고 서브디바이스 s_power, 튜너 설정, ADC 설정, 스트림 버퍼 할당, urb 할당 및urb 제출 실패를 처리하는 여섯 개의 `goto err` 경로가 있습니다. 이 중 어느 것도 큐에 쌓인 버퍼들을 반환하지 않았습니다.

기존 함수에는 명확한 성공 종료 지점이 없었으며, 에러 라벨로 바로 떨어졌습니다. 이전의 에러 라벨은 단순히 mutex_unlock과 "return ret"만 수행했습니다. 따라서 err에서 큐 버퍼 정리 작업을 추가하려면 명시적인 성공 리턴도 함께 추가해야 합니다; 그렇지 않으면 모든 성공적인 시작 시에도 버퍼 큐가 비워지고 스트리밍이 중단됩니다. 해당 성공 리턴을 추가한 후, rtl2832_sdr_cleanup_queued_bufs()를 err 라벨과 각 조기 반환 전에 추가합니다.

정리 헬퍼 함수는 vb2_buffer_state 인수를 받음으로써, start_streaming 에러 경로에서 VB2_BUF_STATE_QUEUED(사용자 공간이 start_streaming 실패 시 기대하는 상태)를 전달할 수 있게 하고, stop_streaming은 기존 VB2_BUF_STATE_ERROR 세미antics을 유지합니다.

이는 커밋 4cf3b6fd54eb("media: uvcvideo: Return queued buffers on start_streaming() failure")의 uvcvideo 수정 사항을 반영한 것입니다.

에러 라벨에서는 여전히 실패하는 단계 이전에 발생했을 수 있는 power_ctrl(), frontend_ctrl(), POWER_ON 플래그, 스트림/URB 할당 등을 롤백하지 않습니다. 이러한 항목들은 서로 다른 클래스에 속하는 기존 누설이며, 여기서는 다루지 않습니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

출처

Do you know our Splunk app?

Download it now for free!