🔍 CVE-2026-46196

5.5
CVSS Score
MEDIUM
2026-05-28
2026-11-06 17:17
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 tracepoint_add_func() 함수에서 프로브 설치 실패 시 등록 함수(regfunc)의 부작용을 정리하지 않는 결함이 있습니다. 이로 인해 시스템 호출 오버헤드가 영구적으로 발생하거나 참조 카운트가 누수되는 문제가 발생합니다.

💡 쉬운 설명

시스템 모니터링 기능을 설정하는 과정에서 오류가 발생하면, 설정된 상태가 초기화되지 않고 그대로 남는 버그입니다. 이로 인해 시스템 성능이 저하되거나 메모리 관련 문제가 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: tracepoint: balance regfunc() on func_add() failure in tracepoint_add_func() When a tracepoint goes through the 0 -> 1 transition, tracepoint_add_func() invokes the subsystem's ext->regfunc() before attempting to install the new probe via func_add(). If func_add() then fails (for example, when allocate_probes() cannot allocate a new probe array under memory pressure and returns -ENOMEM), the function returns the error without calling the matching ext->unregfunc(), leaving the side effects of regfunc() behind with no installed probe to justify them. For syscall tracepoints this is particularly unpleasant: syscall_regfunc() bumps sys_tracepoint_refcount and sets SYSCALL_TRACEPOINT on every task. After a leaked failure, the refcount is stuck at a non-zero value with no consumer, and every task continues paying the syscall trace entry/exit overhead until reboot. Other subsystems providing regfunc()/unregfunc() pairs exhibit similarly scoped persistent state. Mirror the existing 1 -> 0 cleanup and call ext->unregfunc() in the func_add() error path, gated on the same condition used there so the unwind is symmetric with the registration.

📍 영향받는 시스템

Linux Kernel (tracepoint subsystem)

⚔️ 공격 벡터

메모리 부족 상황에서의 tracepoint 등록 실패를 유발하여 시스템 상태 불일치를 초래

🛡️ 대응 방법

리눅스 커널 최신 버전으로 업데이트하여 패치 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 최신 안정 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel