🇰🇷 한글 설명
Linux 커널의 tracing 서브시스템에서 __register_event()의 반환 값을 확인하지 않아 발생하는 취약점입니다. 이벤트 등록에 실패하더라도 __add_event_to_tracers()를 무조건 호출함으로써, 모듈 로딩 실패 시 해제된 메모리를 참조하는 Use-After-Free(UAF) 오류가 발생할 수 있습니다.
💡 쉬운 설명
프로그램이 어떤 기능을 등록하다가 실패했는데도, 마치 성공한 것처럼 계속 진행하려다 이미 삭제된 메모리 영역을 건드려 시스템 오류를 일으키는 문제입니다. 이 과정에서 해커가 시스템 권한을 탈취하거나 시스템을 중단시킬 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tracing: Check return value of __register_event() in trace_module_add_events()
trace_module_add_events() ignores the return value of __register_event()
and unconditionally calls __add_event_to_tracers() for each event.
If __register_event() fails (for example, if event_init() fails), the
trace_event_call is not added to ftrace_events list, but
__add_event_to_tracers() still creates a trace_event_file pointing to it.
If module loading subsequently fails and module memory is freed, tracing
state retains a stale trace_event_call pointer in trace_event_file,
leading to a use-after-free when tracefs or tracing subsystem operations
are later executed.
Fix this by checking the return value of __register_event() and only
calling __add_event_to_tracers() if event registration succeeded.
📍 영향받는 시스템
Linux Kernel (tracing 서브시스템을 사용하는 버전)
⚔️ 공격 벡터
특정 모듈 로딩 실패를 유도하여 tracefs 또는 tracing 서브시스템 조작을 통해 메모리 오류 유발
🛡️ 대응 방법
커널 패치를 통해 __register_event()의 반환 값을 확인하고 성공 시에만 이벤트를 추가하도록 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인
📊 CVSS Vector String
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
NVIDIA Cloud Gaming Guest Driver for Linux