🔍 CVE-2017-1000255

5.5
CVSS Score
MEDIUM
2017-10-30
2026-05-13 00:24
✅ 완료

🇰🇷 한글 설명

Linux PowerPC (Power8 이상)에서 사용자 프로세스가 신호 프레임을 조작하여 커널이 공격자 제어 스택 포인터를 사용하도록 강제할 수 있습니다. 예외 처리 중 신호 프레임 내용이 커널 스택에 쓰여지면서 임의의 메모리 위치를 임의 값으로 덮어쓸 수 있게 됩니다.

💡 쉬운 설명

PowerPC Linux에서 특수한 신호를 만들어 커널의 메모리 보호를 우회할 수 있습니다. 이를 통해 공격자가 커널 메모리를 조작하여 시스템 제어 권한을 얻을 수 있습니다.

🇺🇸 원문 (English)

On Linux running on PowerPC hardware (Power8 or later) a user process can craft a signal frame and then do a sigreturn so that the kernel will take an exception (interrupt), and use the r1 value *from the signal frame* as the kernel stack pointer. As part of the exception entry the content of the signal frame is written to the kernel stack, allowing an attacker to overwrite arbitrary locations with arbitrary values. The exception handling does produce an oops, and a panic if panic_on_oops=1, but only after kernel memory has been over written. This flaw was introduced in commit: "5d176f751ee3 (powerpc: tm: Enable transactional memory (TM) lazily for userspace)" which was merged upstream into v4.9-rc1. Please note that kernels built with CONFIG_PPC_TRANSACTIONAL_MEM=n are not vulnerable.

📍 영향받는 시스템

Linux v4.9-rc1 이후의 PowerPC (Power8/Power9 이상) 기반 시스템 (CONFIG_PPC_TRANSACTIONAL_MEM=y 설정)

⚔️ 공격 벡터

신호 프레임 조작 및 sigreturn 시스템 호출을 통해 커널 스택 포인터를 제어하고 메모리 덮어쓰기 실행

🛡️ 대응 방법

최신 보안 패치가 적용된 커널로 업그레이드하거나 CONFIG_PPC_TRANSACTIONAL_MEM을 비활성화하여 재컴파일

🔧 검증 코드

ppc64 또는 ppc64le가 출력되고 CONFIG_PPC_TRANSACTIONAL_MEM=y이면 취약하며, 커널 버전이 4.9 이상인 경우 패치 확인 필요

Shell / Script
uname -m | grep -i power && cat /boot/config-$(uname -r) 2>/dev/null | grep CONFIG_PPC_TRANSACTIONAL_MEM

📊 CVSS Vector String

CVSS Vector
CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N

💻 영향받는 소프트웨어

Linux Kernel