🔍 CVE-2026-43236

7.8
CVSS Score
HIGH
2026-05-06
2026-05-12 18:59
✅ 완료

🇰🇷 한글 설명

Linux 커널의 atmel-hlcdc DRM 드라이버에서 평면 상태 복제 시 drm_crtc_commit 포인터가 제대로 처리되지 않아 발생하는 use-after-free 취약점입니다. 이로 인해 다음 원자적 커밋 작업 시 이미 해제된 메모리에 접근하여 시스템 패닉이나 메모리 손상이 발생할 수 있습니다.

💡 쉬운 설명

Linux에서 디스플레이 드라이버가 설정을 저장할 때 오래된 메모리 주소를 참조하게 되어 이미 해제된 메모리에 접근하는 문제입니다. 이로 인해 시스템이 불안정해지거나 충돌할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: drm/atmel-hlcdc: fix use-after-free of drm_crtc_commit after release The atmel_hlcdc_plane_atomic_duplicate_state() callback was copying the atmel_hlcdc_plane state structure without properly duplicating the drm_plane_state. In particular, state->commit remained set to the old state commit, which can lead to a use-after-free in the next drm_atomic_commit() call. Fix this by calling __drm_atomic_helper_duplicate_plane_state(), which correctly clones the base drm_plane_state (including the ->commit pointer). It has been seen when closing and re-opening the device node while another DRM client (e.g. fbdev) is still attached: ============================================================================= BUG kmalloc-64 (Not tainted): Poison overwritten ----------------------------------------------------------------------------- 0xc611b344-0xc611b344 @offset=836. First byte 0x6a instead of 0x6b FIX kmalloc-64: Restoring Poison 0xc611b344-0xc611b344=0x6b Allocated in drm_atomic_helper_setup_commit+0x1e8/0x7bc age=178 cpu=0 pid=29 drm_atomic_helper_setup_commit+0x1e8/0x7bc drm_atomic_helper_commit+0x3c/0x15c drm_atomic_commit+0xc0/0xf4 drm_framebuffer_remove+0x4cc/0x5a8 drm_mode_rmfb_work_fn+0x6c/0x80 process_one_work+0x12c/0x2cc worker_thread+0x2a8/0x400 kthread+0xc0/0xdc ret_from_fork+0x14/0x28 Freed in drm_atomic_helper_commit_hw_done+0x100/0x150 age=8 cpu=0 pid=169 drm_atomic_helper_commit_hw_done+0x100/0x150 drm_atomic_helper_commit_tail+0x64/0x8c commit_tail+0x168/0x18c drm_atomic_helper_commit+0x138/0x15c drm_atomic_commit+0xc0/0xf4 drm_atomic_helper_set_config+0x84/0xb8 drm_mode_setcrtc+0x32c/0x810 drm_ioctl+0x20c/0x488 sys_ioctl+0x14c/0xc20 ret_fast_syscall+0x0/0x54 Slab 0xef8bc360 objects=21 used=16 fp=0xc611b7c0 flags=0x200(workingset|zone=0) Object 0xc611b340 @offset=832 fp=0xc611b7c0

📍 영향받는 시스템

Linux kernel with CONFIG_DRM_ATMEL_HLCDC enabled (Atmel HLCDC DRM driver 사용 시스템)

⚔️ 공격 벡터

로컬 공격자가 디바이스 노드를 반복적으로 열고 닫으면서 다른 DRM 클라이언트(fbdev 등)가 활성화된 상태에서 메모리 손상을 유발

🛡️ 대응 방법

Linux 커널을 패치된 최신 버전으로 업데이트하여 __drm_atomic_helper_duplicate_plane_state() 함수를 사용하는 수정된 드라이버 코드 적용

🔧 검증 코드

y 또는 m이 출력되면 해당 시스템에서 Atmel HLCDC 드라이버가 활성화되어 있으므로 커널 버전 확인 후 패치 적용 필요

Shell / Script
grep -i CONFIG_DRM_ATMEL_HLCDC /boot/config-$(uname -r) 2>/dev/null | grep -E 'y|m'

📊 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