Cloudanix VulnDB

CVE-2017-1000255

Medium · 5.5

CVSS

5.5

EPSS

0.4%

Published

Oct 30, 2017

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in the Linux kernel on certain IBM Power servers lets a regular user damage the computer's core memory, which can cause crashes or let the user take full control of the machine.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Low
Impact
Privilege Gain
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Local user-controlled signal frame allows sigreturn to supply an attacker-chosen r1 value as the kernel stack pointer during exception entry on PowerPC, causing the kernel to write the signal frame contents into arbitrary kernel memory locations before any oops or panic occurs.

Why it matters to the business

On PowerPC servers running vulnerable kernels, a local attacker can corrupt kernel memory, leading to system instability, denial of service, or potential privilege escalation; the issue affects a subset of high-end enterprise and HPC systems.

How an attack unfolds

An attacker with local unprivileged access crafts a malicious signal frame containing a chosen kernel stack pointer, invokes sigreturn, forces an exception so the kernel uses the supplied r1 value, and the subsequent write of the signal frame overwrites kernel memory; the resulting oops occurs only after the corruption.

How to fix it

Upgrade to a Linux kernel version containing the fix for this transactional memory signal handling issue; alternatively rebuild with CONFIG_PPC_TRANSACTIONAL_MEM=n; apply all vendor-supplied PowerPC kernel updates.

How to confirm the fix worked

Verify kernel version is newer than the vulnerable commit range, confirm CONFIG_PPC_TRANSACTIONAL_MEM is disabled in the running kernel config, and test that crafted signal frames no longer produce memory corruption before an oops.

Typical attack path

  1. Obtain local shell as unprivileged user on affected PowerPC system
  2. Construct signal frame with attacker-controlled r1 value
  3. Execute sigreturn syscall to trigger exception path
  4. Kernel writes signal frame into attacker-chosen stack location
  5. Observe oops or continued execution with corrupted kernel state

How to detect it

Review dmesg, /var/log/kern.log and systemd journal for PowerPC oops or panic entries that reference signal frames, exception entry, or transactional memory shortly after user process activity; correlate with unusual local process terminations.

What your security team should do

  • Apply latest PowerPC kernel packages from the distribution vendor immediately
  • Restrict local user access on affected systems until patched
  • Add kernel oops monitoring for PowerPC signal-handling exceptions
  • Audit systems for the CONFIG_PPC_TRANSACTIONAL_MEM setting

The record

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.

Affected packages

