🇰🇷 한글 설명
Linux 커널의 perf/x86/amd/lbr 구성 요소에서 커널 주소가 유출되는 취약점이 발견되었습니다. AMD 프로세서에서 X86_FEATURE_AMD_LBR_V2를 사용하는 경우, 사용자 모드에서 성능 측정 도구를 사용할 때 커널 영역의 분기 주소가 노출될 수 있습니다. 이를 해결하기 위해 소프트웨어 필터링을 확장하여 커널 주소가 포함된 분기 기록을 차단하도록 수정되었습니다.
💡 쉬운 설명
컴퓨터의 성능을 측정하는 도구를 사용할 때, 원래는 보여주면 안 되는 운영체제 핵심 영역(커널)의 비밀 주소가 사용자에게 노출되는 문제입니다. 이 주소가 노출되면 해커가 시스템의 약점을 파악하는 데 악용될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
perf/x86/amd/lbr: Fix kernel address leakage
A user-only branch stack can contain branches that originate from
the kernel. As a result, kernel addresses are exposed to user space
even when PERF_SAMPLE_BRANCH_USER is requested. On AMD processors
supporting X86_FEATURE_AMD_LBR_V2, perf can still report SYSRET/ERET
entries for which the branch-from addresses are in the kernel.
E.g.
$ perf record -e cycles -o - -j any,save_type,u -- \
perf bench syscall basic --loop 1000 | \
perf script -i - -F brstack|tr ' ' '\n'| \
grep -E '0x[89a-f][0-9a-f]{15}'
...
0xffffffff81001268/0x717a90a38f1a/M/-/-/0/ERET/NON_SPEC_CORRECT_PATH
0xffffffff81001268/0x717a90a39157/M/-/-/0/ERET/NON_SPEC_CORRECT_PATH
0xffffffff81001268/0x717a90a2c628/M/-/-/0/ERET/NON_SPEC_CORRECT_PATH
0xffffffff81001268/0x717a90a41b60/M/-/-/0/ERET/NON_SPEC_CORRECT_PATH
0xffffffff81001268/0x717a90a260db/M/-/-/0/ERET/NON_SPEC_CORRECT_PATH
0xffffffff81001268/0x717a90a260db/M/-/-/0/ERET/NON_SPEC_CORRECT_PATH
0xffffffff81001268/0x717a8bef1c30/M/-/-/0/ERET/NON_SPEC_CORRECT_PATH
0xffffffff81001268/0x717a8e4d3c90/M/-/-/0/ERET/NON_SPEC_CORRECT_PATH
...
The reason is that the hardware filter only considers the privilege
level applicable to the branch target. Extend software filtering to
also validate the branch-from addresses against br_sel, so that any
branch record whose branch-from address is in the kernel is dropped
when PERF_SAMPLE_BRANCH_USER is requested.
📍 영향받는 시스템
X86_FEATURE_AMD_LBR_V2를 지원하는 AMD 프로세서를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
사용자 권한으로 perf 도구를 사용하여 커널 메모리 주소를 획득하는 정보 유출 공격
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 배포판의 보안 업데이트 버전인지 확인하십시오.