🇰🇷 한글 설명
Linux 커널의 perf 이벤트 처리 과정에서 text-poke 관련 기록이 커널 권한 없이도 노출되는 취약점입니다. 비특권 사용자가 text-poke 이벤트를 통해 커널의 실제 실행 주소를 획득할 수 있어 KASLR(커널 주소 공간 레이아웃 임의화) 보안 메커니즘을 무력화할 수 있습니다.
💡 쉬운 설명
해커가 일반 사용자 권한만으로도 컴퓨터의 핵심 보안 장벽인 커널의 숨겨진 위치를 알아낼 수 있는 결함입니다. 이 정보가 유출되면 시스템의 다른 보안 구멍을 뚫기가 훨씬 쉬워집니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
perf: Require kernel access for text poke events
Perf events with exclude_kernel=1 can be opened without kernel perf
access. However, exclude_kernel does not suppress text-poke sideband
records. Every PERF_RECORD_TEXT_POKE is marked PERF_RECORD_MISC_KERNEL
and contains a raw kernel instruction address.
An unprivileged task can therefore open and mmap a task-local software
event with text_poke=1. Both opening a count-only tracepoint event and
configuring UDP GRO for ESP-in-UDP cause updates to inline static calls;
the observer receives the relocated addresses of the modified instructions.
For a known kernel image, any such address reveals the runtime kernel
text base despite KASLR.
Call perf_allow_kernel() whenever attr.text_poke is set, regardless of
exclude_kernel. Events that neither monitor kernel execution nor request
text-poke records retain their existing permissions.
📍 영향받는 시스템
text-poke 관련 perf 이벤트를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
비특권 사용자가 text_poke=1 옵션이 설정된 perf 이벤트를 열고 mmap을 통해 커널의 실행 주소 정보를 획득
🛡️ 대응 방법
text_poke 속성이 설정된 경우 exclude_kernel 설정과 관계없이 커널 권한을 요구하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인