CVE-2016-10044
High · 7.8CVSS
7.8
EPSS
0.3%
Published
Feb 7, 2017
CISA due date
—
Cloudanix analysis
A problem in the Linux kernel lets people already on the computer get around security rules and take more control than they should.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Privilege Escalation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
The aio_mount function in fs/aio.c fails to properly restrict execute permissions, allowing local users to bypass SELinux W^X policy via the io_setup syscall and subsequently escalate privileges.
Why it matters to the business
Local attackers can obtain elevated privileges on affected Linux systems, increasing the risk of unauthorized access to sensitive data or full system control in environments relying on SELinux protections.
How an attack unfolds
A local attacker invokes the io_setup system call with crafted parameters that exploit the missing execute restriction in aio_mount, bypassing SELinux W^X enforcement to execute and gain higher privileges.
How to fix it
Update the Linux kernel to a version containing commit 22f6b4d34fcf039c63a94e7670e0da24f8575a5a or later; rebuild and deploy the patched kernel across all affected systems.
How to confirm the fix worked
Verify the running kernel version is 4.7.7 or newer, confirm the presence of commit 22f6b4d34fcf039c63a94e7670e0da24f8575a5a in the source tree, and test that io_setup no longer bypasses SELinux W^X.
Typical attack path
- Obtain local user access on the target system
- Invoke io_setup syscall with parameters targeting aio_mount
- Trigger bypass of SELinux W^X policy restrictions
- Execute code to escalate to higher privileges
How to detect it
Review system audit logs and SELinux AVC denials for patterns involving io_setup calls that unexpectedly succeed despite W^X policy; correlate with privilege changes in process execution history.
What your security team should do
- Prioritize kernel upgrade to the fixed version on all production systems
- Audit SELinux policies for reliance on W^X enforcement
- Enable enhanced auditing of aio and SELinux-related syscalls
The record
The aio_mount function in fs/aio.c in the Linux kernel before 4.7.7 does not properly restrict execute access, which makes it easier for local users to bypass intended SELinux W^X policy restrictions, and consequently gain privileges, via an io_setup system call.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 4.7.8-1 |
| Debian:12 | linux | 0 | 4.7.8-1 |
| Debian:13 | linux | 0 | 4.7.8-1 |
| Debian:14 | linux | 0 | 4.7.8-1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-default | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-source | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-syms | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-xen | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Live Patching 12 | kgraft-patch-SLE12-SP1_Update_15 | 0 | 1-4.1 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.61-52.72.1 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-default | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-source | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-syms | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-xen | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-default | 0 | 3.12.61-52.72.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-source | 0 | 3.12.61-52.72.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-syms | 0 | 3.12.61-52.72.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-xen | 0 | 3.12.61-52.72.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kgraft-patch-SLE12_Update_21 | 0 | 1-2.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-default | 0 | 3.12.61-52.72.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-source | 0 | 3.12.61-52.72.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-syms | 0 | 3.12.61-52.72.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-xen | 0 | 3.12.61-52.72.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kgraft-patch-SLE12_Update_21 | 0 | 1-2.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-default | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-source | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-syms | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-xen | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-docs | 0 | 3.12.74-60.64.40.4 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-obs-build | 0 | 3.12.74-60.64.40.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP1 | kernel-default | 0 | 3.12.74-60.64.40.1 |
| Ubuntu:14.04:LTS | linux | 0 | 3.13.0-132.181 |
| Ubuntu:14.04:LTS | linux-aws | 0 | 4.4.0-1002.2 |
| Ubuntu:14.04:LTS | linux-azure | 0 | 4.15.0-1023.24~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-xenial | 0 | 4.4.0-47.68~14.04.1 |
| Ubuntu:16.04:LTS | linux | 0 | 4.4.0-47.68 |
| Ubuntu:16.04:LTS | linux-aws | 0 | 4.4.0-1001.10 |
| Ubuntu:16.04:LTS | linux-azure | 0 | 4.11.0-1009.9 |
| Ubuntu:16.04:LTS | linux-euclid | 0 | 4.4.0-9019.20 |
| Ubuntu:16.04:LTS | linux-gcp | 0 | 4.10.0-1004.4 |
| 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 |
| Ubuntu:16.04:LTS | linux-kvm | 0 | 4.4.0-1004.9 |
| Ubuntu:16.04:LTS | linux-oem | 0 | 4.13.0-1008.9 |
| Ubuntu:16.04:LTS | linux-raspi2 | 0 | 4.4.0-1038.45 |
| Ubuntu:16.04:LTS | linux-snapdragon | 0 | 4.4.0-1035.39 |
| Ubuntu:18.04:LTS | linux-azure | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gcp | 0 | No fix |
| Ubuntu:18.04:LTS | linux-hwe | 0 | No fix |
| Ubuntu:18.04:LTS | linux-hwe-edge | 0 | No fix |
| Ubuntu:18.04:LTS | linux-oem | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-fde | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gke | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gkeop | 0 | No fix |
| Ubuntu:20.04:LTS | linux-raspi2 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-riscv | 0 | No fix |
| Ubuntu:22.04:LTS | linux-intel-iot-realtime | 0 | No fix |
| Ubuntu:22.04:LTS | linux-realtime | 0 | No fix |
| Ubuntu:22.04:LTS | linux-riscv | 0 | No fix |
| Ubuntu:24.04:LTS | linux-azure-6.11 | 0 | No fix |
| Ubuntu:24.04:LTS | linux-gcp-6.11 | 0 | No fix |
| Ubuntu:24.04:LTS | linux-hwe-6.11 | 0 | No fix |
| Ubuntu:24.04:LTS | linux-lowlatency-hwe-6.11 | 0 | No fix |
| Ubuntu:24.04:LTS | linux-raspi-realtime | 0 | No fix |
| Ubuntu:24.04:LTS | linux-realtime | 0 | No fix |
| Ubuntu:24.04:LTS | linux-riscv | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | linux-lts-vivid | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-flo | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-goldfish | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-mako | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-azure | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-gcp | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-hwe | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-hwe-edge | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-oem | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-azure-fde | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-azure-fde-5.15 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-gke | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-gkeop | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-raspi2 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-riscv | 0 | No fix |
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