🔍 CVE-2025-39994

7.3
CVSS Score
HIGH
2025-10-15
2026-10-19 21:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 xc5000 튜너 드라이버에서 xc5000_release 함수 호출 시 발생하는 Use-After-Free 취약점입니다. cancel_delayed_work()가 지연된 작업의 완전한 종료를 보장하지 않아, 메모리가 해제된 후에도 타이머 작업이 해당 메모리에 접근하여 시스템 불안정이나 보안 문제를 일으킬 수 있습니다.

💡 쉬운 설명

장치를 해제하는 과정에서 작업이 완전히 끝나기도 전에 메모리를 먼저 지워버려 발생하는 오류입니다. 이로 인해 컴퓨터가 갑자기 멈추거나 해킹에 취약해질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: media: tuner: xc5000: Fix use-after-free in xc5000_release The original code uses cancel_delayed_work() in xc5000_release(), which does not guarantee that the delayed work item timer_sleep has fully completed if it was already running. This leads to use-after-free scenarios where xc5000_release() may free the xc5000_priv while timer_sleep is still active and attempts to dereference the xc5000_priv. A typical race condition is illustrated below: CPU 0 (release thread) | CPU 1 (delayed work callback) xc5000_release() | xc5000_do_timer_sleep() cancel_delayed_work() | hybrid_tuner_release_state(priv) | kfree(priv) | | priv = container_of() // UAF Replace cancel_delayed_work() with cancel_delayed_work_sync() to ensure that the timer_sleep is properly canceled before the xc5000_priv memory is deallocated. A deadlock concern was considered: xc5000_release() is called in a process context and is not holding any locks that the timer_sleep work item might also need. Therefore, the use of the _sync() variant is safe here. This bug was initially identified through static analysis. [hverkuil: fix typo in Subject: tunner -> tuner]

📍 영향받는 시스템

Linux kernel (media: tuner: xc5000 드라이버 포함 버전)

⚔️ 공격 벡터

로컬 공격자가 특정 하드웨어 드라이버의 리소스 해제 과정을 유도하여 메모리 오류를 발생시킴

🛡️ 대응 방법

cancel_delayed_work()를 cancel_delayed_work_sync()로 교체하여 작업 완료를 보장하도록 커널 패치 적용

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel