CVE-2018-8897 Race condition in n/a

High 7.8 Published Updated

A race condition in OS kernels mishandling deferred debug exceptions allows attackers to escalate privileges or crash the system.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2018-8897?

CVE-2018-8897 is a high-severity vulnerability in Apple Mac Os X, published on 8 May 2018. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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.

Weakness: CWE-362

Which versions are affected by CVE-2018-8897?

It affects 11 products.

Linux distribution packages (40)
kernel Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-PAE Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-PAE-debuginfo Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-PAE-devel Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-debug Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-debug-debuginfo Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-debug-devel Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-debuginfo Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-debuginfo-common Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-devel Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-doc Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-headers Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-xen Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-xen-debuginfo Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel-xen-devel Red Hat:rhel_aus:5.9All versions0:2.6.18-348.39.2.el5
kernel Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel-debug Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel-debug-debuginfo Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel-debug-devel Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel-debuginfo Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel-debuginfo-common-x86_64 Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel-devel Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel-doc Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel-firmware Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel-headers Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
perf Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
perf-debuginfo Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
python-perf Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
python-perf-debuginfo Red Hat:rhel_aus:6.4::serverAll versions0:2.6.32-358.88.2.el6
kernel Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-abi-whitelists Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-debug Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-debug-debuginfo Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-debug-devel Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-debuginfo Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-debuginfo-common-x86_64 Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-devel Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-doc Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-firmware Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6
kernel-headers Red Hat:rhel_aus:6.5::serverAll versions0:2.6.32-431.89.2.el6

Products include Apple Mac Os X, Canonical Ubuntu Linux, Citrix Xenserver, Debian Debian Linux, Freebsd Freebsd, Redhat Enterprise Linux Server and 5 more.

How do I fix CVE-2018-8897?

Apply the vendor's patch.

Is CVE-2018-8897 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2018-8897 exists.

Public exploit code: 1 Metasploit module, 3 Exploit-DB entries and 4 proofs of concept on GitHub.

All Apple Mac Os X vulnerabilities

Sources

Also known as ALPINE-CVE-2018-8897, DEBIAN-CVE-2018-8897, GHSA-j2cv-h77g-5p95, RHSA-2018:1349, RHSA-2018:1350, RHSA-2018:1351 and 3 more.

Is CVE-2018-8897 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free