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.
CVSS Details
- CVSS 3.1 Base Score: 7
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernel-tools-debuginfoUpgrade kernel-toolsUpgrade kernel-develUpgrade kernel-debuginfoUpgrade perfUpgrade kernel-docUpgrade kernel-tools-develUpgrade perf-debuginfoUpgrade kernelUpgrade python-perfUpgrade python-perf-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-headers | Apr 27, 2020 | Nov 30, 2017 |
| Amazon_linux | — | Upgrade kernel | Dec 22, 2017 | Nov 30, 2017 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Nov 30, 2017 |
| Oracle_linux | — | Upgrade kernel-uek | Dec 8, 2017 | Nov 30, 2017 |
| Suse | — | Upgrade cluster-network-kmp-defaultUpgrade gfs2-kmp-defaultUpgrade kernel-defaultUpgrade kernel-ec2-extraUpgrade ocfs2-kmp-defaultUpgrade kernel-docsUpgrade kernel-obs-buildUpgrade kernel-ec2-develUpgrade kernel-livepatch-4_12_14-197_26-defaultUpgrade cluster-md-kmp-defaultUpgrade kernel-ec2Upgrade dlm-kmp-defaultUpgrade kernel-livepatch-4_12_14-150_41-default | Dec 5, 2017 | Nov 30, 2017 |
| Ubuntu | — | Upgrade linux-image-raspi2Upgrade linux-image-4.13.0-1008-raspi2Upgrade linux-image-4.4.0-103-genericUpgrade linux-image-4.10.0-1023-raspi2Upgrade linux-image-generic-lpae-lts-xenialUpgrade linux-image-lowlatencyUpgrade linux-image-4.4.0-1079-raspi2Upgrade linux-image-4.4.0-103-powerpc64-smpUpgrade linux-image-powerpc-e500mcUpgrade linux-image-generic-hwe-16.04Upgrade linux-image-powerpc-smpUpgrade linux-image-gkeUpgrade linux-image-4.4.0-1012-kvmUpgrade linux-image-4.4.0-103-powerpc-smpUpgrade linux-image-kvmUpgrade linux-image-generic-lpae-hwe-16.04Upgrade linux-image-generic-lpaeUpgrade linux-image-powerpc64-embUpgrade linux-image-4.11.0-1016-azureUpgrade linux-image-generic-lts-xenialUpgrade linux-image-lowlatency-lts-xenialUpgrade linux-image-4.13.0-19-generic-lpaeUpgrade linux-image-4.4.0-103-powerpc-e500mcUpgrade linux-image-powerpc-smp-lts-xenialUpgrade linux-image-gcpUpgrade linux-image-3.13.0-137-generic-lpaeUpgrade linux-image-4.10.0-42-lowlatencyUpgrade linux-image-4.4.0-103-powerpc64-embUpgrade linux-image-3.13.0-137-powerpc64-smpUpgrade linux-image-3.13.0-137-powerpc-smpUpgrade linux-image-powerpc64-emb-lts-xenialUpgrade linux-image-4.10.0-42-generic-lpaeUpgrade linux-image-4.10.0-42-genericUpgrade linux-image-4.13.0-1002-gcpUpgrade linux-image-powerpc-e500Upgrade linux-image-generic-lpae-lts-trustyUpgrade linux-image-4.4.0-1081-snapdragonUpgrade linux-image-powerpc64-smp-lts-xenialUpgrade linux-image-4.4.0-1005-awsUpgrade linux-image-generic-lts-trustyUpgrade linux-image-3.13.0-137-powerpc-e500mcUpgrade linux-image-lowlatency-hwe-16.04Upgrade linux-image-powerpc64-smpUpgrade linux-image-snapdragonUpgrade linux-image-genericUpgrade linux-image-awsUpgrade linux-image-3.13.0-137-genericUpgrade linux-image-3.13.0-137-powerpc64-embUpgrade linux-image-4.13.0-19-genericUpgrade linux-image-4.13.0-19-lowlatencyUpgrade linux-image-powerpc-e500mc-lts-xenialUpgrade linux-image-3.13.0-137-lowlatencyUpgrade linux-image-4.4.0-1043-awsUpgrade linux-image-azureUpgrade linux-image-4.4.0-103-lowlatencyUpgrade linux-image-3.13.0-137-powerpc-e500Upgrade linux-image-4.4.0-103-generic-lpae | Dec 8, 2017 | Nov 30, 2017 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Nov 30, 2017 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub