CVE-2018-8897
Published: 8 May 2018
A statement in the System Programming Guide of the Intel 64 and IA-32 Architectures Software Developer's Manual (SDM) was mishandled in the development of some or all operating-system kernels, resulting in unexpected behavior for #DB exceptions that are deferred by MOV SS or POP SS, as demonstrated by (for example) privilege escalation in Windows, macOS, some Xen configurations, or FreeBSD, or a Linux kernel crash. The MOV to SS and POP SS instructions inhibit interrupts (including NMIs), data breakpoints, and single step trap exceptions until the instruction boundary following the next instruction (SDM Vol. 3A; section 6.8.3). (The inhibited data breakpoints are those on memory accessed by the MOV to SS or POP to SS instruction itself.) Note that debug exceptions are not inhibited by the interrupt enable (EFLAGS.IF) system flag (SDM Vol. 3A; section 2.3). If the instruction following the MOV to SS or POP to SS instruction is an instruction like SYSCALL, SYSENTER, INT 3, etc. that transfers control to the operating system at CPL < 3, the debug exception is delivered after the transfer to CPL < 3 is complete. OS kernels may not expect this order of events and may therefore experience unexpected behavior when it occurs.
From the Ubuntu Security Team
Nick Peterson discovered that the Linux kernel did not properly handle debug exceptions following a MOV/POP to SS instruction. A local attacker could use this to cause a denial of service (system crash). This issue only affected the amd64 architecture.
Notes
Author | Note |
---|---|
tyhicks | Thanks to Andy Lutomirski for help in Linux kernel research and test case |
Priority
Status
Package | Release | Status |
---|---|---|
linux Launchpad, Ubuntu, Debian |
upstream |
Released
(4.16~rc7)
|
bionic |
Not vulnerable
(landed pre-release in 4.15.0-15.16)
|
|
artful |
Released
(4.13.0-41.46)
|
|
trusty |
Released
(3.13.0-147.196)
|
|
xenial |
Released
(4.4.0-124.148)
|
|
Patches: Introduced by 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
linux-aws Launchpad, Ubuntu, Debian |
upstream |
Released
(4.16~rc7)
|
bionic |
Not vulnerable
(4.15.0-1003.3)
|
|
artful |
Does not exist
|
|
trusty |
Released
(4.4.0-1019.19)
|
|
xenial |
Released
(4.4.0-1057.66)
|
|
linux-azure Launchpad, Ubuntu, Debian |
bionic |
Not vulnerable
(4.15.0-1004.4)
|
artful |
Does not exist
|
|
trusty |
Not vulnerable
(4.15.0-1023.24~14.04.1)
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Released
(4.13.0-1016.19)
|
|
linux-euclid Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Released
(4.4.0-9027.29)
|
|
linux-flo Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [abandoned])
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Ignored
(abandoned)
|
|
linux-gcp Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Not vulnerable
(4.15.0-1003.3)
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Released
(4.13.0-1015.19)
|
|
linux-gke Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Ignored
(end of standard support, was needs-triage)
|
|
linux-goldfish Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [abandoned])
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Ignored
(end of life, was needs-triage)
|
|
linux-grouper Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [abandoned])
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Does not exist
|
|
linux-hwe Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Not vulnerable
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Released
(4.13.0-41.46~16.04.1)
|
|
linux-hwe-edge Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Released
(4.18.0-8.9~18.04.1)
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Released
(4.13.0-41.46~16.04.1)
|
|
linux-kvm Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Not vulnerable
(4.15.0-1004.4)
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Released
(4.4.0-1023.28)
|
|
linux-lts-trusty Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Does not exist
|
|
linux-lts-utopic Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [end of standard support])
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Does not exist
|
|
linux-lts-vivid Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [end of standard support])
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Does not exist
|
|
linux-lts-wily Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [end of standard support])
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Does not exist
|
|
linux-lts-xenial Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Released
(4.4.0-124.148~14.04.1)
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Does not exist
|
|
linux-maguro Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [abandoned])
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Does not exist
|
|
linux-mako Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [abandoned])
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Ignored
(abandoned)
|
|
linux-manta Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [abandoned])
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Does not exist
|
|
linux-oem Launchpad, Ubuntu, Debian |
artful |
Does not exist
|
bionic |
Not vulnerable
(4.15.0-1002.3)
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Released
(4.13.0-1026.29)
|
|
linux-raspi2 Launchpad, Ubuntu, Debian |
artful |
Not vulnerable
(x86 only)
|
bionic |
Not vulnerable
(x86 only)
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Not vulnerable
(x86 only)
|
|
linux-snapdragon Launchpad, Ubuntu, Debian |
artful |
Not vulnerable
(x86 only)
|
bionic |
Not vulnerable
|
|
trusty |
Does not exist
|
|
upstream |
Released
(4.16~rc7)
|
|
xenial |
Not vulnerable
(x86 only)
|
Severity score breakdown
Parameter | Value |
---|---|
Base score | 7.8 |
Attack vector | Local |
Attack complexity | Low |
Privileges required | Low |
User interaction | None |
Scope | Unchanged |
Confidentiality | High |
Integrity impact | High |
Availability impact | High |
Vector | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |