CVE-2021-47262 in Linux
요약
\~에 의해 VulDB • 2026. 06. 30.
리눅스 커널에서 다음 취약점이 해결되었습니다:
KVM: x86: 중첩 VM-Enter 실패 tracepoint 메시지의 수명(liveliness) 보장
"중첩 VM-Enter 실패(nested VM-Enter failed)" tracepoint이 소비하는 문자열 리터럴의 복사본을 생성하기 위해 tracing 서브시스템에서 제공하는 __string() 메커니즘을 사용합니다. 완전한 복사본은 tracepoint가 자신이 참조하는 데이터/메모리보다 오래 생존하여 stale(낡은) 메모리를 역참조(dereference)하지 않도록 보장하는 데 필요합니다.
tracepoint 자체는 kvm에 의해 정의되므로, kvm-intel 및/또는 kvm-amd가 모듈로 빌드된 경우 벤더 모듈에서 정의한 문자열 리터럴을 보유하는 메모리는 해당 모듈이 언로드될 때 해제됩니다. 반면 tracepoint와 링 버퍼 내의 데이터는 kvm이 언로드될 때까지(또는 kvm이 인라인으로 빌드된 경우 "무기한") 생존합니다.
이 버그는 tracepoint가 추가되었을 때부터 존재했지만, 최근 tracing에서 정확히 이러한 유형의 버그를 감지하기 위한 새로운 체크 기능이 도입되면서 드러나게 되었습니다.
fmt: '%s%s ' current_buffer: ' vmx_dirty_log_t-140127 [003] .... kvm_nested_vmenter_failed: '
WARNING: CPU: 3 PID: 140134 at kernel/trace/trace.c:3759 trace_check_vprintf+0x3be/0x3e0 CPU: 3 PID: 140134 Comm: less Not tainted 5.13.0-rc1-ce2e73ce600a-req #184 Hardware name: ASUS Q87M-E/Q87M-E, BIOS 1102 03/03/2014 RIP: 0010:trace_check_vprintf+0x3be/0x3e0 Code: 0b 44 8b 4c 24 1c e9 a9 fe ff ff c6 44 02 ff 00 49 8b 97 b0 20 RSP: 0018:ffffa895cc37bcb0 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffffa895cc37bd08 RCX: 0000000000000027 RDX: 00000000000
If you want to get best quality of vulnerability data, you may have to visit VulDB.