🇰🇷 한글 설명
Linux 커널의 kexec_load_purgatory() 함수에서 여러 실행 섹션이 겹칠 때 엔트리포인트 검사가 중복되어 경고가 발생하는 문제. purgatory_start 심볼을 통해 엔트리 섹션을 올바르게 파생시키도록 수정되었습니다.
💡 쉬운 설명
Linux 커널이 빠른 재부팅을 위해 사용하는 내부 모듈에서 시작점을 찾을 때 중복 검사 문제가 있었습니다. 올바른 시작점을 식별하는 방식을 개선하여 경고 메시지가 나오지 않도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
kexec: derive purgatory entry from symbol
kexec_load_purgatory() derives image->start by locating e_entry inside an
SHF_EXECINSTR section. If the purgatory object contains multiple
executable sections with overlapping sh_addr, the entrypoint check can
match more than once and trigger a WARN.
Derive the entry section from the purgatory_start symbol when present and
compute image->start from its final placement. Keep the existing e_entry
fallback for purgatories that do not expose the symbol.
WARNING: kernel/kexec_file.c:1009 at kexec_load_purgatory+0x395/0x3c0, CPU#10: kexec/1784
Call Trace:
<TASK>
bzImage64_load+0x133/0xa00
__do_sys_kexec_file_load+0x2b3/0x5c0
do_syscall_64+0x81/0x610
entry_SYSCALL_64_after_hwframe+0x76/0x7e
[
[email protected]: move helper to avoid forward declaration, per Baoquan]
📍 영향받는 시스템
kexec 기능을 사용하는 모든 Linux 시스템 (특히 여러 실행 섹션이 있는 purgatory 오브젝트)
⚔️ 공격 벡터
로컬 시스템 접근 권한이 있는 사용자가 kexec_file_load 시스템 콜을 통해 트리거
🛡️ 대응 방법
최신 Linux 커널로 업그레이드하거나 배포판 보안 업데이트 적용
🔧 검증 코드
kexec 패키지 설치 상태 확인. 결과가 없으면 kexec 미설치 (영향 없음). 설치되어 있으면 버전으로 최신 보안 업데이트 확인
dpkg -l 2>/dev/null | grep -E 'kexec' || rpm -qa 2>/dev/null | grep -i kexec || echo 'Not installed'