🇰🇷 한글 설명
Linux 커널의 sun4i-csi 드라이버에서 start_streaming() 함수가 오류를 반환할 때 큐에 대기 중인 버퍼를 제대로 반환하지 않아 메모리 누수가 발생하는 취약점입니다. 적절한 에러 처리 경로를 통해 버퍼가 누수되지 않도록 수정되었습니다.
💡 쉬운 설명
카메라 관련 장치를 작동시키려다 오류가 발생하면, 사용하던 메모리 공간을 시스템에 돌려주지 않고 계속 붙잡고 있는 문제가 있었습니다. 이로 인해 시스템의 메모리가 조금씩 낭비될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: sun4i-csi: Return queued buffers on start_streaming() failure
The vb2 framework hands buffers to the driver via buf_queue() before
calling start_streaming(). If start_streaming() returns an error
without first returning those buffers via vb2_buffer_done(),
vb2_start_streaming() fires WARN_ON(owned_by_drv_count) and the queued
buffers leak.
sun4i_csi_start_streaming() returned -EINVAL when no matching CSI
format could be found, before any setup (scratch buffer allocation,
pipeline start) had been performed. The remaining error paths already
converge on the err_clear_dma_queue label, which calls
return_all_buffers(..., VB2_BUF_STATE_QUEUED) under csi->qlock. Jump
to that label directly: the intermediate err_disable_device /
err_disable_pipeline / err_free_scratch_buffer labels are skipped,
which is correct because nothing they would undo has happened yet.
This mirrors the uvcvideo fix in commit 4cf3b6fd54eb ("media: uvcvideo:
Return queued buffers on start_streaming() failure").
📍 영향받는 시스템
Linux kernel (sun4i-csi 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
로컬 공격자가 특정 CSI 포맷을 지원하지 않는 설정을 유도하여 메모리 누수를 발생시킬 수 있음
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.
📊 CVSS Vector String
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux