🇰🇷 한글 설명
Linux 커널의 meson vdec 드라이버에서 vdec_open() 함수 호출 중 오류가 발생할 경우 m2m 컨텍스트를 해제하지 않고 건너뛰는 메모리 누수 취약점이 발견되었습니다. 이로 인해 특정 에러 경로에서 시스템 자원이 적절히 반환되지 않고 누적될 수 있습니다.
💡 쉬운 설명
프로그램이 실행 중에 오류가 나면 사용하던 메모리를 돌려줘야 하는데, 이 과정이 생략되어 메모리가 계속 쌓이는 문제입니다. 이 현상이 반복되면 시스템의 메모리가 부족해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: meson: vdec: Fix memory leak in error path of vdec_open
The vdec_open() function previously jumped directly to
err_m2m_release when vdec_init_ctrls() failed, skipping
release of the m2m context. This caused a resource leak.
Fix it by introducing a proper err_m2m_ctx_release label
that calls v4l2_m2m_ctx_release(sess->m2m_ctx) before
releasing the m2m device.
This was identified via kmemleak:
unreferenced object 0xffff0000205d6878 (size 8):
comm "v4l_id", pid 5289, jiffies 4294938580
hex dump (first 8 bytes):
40 d2 49 18 00 00 ff ff @.I.....
backtrace (crc d3204599):
kmemleak_alloc+0xc8/0xf0
__kvmalloc_node_noprof+0x60c/0x850
v4l2_ctrl_handler_init_class+0x1b4/0x2e8 [videodev]
vdec_open+0x1f4/0x788 [meson_vdec]
v4l2_open+0x144/0x460 [videodev]
chrdev_open+0x1ac/0x500
do_dentry_open+0x3f0/0xfe8
vfs_open+0x68/0x320
do_open+0x2d8/0x9a8
path_openat+0x1d0/0x4f0
do_filp_open+0x190/0x380
do_sys_openat2+0xf8/0x1b0
__arm64_sys_openat+0x13c/0x1e8
invoke_syscall+0xdc/0x268
el0_svc_common.constprop.0+0x178/0x258
do_el0_svc+0x4c/0x70
📍 영향받는 시스템
Linux kernel (meson vdec driver component)
⚔️ 공격 벡터
로컬 사용자가 특정 에러를 유발하는 시스템 호출을 반복하여 메모리 자원을 고갈시키는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 vdec_open()의 에러 처리 로직을 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.