CVE-2017-1000405 json
The Linux Kernel versions 2.6.38 through 4.14 have a problematic use of pmd_mkdirty() in the touch_pmd() function inside the THP implementa…
published 8y ago modified 4mo ago also EUVD-2017-1545
- cvss
- 7.0
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.8%
- EPSS 2.8% chance of exploitation in 30 days, percentile 86%
- public exploits
- 2
- Exploit-DB
Summary
The Linux Kernel versions 2.6.38 through 4.14 have a problematic use of pmd_mkdirty() in the touch_pmd() function inside the THP implementation. touch_pmd() can be reached by get_user_pages(). In such case, the pmd will become dirty. This scenario breaks the new can_follow_write_pmd()'s logic - pmd can become dirty without going through a COW cycle. This bug is not as severe as the original "Dirty cow" because an ext4 file (or any other regular file) cannot be mapped using THP. Nevertheless, it does allow us to overwrite read-only huge pages. For example, the zero huge page and sealed shmem files can be overwritten (since their mapping can be populated using THP). Note that after the first write page-fault to the zero page, it will be replaced with a new fresh (and zeroed) thp.
Patch / fix
- linux linux_kernel 3.3, 3.11, 3.13, 3.16.52, 3.18.86, 4.1.48, 4.4.104, 4.9.67, 4.14.4
- linux Debian 14, Debian 13, Debian 12 4.14.2-1
debian advisories DEBIAN-CVE-2017-1000405
- linux Ubuntu 14.04 LTS 3.13.0-137.186
- linux Ubuntu 16.04 LTS 4.4.0-103.126
- linux-aws Ubuntu 14.04 LTS 4.4.0-1005.5
- linux-aws Ubuntu 16.04 LTS 4.4.0-1043.52
- linux-gcp Ubuntu 16.04 LTS 4.13.0-1002.5
- linux-hwe Ubuntu 16.04 LTS 4.13.0-32.35~16.04.1
- linux-kvm Ubuntu 16.04 LTS 4.4.0-1012.17
- linux-oem Ubuntu 16.04 LTS 4.13.0-1010.11
ubuntu advisories UBUNTU-CVE-2017-1000405
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-alt RHEL 7 4.11.0-44.4.1.el7a
- perf RHEL 7 4.11.0-44.4.1.el7a
- kernel RHEL 7 4.11.0-44.4.1.el7a
- python-perf RHEL 7 4.11.0-44.4.1.el7a
- kernel-tools RHEL 7 4.11.0-44.4.1.el7a
- kernel-tools-libs RHEL 7 4.11.0-44.4.1.el7a
- kernel-bootwrapper RHEL 7 4.11.0-44.4.1.el7a
- kernel-abi-whitelists RHEL 7 4.11.0-44.4.1.el7a
red hat advisories RHSA-2018:0180
- kernel-rt SLE Real Time 12 SP2 4.4.104-24.1
- kernel-syms-rt SLE Real Time 12 SP2 4.4.104-24.1
- kernel-rt_debug SLE Real Time 12 SP2 4.4.104-24.1
- kernel-source-rt SLE Real Time 12 SP2 4.4.104-24.1
- kernel-ec2 SLE Module for Public Cloud 12 3.12.61-52.106.1
- kernel-syms SLES for SAP 12 SP2, SLES for Raspberry Pi 12 SP2, SLES 12 SP2 +1 more 4.4.90-92.50.1
- kernel-source SLES for SAP 12 SP2, SLES for Raspberry Pi 12 SP2, SLES 12 SP2 +1 more 4.4.90-92.50.1
- kernel-default SLES for SAP 12 SP2, SLES for Raspberry Pi 12 SP2, SLES 12 SP2 +3 more 4.4.90-92.50.1
suse advisories SUSE-SU-2020:3449-1SUSE-SU-2020:3400-1SUSE-SU-2018:0213-1SUSE-SU-2017:3319-1SUSE-SU-2017:3314-1SUSE-SU-2017:3324-1
Is CVE-2017-1000405 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2017-1000405 updated cvss 6.1
kernel: pmd can become dirty without going through a COW cycle
-
Red Hat Enterprise Linux for ARM and IBM Power LE (POWER9) Server (v. 7) perf 4.11.0-44.4.1.el7a, kernel-alt 4.11.0-44.4.1.el7a, python-perf 4.11.0-44.4.1.el7a, kernel-tools 4.11.0-44.4.1.el7a, kernel-tools-libs 4.11.0-44.4.1.el7a, kernel-bootwrapper 4.11.0-44.4.1.el7a, +3 more Red Hat Enterprise Linux for ARM and IBM Power LE (POWER9) Server Optional (v. 7) kernel 4.11.0-44.4.1.el7a, kernel-abi-whitelists 4.11.0-44.4.1.el7a, kernel-debuginfo-common-aarch64 4.11.0-44.4.1.el7a, kernel-debuginfo-common-ppc64le 4.11.0-44.4.1.el7afixed: vendor fix RHSA-2018:0180
-
Red Hat Enterprise Linux 5 kernel Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise MRG 2 kernel-rt, mrg-rt-release, kernel-rt-trace, kernel-rt-vanilla, kernel-rt-firmwarenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Timeline
- First public exploit (EDB-43199)
- Published
Exploit prediction
2.84% chance of exploitation in the next 30 days, higher than 86% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- EDB-44305 Linux Kernel - 'The Huge Dirty Cow' Overwriting The Huge Zero Page (2) dos, 2017-12-11
- EDB-43199 Linux Kernel - 'The Huge Dirty Cow' Overwriting The Huge Zero Page (1) dos, 2017-11-30
- medium.com https://medium.com/bindecy/huge-dirty-cow-cve-2017-1000405-110eca132de0 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 7.0 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 6.9 | AV:L/AC:M/Au:N/C:C/I:C/A:C |
Classification
- Weakness
-
- CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization
- Technology feeds
References
-
exploit-db.com
/exploits/43199/
exploit, issue-tracking, third-party-advisory, vdb-entry
-
medium.com
/bindecy/huge-dirty-cow-cve-2017-1000405-110eca132de0
exploit, issue-tracking, third-party-advisory
-
access.redhat.com
/errata/RHSA-2018:0180
vendor-advisory, third-party-advisory
-
securityfocus.com
/bid/102032
vdb-entry, third-party-advisory
-
source.android.com
/security/bulletin/pixel/2018-02-01
third-party-advisory
-
securitytracker.com
/id/1040020
vdb-entry, third-party-advisory
Sources
- CVE List CVE-2017-1000405
- NVD CVE-2017-1000405
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.