🔍 CVE-2022-48945

7.8
CVSS Score
HIGH
2024-09-23
2026-08-04 10:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 vivid 미디어 드라이버에서 compose 크기가 경계를 초과할 수 있는 취약점이 발견되었습니다. V4L2_SEL_TGT_CROP 케이스 처리 시 높이 조절 후 경계 검사를 누락하여 메모리 오류가 발생합니다.

💡 쉬운 설명

동영상 관련 기능을 처리하는 과정에서 데이터 크기가 정해진 메모리 범위를 벗어나 시스템이 멈추거나 오류가 발생할 수 있는 문제입니다. 이는 잘못된 메모리 접근으로 인해 시스템 안정성을 해칠 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: media: vivid: fix compose size exceed boundary syzkaller found a bug: BUG: unable to handle page fault for address: ffffc9000a3b1000 #PF: supervisor write access in kernel mode #PF: error_code(0x0002) - not-present page PGD 100000067 P4D 100000067 PUD 10015f067 PMD 1121ca067 PTE 0 Oops: 0002 [#1] PREEMPT SMP CPU: 0 PID: 23489 Comm: vivid-000-vid-c Not tainted 6.1.0-rc1+ #512 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: 0010:memcpy_erms+0x6/0x10 [...] Call Trace: <TASK> ? tpg_fill_plane_buffer+0x856/0x15b0 vivid_fillbuff+0x8ac/0x1110 vivid_thread_vid_cap_tick+0x361/0xc90 vivid_thread_vid_cap+0x21a/0x3a0 kthread+0x143/0x180 ret_from_fork+0x1f/0x30 </TASK> This is because we forget to check boundary after adjust compose->height int V4L2_SEL_TGT_CROP case. Add v4l2_rect_map_inside() to fix this problem for this case.

📍 영향받는 시스템

Linux kernel (vivid driver 사용 환경, 특히 6.1.0-rc1 이전 버전)

⚔️ 공격 벡터

조작된 V4L2 크롭(crop) 설정을 통해 커널 메모리 경계를 초과하는 데이터 복사를 유도

🛡️ 대응 방법

v4l2_rect_map_inside() 함수를 사용하여 경계 검사 로직이 포함된 최신 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 취약점이 수정된 버전(v4l2_rect_map_inside 적용 버전)인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel