🇰🇷 한글 설명
Linux 커널의 x86 relocs에서 CONFIG_XEN_PV=y로 빌드된 경우 .notes 섹션에 대한 relocations을 수행하여 KASLR 베이스 주소가 /sys/kernel/notes를 통해 world-readable로 노출되는 정보 공개 취약점. relocs 처리 시 .notes 섹션을 제외함으로써 해결됨.
💡 쉬운 설명
Linux 커널의 메모리 보안 기능(KASLR)의 기본값이 누구나 읽을 수 있는 파일을 통해 노출될 수 있는 문제입니다. 이를 통해 공격자가 커널의 실제 메모리 위치를 파악하고 더 정교한 공격을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
x86, relocs: Ignore relocations in .notes section
When building with CONFIG_XEN_PV=y, .text symbols are emitted into
the .notes section so that Xen can find the "startup_xen" entry point.
This information is used prior to booting the kernel, so relocations
are not useful. In fact, performing relocations against the .notes
section means that the KASLR base is exposed since /sys/kernel/notes
is world-readable.
To avoid leaking the KASLR base without breaking unprivileged tools that
are expecting to read /sys/kernel/notes, skip performing relocations in
the .notes section. The values readable in .notes are then identical to
those found in System.map.
📍 영향받는 시스템
Linux kernel with CONFIG_XEN_PV=y (Xen PV 지원이 활성화된 커널 빌드)
⚔️ 공격 벡터
root 권한 없이 /sys/kernel/notes 파일을 읽어서 KASLR 베이스 주소 정보 추출
🛡️ 대응 방법
Linux kernel 패치 적용 (relocs 섹션에서 .notes 섹션의 relocations을 건너뛰는 코드 변경)
🔧 검증 코드
CONFIG_XEN_PV=y가 표시되면 Xen PV가 활성화되어 있으며, 커널 버전(uname -r)을 확인하여 해당 패치가 포함된 버전 이상인지 검증해야 합니다.
grep CONFIG_XEN_PV /boot/config-$(uname -r) 2>/dev/null | head -1