🇰🇷 한글 설명
Linux 커널의 powerpc64/ftrace 아키텍처에서 livepatching 과정 중 r15 레지스터가 복구되지 않는 취약점이 발견되었습니다. 이로 인해 잘못된 메모리 주소에 접근하려는 시도가 발생하여 커널 패닉(Kernel Oops) 및 시스템 충돌이 발생할 수 있습니다.
💡 쉬운 설명
시스템을 업데이트하는 과정에서 중요한 데이터가 담긴 임시 저장 공간(r15 레지스터)이 제대로 복구되지 않아 컴퓨터가 갑자기 멈추거나 오류를 일으키는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
powerpc64/ftrace: fix clobbered r15 during livepatching
While r15 is clobbered always with PPC_FTRACE_OUT_OF_LINE, it is
not restored in livepatch sequence leading to not so obvious fails
like below:
BUG: Unable to handle kernel data access on write at 0xc0000000000f9078
Faulting instruction address: 0xc0000000018ff958
Oops: Kernel access of bad area, sig: 11 [#1]
...
NIP: c0000000018ff958 LR: c0000000018ff930 CTR: c0000000009c0790
REGS: c00000005f2e7790 TRAP: 0300 Tainted: G K (6.14.0+)
MSR: 8000000000009033 <SF,EE,ME,IR,DR,RI,LE> CR: 2822880b XER: 20040000
CFAR: c0000000008addc0 DAR: c0000000000f9078 DSISR: 0a000000 IRQMASK: 1
GPR00: c0000000018f2584 c00000005f2e7a30 c00000000280a900 c000000017ffa488
GPR04: 0000000000000008 0000000000000000 c0000000018f24fc 000000000000000d
GPR08: fffffffffffe0000 000000000000000d 0000000000000000 0000000000008000
GPR12: c0000000009c0790 c000000017ffa480 c00000005f2e7c78 c0000000000f9070
GPR16: c00000005f2e7c90 0000000000000000 0000000000000000 0000000000000000
GPR20: 0000000000000000 c00000005f3efa80 c00000005f2e7c60 c00000005f2e7c88
GPR24: c00000005f2e7c60 0000000000000001 c0000000000f9078 0000000000000000
GPR28: 00007fff97960000 c000000017ffa480 0000000000000000 c0000000000f9078
...
Call Trace:
check_heap_object+0x34/0x390 (unreliable)
__mutex_unlock_slowpath.isra.0+0xe4/0x230
seq_read_iter+0x430/0xa90
proc_reg_read_iter+0xa4/0x200
vfs_read+0x41c/0x510
ksys_read+0xa4/0x190
system_call_exception+0x1d0/0x440
system_call_vectored_common+0x15c/0x2ec
Fix it by restoring r15 always.
📍 영향받는 시스템
Linux kernel (powerpc64 architecture) using ftrace and livepatching
⚔️ 공격 벡터
Local/Remote (Triggering livepatching operations on affected powerpc64 systems)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 r15 레지스터 복구 로직을 적용해야 합니다.
🔧 검증 코드
출력 결과에 powerpc64 아키텍처가 포함되어 있는지 확인하여 해당 취약점 영향권 시스템인지 판단합니다.
uname -a | grep -i 'powerpc'