Your submission was sent successfully! Close

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

AuthorNote
tyhicks
Thanks to Andy Lutomirski for help in Linux kernel research and test
case
Priority

High

CVSS 3 base score: 7.8

Status

Package Release Status
linux
Launchpad, Ubuntu, Debian
artful
Released (4.13.0-41.46)
bionic Not vulnerable
(landed pre-release in 4.15.0-15.16)
precise
Released (3.2.0-134.180)
trusty
Released (3.13.0-147.196)
upstream
Released (4.16~rc7)
xenial
Released (4.4.0-124.148)
Patches:
Introduced by

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2

Fixed by d8ba61ba58c88d5207c1ba2f7d9a2280e7d03be9
linux-aws
Launchpad, Ubuntu, Debian
artful Does not exist

bionic Not vulnerable
(4.15.0-1003.3)
precise Does not exist

trusty
Released (4.4.0-1019.19)
upstream
Released (4.16~rc7)
xenial
Released (4.4.0-1057.66)
linux-azure
Launchpad, Ubuntu, Debian
artful Does not exist

bionic Not vulnerable
(4.15.0-1004.4)
precise 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

precise 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

precise 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)
precise Does not exist

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

precise Does not exist

trusty Does not exist

upstream
Released (4.16~rc7)
xenial Ignored
(was needs-triage now end-of-life)
linux-goldfish
Launchpad, Ubuntu, Debian
artful Does not exist

bionic Does not exist

precise Does not exist

trusty Does not exist
(trusty was ignored [abandoned])
upstream
Released (4.16~rc7)
xenial Ignored
(was needs-triage now end-of-life)
linux-grouper
Launchpad, Ubuntu, Debian
artful Does not exist

bionic Does not exist

precise 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

precise Does not exist

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)
precise Does not exist

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)
precise Does not exist

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

precise
Released (3.13.0-147.196~precise1)
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

precise Does not exist

trusty Does not exist
(trusty was ignored [out 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

precise Does not exist

trusty Does not exist
(trusty was ignored [out 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

precise Does not exist

trusty Does not exist
(trusty was ignored [out 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

precise 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

precise 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

precise 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

precise 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)
precise Does not exist

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)
precise Does not exist

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

precise Does not exist

trusty Does not exist

upstream
Released (4.16~rc7)
xenial Not vulnerable
(x86 only)