🇰🇷 한글 설명
Linux 커널의 v4l2-tpg 모듈에서 tpg_alloc 함수의 에러 처리 경로에서 할당된 자원이 제대로 해제되지 않아 메모리 누수가 발생합니다. tpg_free는 tpg_alloc이 성공할 때만 호출되므로, for 루프 내 할당 실패 시 이전에 할당된 자원이 누수됩니다.
💡 쉬운 설명
비디오 처리 드라이버에서 메모리 할당 실패 시 이미 할당된 메모리를 정리하지 않는 버그입니다. 반복되면 시스템의 사용 가능한 메모리가 점점 줄어들어 결국 시스템이 응답 불능 상태가 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: v4l2-tpg: fix some memleaks in tpg_alloc
In tpg_alloc, resources should be deallocated in each and every
error-handling paths, since they are allocated in for statements.
Otherwise there would be memleaks because tpg_free is called only when
tpg_alloc return 0.
📍 영향받는 시스템
Linux 커널 (v4l2-tpg 모듈을 포함한 5.x, 6.x 버전)
⚔️ 공격 벡터
로컬 공격자가 비디오 캡처/처리 장치를 반복적으로 초기화하여 메모리 누수 유발, 시스템 리소스 고갈 (DoS)
🛡️ 대응 방법
Linux 커널을 최신 버전으로 업데이트하거나 v4l2-tpg.c의 에러 처리 경로에 cleanup 코드 추가
🔧 검증 코드
커널 버전이 4.x 이상인지, 메모리 총량이 표시되는지, v4l2 모듈이 로드되었는지 확인합니다. 메모리가 비정상적으로 감소하면 누수가 발생 중인 것입니다.
uname -r | grep -E '^[456]\.' && cat /proc/sys/vm/memtotal && lsmod | grep v4l2