CVE-2016-6130
Medium · 4.7CVSS
4.7
EPSS
0.3%
Published
Jul 3, 2016
CISA due date
—
Cloudanix analysis
A timing flaw in the Linux kernel on certain mainframe systems could let a logged-in user read secret internal data that should have stayed hidden.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- High
- Impact
- Data Exposure
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
Race condition in sclp_ctl_ioctl_sccb allows a local process to perform a double-fetch on a length value passed to the ioctl, leaking arbitrary kernel memory contents on s390 systems.
Why it matters to the business
On affected Linux kernels running on IBM Z mainframes, a local attacker with low privileges can read sensitive kernel memory, increasing risk of credential or key exposure in multi-tenant or shared environments; the issue is long-public with minimal exploitation signals.
How an attack unfolds
An attacker on a vulnerable s390 Linux system invokes the sclp_ctl ioctl, races the kernel's copy of the user-supplied length, alters the length between the two fetches, and receives kernel memory beyond the intended buffer.
How to fix it
Upgrade the Linux kernel to a version containing commit 532c34b5fbf1687df63b3fcd5b2846312ac943c6 or later; rebuild and reboot with the patched kernel; where immediate patching is impossible, restrict unprivileged access to /dev/sclp_ctl or equivalent device nodes.
How to confirm the fix worked
Confirm the running kernel contains commit 532c34b5fbf1687df63b3fcd5b2846312ac943c6 or is version 4.6 or newer; attempt to compile and run a minimal double-fetch test against the sclp_ctl ioctl and verify the returned buffer no longer contains out-of-bounds kernel data.
Typical attack path
- Obtain local shell on s390 Linux host running kernel before commit 532c34b5fbf1687df63b3fcd5b2846312ac943c6
- Locate or craft a program that calls sclp_ctl_ioctl_sccb with a user-controlled SCCB length
- Use a separate thread or ptrace to modify the length value after the first kernel fetch but before the second
- Read the returned buffer containing leaked kernel memory
How to detect it
Review kernel audit logs and process execution history for unusual ioctl calls to sclp_ctl; examine any custom or third-party tools that interact with SCLP character devices for signs of double-fetch patterns; because public exploit maturity remains none, focus on post-incident memory forensics if kernel memory disclosure is suspected.
What your security team should do
- Prioritize kernel updates on all s390 Linux systems within standard change windows
- Audit local user access to SCLP character devices and apply least-privilege controls
- Monitor EPSS and threat-intel feeds for any future increase in exploitation activity despite current low scores
The record
Race condition in the sclp_ctl_ioctl_sccb function in drivers/s390/char/sclp_ctl.c in the Linux kernel before 4.6 allows local users to obtain sensitive information from kernel memory by changing a certain length value, aka a "double fetch" vulnerability.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 4.6.1-1 |
| Debian:12 | linux | 0 | 4.6.1-1 |
| Debian:13 | linux | 0 | 4.6.1-1 |
| Debian:8 | linux | 0 | 3.16.7-ckt25-2+deb8u3 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-default | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-source | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-syms | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-xen | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Live Patching 12 | kgraft-patch-SLE12-SP1_Update_9 | 0 | 1-6.3 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-compute | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-compute_debug | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-rt | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-rt_debug | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-source-rt | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-syms-rt | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-default | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-source | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-syms | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-xen | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-default | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-source | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-syms | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-xen | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kgraft-patch-SLE12_Update_19 | 0 | 1-2.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-default | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-source | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-syms | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-xen | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kgraft-patch-SLE12_Update_19 | 0 | 1-2.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-default | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-source | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-syms | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-xen | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-docs | 0 | 3.12.67-60.64.18.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-obs-build | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP1 | kernel-default | 0 | 3.12.67-60.64.18.1 |
| Ubuntu:14.04:LTS | linux-aws | 0 | 4.4.0-1002.2 |
| Ubuntu:16.04:LTS | linux | 0 | 4.4.0-42.62 |
| Ubuntu:16.04:LTS | linux-aws | 0 | 4.4.0-1001.10 |
| Ubuntu:16.04:LTS | linux-gke | 0 | 4.4.0-1003.3 |
| Ubuntu:16.04:LTS | linux-hwe | 0 | 4.8.0-36.36~16.04.1 |
Related vulnerabilities
- CVE-2025-38562 In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix null… Also affects linux
- CVE-2025-38352 In the Linux kernel, the following vulnerability has been resolved: posix-cpu-timers: fix… Also affects linux
- CVE-2025-22037 In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix null… Also affects linux
- CVE-2025-21760 In the Linux kernel, the following vulnerability has been resolved: ndisc: extend RCU… Also affects linux
- CVE-2025-21758 In the Linux kernel, the following vulnerability has been resolved: ipv6: mcast: add RCU… Also affects linux
- CVE-2025-21664 In the Linux kernel, the following vulnerability has been resolved: dm thin: make… Also affects linux
- CVE-2024-57946 In the Linux kernel, the following vulnerability has been resolved: virtio-blk: don't… Also affects linux
- CVE-2024-57945 In the Linux kernel, the following vulnerability has been resolved: riscv: mm: Fix the… Also affects linux