CVE-2016-9644
The __get_user_asm_ex macro in arch/x86/include/asm/uaccess.h in the Linux kernel 4.4.22 through...
The __get_user_asm_ex macro in arch/x86/include/asm/uaccess.h in the Linux kernel 4.4.22 through 4.4.28 contains extended asm statements that are incompatible with the exception table, which allows local users to obtain root access on non-SMEP platforms via a crafted application. NOTE: this vulnerability exists because of incorrect backporting of the CVE-2016-9178 patch to older kernels.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
7.8
The __get_user_asm_ex macro in arch/x86/include/asm/uaccess.h in the Linux kernel 4.4.22 through 4.4.28 contains extended asm statements that are incompatible with the exception table, which allows local users to obtain root access on non-SMEP platforms via a crafted application. NOTE: this vulnerability exists because of incorrect backporting of the CVE-2016-9178 patch to older kernels.
- Record
CVE-2016-9644- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - CVSS 2.0
- 9.3 High
AV:N/AC:M/Au:N/C:C/I:C/A:C - Weakness
- CWE-264
- Updated
- 2026-11-02
CVE List No score
The __get_user_asm_ex macro in arch/x86/include/asm/uaccess.h in the Linux kernel 4.4.22 through 4.4.28 contains extended asm statements that are incompatible with the exception table, which allows local users to obtain root access on non-SMEP platforms via a crafted application. NOTE: this vulnerability exists because of incorrect backporting of the CVE-2016-9178 patch to older kernels.
- Record
CVE-2016-9644- Updated
- 2026-11-02
EUVDEUVD-2016-10445 No score
The __get_user_asm_ex macro in arch/x86/include/asm/uaccess.h in the Linux kernel 4.4.22 through 4.4.28 contains extended asm statements that are incompatible with the exception table, which allows local users to obtain root access on non-SMEP platforms via a crafted application. NOTE: this vulnerability exists because of incorrect backporting of the CVE-2016-9178 patch to older kernels.
- Record
EUVD-2016-10445- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-qx8p-8rg2-4j84
7.8
The __get_user_asm_ex macro in arch/x86/include/asm/uaccess.h in the Linux kernel 4.4.22 through...
The __get_user_asm_ex macro in arch/x86/include/asm/uaccess.h in the Linux kernel 4.4.22 through 4.4.28 contains extended asm statements that are incompatible with the exception table, which allows local users to obtain root access on non-SMEP platforms via a crafted application. NOTE: this vulnerability exists because of incorrect backporting of the CVE-2016-9178 patch to older kernels.
- Record
GHSA-qx8p-8rg2-4j84- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2016-9644
7.8
The __get_user_asm_ex macro in arch/x86/include/asm/uaccess.h in the Linux kernel 4.4.22 through 4.4.28 contains extended asm statements that are incompatible with the exception table, which allows local users to obtain root access on non-SMEP platforms via a crafted application. NOTE: this vulnerability exists because of incorrect backporting of the CVE-2016-9178 patch to older kernels.
- Record
UBUNTU-CVE-2016-9644- CVSS 3.0
- 7.8 High
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUSN-3146-1 No score
linux vulnerabilities
It was discovered that the __get_user_asm_ex implementation in the Linux kernel for x86/x86_64 contained extended asm statements that were incompatible with the exception table. A local attacker could use this to gain administrative privileges. (CVE-2016-9644)
Andreas Gruenbacher and Jan Kara discovered that the filesystem implementation in the Linux kernel did not clear the setgid bit during a setxattr call. A local attacker could use this to possibly elevate group privileges. (CVE-2016-7097)
Marco Grassi discovered that the driver for Areca RAID Controllers in the Linux kernel did not properly validate control messages. A local attacker could use this to cause a denial of service (system crash) or possibly gain privileges. (CVE-2016-7425)
Daxing Guo discovered a stack-based buffer overflow in the Broadcom IEEE802.11n FullMAC driver in the Linux kernel. A local attacker could use this to cause a denial of service (system crash) or possibly gain privileges. (CVE-2016-8658)
- Record
USN-3146-1- Updated
- 2026-11-02
OSVUSN-3146-2 No score
linux-lts-xenial vulnerabilities
USN-3146-1 fixed vulnerabilities in the Linux kernel for Ubuntu 16.04 LTS. This update provides the corresponding updates for the Linux Hardware Enablement (HWE) kernel from Ubuntu 16.04 LTS for Ubuntu 14.04 LTS.
It was discovered that the __get_user_asm_ex implementation in the Linux kernel for x86/x86_64 contained extended asm statements that were incompatible with the exception table. A local attacker could use this to gain administrative privileges. (CVE-2016-9644)
Andreas Gruenbacher and Jan Kara discovered that the filesystem implementation in the Linux kernel did not clear the setgid bit during a setxattr call. A local attacker could use this to possibly elevate group privileges. (CVE-2016-7097)
Marco Grassi discovered that the driver for Areca RAID Controllers in the Linux kernel did not properly validate control messages. A local attacker could use this to cause a denial of service (system crash) or possibly gain privileges. (CVE-2016-7425)
Daxing Guo discovered a stack-based buffer overflow in the Broadcom IEEE802.11n FullMAC driver in the Linux kernel. A local attacker could use this to cause a denial of service (system crash) or possibly gain privileges. (CVE-2016-8658)
- Record
USN-3146-2- Updated
- 2026-11-02
OSVUSN-3161-4 No score
linux-snapdragon vulnerabilities
Tilman Schmidt and Sasha Levin discovered a use-after-free condition in the TTY implementation in the Linux kernel. A local attacker could use this to expose sensitive information (kernel memory). (CVE-2015-8964)
It was discovered that the Video For Linux Two (v4l2) implementation in the Linux kernel did not properly handle multiple planes when processing a VIDIOC_DQBUF ioctl(). A local attacker could use this to cause a denial of service (system crash) or possibly execute arbitrary code. (CVE-2016-4568)
CAI Qian discovered that shared bind mounts in a mount namespace exponentially added entries without restriction to the Linux kernel's mount table. A local attacker could use this to cause a denial of service (system crash). (CVE-2016-6213)
Andreas Gruenbacher and Jan Kara discovered that the filesystem implementation in the Linux kernel did not clear the setgid bit during a setxattr call. A local attacker could use this to possibly elevate group privileges. (CVE-2016-7097)
Marco Grassi discovered that the driver for Areca RAID Controllers in the Linux kernel did not properly validate control messages. A local attacker could use this to cause a denial of service (system crash) or possibly gain privileges. (CVE-2016-7425)
It was discovered that the KVM implementation for x86/x86_64 in the Linux kernel could dereference a null pointer. An attacker in a guest virtual machine could use this to cause a denial of service (system crash) in the KVM host. (CVE-2016-8630)
Eyal Itkin discovered that the IP over IEEE 1394 (FireWire) implementation in the Linux kernel contained a buffer overflow when handling fragmented packets. A remote attacker could use this to possibly execute arbitrary code with administrative privileges. (CVE-2016-8633)
Marco Grassi discovered that the TCP implementation in the Linux kernel mishandles socket buffer (skb) truncation. A local attacker could use this to cause a denial of service (system crash). (CVE-2016-8645)
Daxing Guo discovered a stack-based buffer overflow in the Broadcom IEEE802.11n FullMAC driver in the Linux kernel. A local attacker could use this to cause a denial of service (system crash) or possibly gain privileges. (CVE-2016-8658)
Andrey Konovalov discovered that the SCTP implementation in the Linux kernel improperly handled validation of incoming data. A remote attacker could use this to cause a denial of service (system crash). (CVE-2016-9555)
It was discovered that the __get_user_asm_ex implementation in the Linux kernel for x86/x86_64 contained extended asm statements that were incompatible with the exception table. A local attacker could use this to gain administrative privileges. (CVE-2016-9644)
- Record
USN-3161-4- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
linuxUbuntu:14.04:LTS |
before 3.13.0-145.194, plus listed versions 3.11.0-12.193.12.0-1.33.12.0-2.53.12.0-2.73.12.0-3.8 Show 45 moreShow less3.12.0-3.93.12.0-4.103.12.0-4.123.12.0-5.133.12.0-7.153.13.0-1.163.13.0-2.173.13.0-3.183.13.0-4.193.13.0-5.203.13.0-6.233.13.0-7.253.13.0-7.263.13.0-8.273.13.0-8.283.13.0-10.303.13.0-11.313.13.0-12.323.13.0-13.333.13.0-14.343.13.0-15.353.13.0-16.363.13.0-17.373.13.0-18.383.13.0-19.393.13.0-19.403.13.0-20.423.13.0-21.433.13.0-22.443.13.0-23.453.13.0-24.463.13.0-24.473.13.0-27.503.13.0-29.533.13.0-30.543.13.0-30.553.13.0-32.573.13.0-33.583.13.0-34.603.13.0-35.623.13.0-36.633.13.0-37.643.13.0-39.663.13.0-40.693.13.0-41.70 |
3.13.0-145.194 |
linux-lts-xenialUbuntu:14.04:LTS |
before 4.4.0-51.72~14.04.1, plus listed versions 4.4.0-13.29~14.04.14.4.0-14.30~14.04.24.4.0-15.31~14.04.14.4.0-18.34~14.04.14.4.0-21.37~14.04.1 Show 11 moreShow less4.4.0-22.39~14.04.14.4.0-22.40~14.04.14.4.0-24.43~14.04.14.4.0-28.47~14.04.14.4.0-31.50~14.04.14.4.0-34.53~14.04.14.4.0-36.55~14.04.14.4.0-38.57~14.04.14.4.0-42.62~14.04.14.4.0-45.66~14.04.14.4.0-47.68~14.04.1 |
4.4.0-51.72~14.04.1 |
linuxUbuntu:16.04:LTS |
before 4.4.0-51.72, plus listed versions 4.2.0-16.194.2.0-17.214.2.0-19.234.3.0-1.104.3.0-2.11 Show 31 moreShow less4.3.0-5.164.3.0-6.174.3.0-7.184.4.0-2.164.4.0-4.194.4.0-6.214.4.0-7.224.4.0-8.234.4.0-9.244.4.0-10.254.4.0-11.264.4.0-12.284.4.0-13.294.4.0-14.304.4.0-15.314.4.0-16.324.4.0-17.334.4.0-18.344.4.0-21.374.4.0-22.394.4.0-22.404.4.0-24.434.4.0-28.474.4.0-31.504.4.0-34.534.4.0-36.554.4.0-38.574.4.0-42.624.4.0-43.634.4.0-45.664.4.0-47.68 |
4.4.0-51.72 |
linux-snapdragonUbuntu:16.04:LTS |
before 4.4.0-1042.46, plus listed versions 4.4.0-1012.124.4.0-1013.144.4.0-1013.154.4.0-1015.184.4.0-1019.22 Show 8 moreShow less4.4.0-1020.234.4.0-1022.254.4.0-1024.274.4.0-1026.294.4.0-1030.334.4.0-1032.364.4.0-1035.394.4.0-1039.43 |
4.4.0-1042.46 |
linuxUbuntu:16.04:LTS From an advisory covering 4 CVEs |
before 4.4.0-51.72, plus listed versions 4.2.0-16.194.2.0-17.214.2.0-19.234.3.0-1.104.3.0-2.11 Show 31 moreShow less4.3.0-5.164.3.0-6.174.3.0-7.184.4.0-2.164.4.0-4.194.4.0-6.214.4.0-7.224.4.0-8.234.4.0-9.244.4.0-10.254.4.0-11.264.4.0-12.284.4.0-13.294.4.0-14.304.4.0-15.314.4.0-16.324.4.0-17.334.4.0-18.344.4.0-21.374.4.0-22.394.4.0-22.404.4.0-24.434.4.0-28.474.4.0-31.504.4.0-34.534.4.0-36.554.4.0-38.574.4.0-42.624.4.0-43.634.4.0-45.664.4.0-47.68 |
4.4.0-51.72 |
linux-lts-xenialUbuntu:14.04:LTS From an advisory covering 4 CVEs |
before 4.4.0-51.72~14.04.1, plus listed versions 4.4.0-13.29~14.04.14.4.0-14.30~14.04.24.4.0-15.31~14.04.14.4.0-18.34~14.04.14.4.0-21.37~14.04.1 Show 11 moreShow less4.4.0-22.39~14.04.14.4.0-22.40~14.04.14.4.0-24.43~14.04.14.4.0-28.47~14.04.14.4.0-31.50~14.04.14.4.0-34.53~14.04.14.4.0-36.55~14.04.14.4.0-38.57~14.04.14.4.0-42.62~14.04.14.4.0-45.66~14.04.14.4.0-47.68~14.04.1 |
4.4.0-51.72~14.04.1 |
linux-snapdragonUbuntu:16.04:LTS From an advisory covering 11 CVEs |
before 4.4.0-1042.46, plus listed versions 4.4.0-1012.124.4.0-1013.144.4.0-1013.154.4.0-1015.184.4.0-1019.22 Show 8 moreShow less4.4.0-1020.234.4.0-1022.254.4.0-1024.274.4.0-1026.294.4.0-1030.334.4.0-1032.364.4.0-1035.394.4.0-1039.43 |
4.4.0-1042.46 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2016-9644 is a high vulnerability (CVSS 7.8) in Linux Kernel, published November 27, 2016. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.45%, the 73rd percentile. Fixed in linux 3.13.0-145.194.
References
ubuntu.com/usn/USN-3146-2
securityfocus.com/bid/94545
ubuntu.com/usn/USN-3146-1
openwall.com/lists/oss-security/2016/11/07/4
lwn.net/Articles/705220
nvd.nist.gov/vuln/detail/CVE-2016-9644
Show 17 moreShow less
github.com/advisories/GHSA-qx8p-8rg2-4j84
ubuntu.com/security/CVE-2016-9644
openwall.com/lists/oss-security/2016/11/03/2
ubuntu.com/security/notices/USN-3146-1
ubuntu.com/security/notices/USN-3146-2
ubuntu.com/security/notices/USN-3161-4
cve.org/CVERecord?id=CVE-2016-9644
ubuntu.com/security/CVE-2016-7097
ubuntu.com/security/CVE-2016-7425
ubuntu.com/security/CVE-2016-8658
ubuntu.com/security/CVE-2015-8964
ubuntu.com/security/CVE-2016-4568
ubuntu.com/security/CVE-2016-6213
ubuntu.com/security/CVE-2016-8630
ubuntu.com/security/CVE-2016-8633
ubuntu.com/security/CVE-2016-8645
ubuntu.com/security/CVE-2016-9555
Left out here: 79 versions. The JSON record has them.