Ecosystem Package Introduced Fixed
Chainguard hyperv-daemons 0 0
Chainguard hyperv-daemons-6.12 0 0
Chainguard hyperv-daemons-6.18 0 0
Chainguard hyperv-daemons-generic 0 0
Chainguard linux 0 0
Chainguard linux-aws-6.12 0 6.12.63-r0
Chainguard linux-aws-6.12 0 6.12.65-r0
Chainguard linux-aws-6.12-boot-installed 0 0
Chainguard linux-aws-6.12-fips-boot-installed 0 0
Chainguard linux-aws-6.12-headers 0 0
Chainguard linux-aws-6.12-modules 0 0
Chainguard linux-aws-6.18 0 6.18.4-r0
Chainguard linux-aws-6.18 0 6.18.5-r2
Chainguard linux-aws-6.18-boot-installed 0 0
Chainguard linux-aws-6.18-fips-boot-installed 0 0
Chainguard linux-aws-6.18-headers 0 0
Chainguard linux-aws-6.18-modules 0 0
Chainguard linux-aws-generic 0 6.18.3-r0
Chainguard linux-aws-generic 0 6.18.5-r0
Chainguard linux-aws-generic-boot-configuration 0 0
Chainguard linux-aws-generic-boot-installed 0 0
Chainguard linux-aws-generic-fips-boot-installed 0 0
Chainguard linux-aws-generic-headers 0 0
Chainguard linux-aws-generic-modules 0 0
Chainguard linux-azure-6.12 0 6.12.63-r0
Chainguard linux-azure-6.12 0 6.12.65-r1
Chainguard linux-azure-6.12-boot-installed 0 0
Chainguard linux-azure-6.12-fips-boot-installed 0 0
Chainguard linux-azure-6.12-headers 0 0
Chainguard linux-azure-6.12-modules 0 0
Chainguard linux-azure-6.18 0 0
Chainguard linux-azure-6.18-boot-installed 0 0
Chainguard linux-azure-6.18-fips-boot-installed 0 0
Chainguard linux-azure-6.18-headers 0 0
Chainguard linux-azure-6.18-modules 0 0
Chainguard linux-azure-generic 0 6.18.3-r0
Chainguard linux-azure-generic 0 6.18.5-r0
Chainguard linux-azure-generic-boot-configuration 0 0
Chainguard linux-azure-generic-boot-installed 0 0
Chainguard linux-azure-generic-fips-boot-installed 0 0
Chainguard linux-azure-generic-headers 0 0
Chainguard linux-azure-generic-modules 0 0
Chainguard linux-boot-configuration 0 0
Chainguard linux-boot-installed 0 0
Chainguard linux-gcp-6.12 0 6.12.63-r0
Chainguard linux-gcp-6.12 0 6.12.65-r0
Chainguard linux-gcp-6.12-boot-installed 0 0
Chainguard linux-gcp-6.12-fips-boot-installed 0 0
Chainguard linux-gcp-6.12-headers 0 0
Chainguard linux-gcp-6.12-modules 0 0
Chainguard linux-gcp-6.18 0 6.18.4-r0
Chainguard linux-gcp-6.18 0 6.18.5-r2
Chainguard linux-gcp-6.18-boot-installed 0 0
Chainguard linux-gcp-6.18-fips-boot-installed 0 0
Chainguard linux-gcp-6.18-headers 0 0
Chainguard linux-gcp-6.18-modules 0 0
Chainguard linux-gcp-generic 0 6.18.3-r0
Chainguard linux-gcp-generic 0 6.18.5-r0
Chainguard linux-gcp-generic-boot-installed 0 0
Chainguard linux-gcp-generic-fips-boot-installed 0 0
Chainguard linux-gcp-generic-headers 0 0
Chainguard linux-gcp-generic-modules 0 0
Chainguard linux-modules 0 0
Chainguard linux-qemu-6.12 0 6.12.65-r2
Chainguard linux-qemu-6.12-boot-installed 0 6.12.63-r0
Chainguard linux-qemu-6.12-fips-boot-installed 0 6.12.63-r0
Chainguard linux-qemu-6.12-headers 0 6.12.63-r0
Chainguard linux-qemu-6.12-modules 0 6.12.63-r0
Chainguard linux-qemu-6.18 0 6.18.5-r2
Chainguard linux-qemu-6.18-boot-installed 0 6.18.2-r0
Chainguard linux-qemu-6.18-fips-boot-installed 0 6.18.2-r0
Chainguard linux-qemu-6.18-headers 0 6.18.2-r0
Chainguard linux-qemu-6.18-modules 0 6.18.2-r0
Chainguard linux-qemu-generic 0 6.18.3-r0
Chainguard linux-qemu-generic 0 6.18.5-r0
Chainguard linux-qemu-generic-boot-installed 0 0
Chainguard linux-qemu-generic-bootc-boot-installed 0 6.18.4-r0
Chainguard linux-qemu-generic-bootc-boot-installed 0 6.18.5-r0
Chainguard linux-qemu-generic-fips-boot-installed 0 0
Chainguard linux-qemu-generic-headers 0 0
Chainguard linux-qemu-generic-modules 0 0
Chainguard linux-qemu-rc 0 6.19_rc4-r0
Chainguard linux-qemu-rc 0 6.19_rc5-r0
Chainguard linux-qemu-rc-boot-installed 0 0
Chainguard linux-qemu-rc-fips-boot-installed 0 0
Chainguard linux-qemu-rc-headers 0 0
Chainguard linux-qemu-rc-modules 0 0
Chainguard linux-vmware-6.12 0 6.12.65-r2
Chainguard linux-vmware-6.12-boot-installed 0 6.12.63-r0
Chainguard linux-vmware-6.12-fips-boot-installed 0 6.12.63-r0
Chainguard linux-vmware-6.12-headers 0 6.12.63-r0
Chainguard linux-vmware-6.12-modules 0 6.12.63-r0
Chainguard linux-vmware-6.18 0 6.18.5-r2
Chainguard linux-vmware-6.18-boot-installed 0 6.18.2-r0
Chainguard linux-vmware-6.18-fips-boot-installed 0 6.18.2-r0
Chainguard linux-vmware-6.18-headers 0 6.18.2-r0
Chainguard linux-vmware-6.18-modules 0 6.18.2-r0
Chainguard linux-vmware-generic 0 6.18.3-r0
Chainguard linux-vmware-generic 0 6.18.5-r0
Chainguard linux-vmware-generic-boot-installed 0 0
Chainguard linux-vmware-generic-fips-boot-installed 0 0
Chainguard linux-vmware-generic-headers 0 0
Chainguard linux-vmware-generic-modules 0 0
Debian:11 linux 0 4.13.4-2
Debian:12 linux 0 4.13.4-2
Debian:13 linux 0 4.13.4-2
Red Hat:enterprise_linux:7::server kernel 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-abi-whitelists 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-alt 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-bootwrapper 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-debug 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-debug-debuginfo 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-debug-devel 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-debuginfo 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-debuginfo-common-aarch64 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-debuginfo-common-ppc64le 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-debuginfo-common-s390x 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-devel 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-doc 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-headers 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-kdump 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-kdump-debuginfo 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-kdump-devel 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-tools 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-tools-debuginfo 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-tools-libs 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server kernel-tools-libs-devel 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server perf 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server perf-debuginfo 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server python-perf 0 0:4.14.0-49.el7a
Red Hat:enterprise_linux:7::server python-perf-debuginfo 0 0:4.14.0-49.el7a
Ubuntu:14.04:LTS linux-azure 0 4.15.0-1023.24~14.04.1
Ubuntu:16.04:LTS linux-hwe 0 4.10.0-37.41~16.04.1
Ubuntu:16.04:LTS linux-oem 0 4.13.0-1008.9
Ubuntu:Pro:16.04:LTS linux-flo 0 No fix
Ubuntu:Pro:16.04:LTS linux-mako 0 No fix

Related vulnerabilities