CVE-2024-46787: userfaultfd: fix checks for huge PMDs

Published Sep 18, 2024
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

userfaultfd: fix checks for huge PMDs

Patch series "userfaultfd: fix races around pmdtranshuge() check", v2.

The pmdtranshuge() code in mfillatomic() is wrong in three different ways depending on kernel version:

1. The pmdtranshuge() check is racy and can lead to a BUGON() (if you hit the right two race windows) - I've tested this in a kernel build with some extra mdelay() calls. See the commit message for a description of the race scenario. On older kernels (before 6.5), I think the same bug can even theoretically lead to accessing transhuge page contents as a page table if you hit the right 5 narrow race windows (I haven't tested this case). 2. As pointed out by Qi Zheng, pmdtranshuge() is not sufficient for detecting PMDs that don't point to page tables. On older kernels (before 6.5), you'd just have to win a single fairly wide race to hit this. I've tested this on 6.1 stable by racing migration (with a mdelay() patched into trytomigrate()) against UFFDIOZEROPAGE - on my x86 VM, that causes a kernel oops in ptlockptr(). 3. On newer kernels (>=6.5), for shmem mappings, khugepaged is allowed to yank page tables out from under us (though I haven't tested that), so I think the BUGON() checks in mfillatomic() are just wrong.

I decided to write two separate fixes for these (one fix for bugs 1+2, one fix for bug 3), so that the first fix can be backported to kernels affected by bugs 1+2.

This patch (of 2):

This fixes two issues.

I discovered that the following race can occur:

mfillatomic other thread ============ ============ <zap PMD> pmdpgetlockless() [reads none pmd] <bail if transhuge> <if none:> <pagefault creates transhuge zeropage> ptealloc [no-op] <zap PMD> <bail if pmdtranshuge(dstpmd)> BUGON(pmdnone(dstpmd))

I have experimentally verified this in a kernel with extra mdelay() calls; the BUGON(pmdnone(dstpmd)) triggers.

On kernels newer than commit 0d940a9b270b ("mm/pgtable: allow pteoffsetmaplock to fail"), this can't lead to anything worse than a BUGON(), since the page table access helpers are actually designed to deal with page tables concurrently disappearing; but on older kernels (<=6.4), I think we could probably theoretically race past the two BUGON() checks and end up treating a hugepage as a page table.

The second issue is that, as Qi Zheng pointed out, there are other types of huge PMDs that pmdtranshuge() can't catch: devmap PMDs and swap PMDs (in particular, migration PMDs).

On <=6.4, this is worse than the first issue: If mfillatomic() runs on a PMD that contains a migration entry (which just requires winning a single, fairly wide race), it will pass the PMD to pteoffsetmaplock(), which assumes that the PMD points to a page table.

Breakage follows: First, the kernel tries to take the PTE lock (which will crash or maybe worse if there is no "struct page" for the address bits in the migration entry PMD - I think at least on X86 there usually is no corresponding "struct page" thanks to the PTE inversion mitigation, amd64 looks different).

If that didn't crash, the kernel would next try to write a PTE into what it wrongly thinks is a page table.

As part of fixing these issues, get rid of the check for pmdtranshuge() before ptealloc() - that's redundant, we're going to have to check for that after the ptealloc() anyway.

Backport note: pmdpgetlockless() is pmdreadatomic() in older kernels.

Other sources

This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.

— Launchpad

Affected Software

211 affected componentsFixes available
ubuntu/linux-aws<4.4.0-1145.151
4.4.0-1145.151
ubuntu/linux-azure<4.15.0-1190.205~14.04.1
4.15.0-1190.205~14.04.1
ubuntu/linux-lts-xenial<4.4.0-270.304~14.04.1
4.4.0-270.304~14.04.1
ubuntu/linux<4.4.0-270.304
4.4.0-270.304
ubuntu/linux-aws<4.4.0-1183.198
4.4.0-1183.198
ubuntu/linux-aws-hwe<4.15.0-1182.195~16.04.1
4.15.0-1182.195~16.04.1
ubuntu/linux-azure<4.15.0-1190.205~16.04.1
4.15.0-1190.205~16.04.1
ubuntu/linux-gcp<4.15.0-1175.192~16.04.1
4.15.0-1175.192~16.04.1
ubuntu/linux-hwe<4.15.0-239.251~16.04.1
4.15.0-239.251~16.04.1
ubuntu/linux-kvm<4.4.0-1146.157
4.4.0-1146.157
ubuntu/linux-oracle<4.15.0-1144.155~16.04.1
4.15.0-1144.155~16.04.1
ubuntu/linux-hwe-edge*
ubuntu/linux-fips<4.4.0-1115.122
4.4.0-1115.122
ubuntu/linux-fips*
ubuntu/linux<4.15.0-239.251
4.15.0-239.251
ubuntu/linux-aws<4.15.0-1182.195
4.15.0-1182.195
ubuntu/linux-aws-5.0*
ubuntu/linux-aws-5.3*
ubuntu/linux-aws-5.4<5.4.0-1148.158~18.04.1
5.4.0-1148.158~18.04.1
ubuntu/linux-azure*
ubuntu/linux-azure-4.15<4.15.0-1190.205
4.15.0-1190.205
ubuntu/linux-azure-5.3*
ubuntu/linux-azure-5.4<5.4.0-1153.160~18.04.1
5.4.0-1153.160~18.04.1
ubuntu/linux-azure-edge*
ubuntu/linux-gcp*
ubuntu/linux-gcp-4.15<4.15.0-1175.192
4.15.0-1175.192
ubuntu/linux-gcp-5.3*
ubuntu/linux-gcp-5.4<5.4.0-1151.160~18.04.1
5.4.0-1151.160~18.04.1
ubuntu/linux-gke-4.15*
ubuntu/linux-gke-5.4*
ubuntu/linux-gkeop-5.4*
ubuntu/linux-hwe*
ubuntu/linux-hwe-5.4<5.4.0-219.239~18.04.1
5.4.0-219.239~18.04.1
ubuntu/linux-hwe-edge*
ubuntu/linux-ibm-5.4<5.4.0-1094.99~18.04.1
5.4.0-1094.99~18.04.1
ubuntu/linux-kvm<4.15.0-1165.170
4.15.0-1165.170
ubuntu/linux-oem*
ubuntu/linux-oracle<4.15.0-1144.155
4.15.0-1144.155
ubuntu/linux-oracle-5.0*
ubuntu/linux-oracle-5.3*
ubuntu/linux-oracle-5.4<5.4.0-1146.156~18.04.1
5.4.0-1146.156~18.04.1
ubuntu/linux-raspi-5.4<5.4.0-1131.144~18.04.1
5.4.0-1131.144~18.04.1
ubuntu/linux-aws-fips<4.15.0-2120.126
4.15.0-2120.126
ubuntu/linux-azure-fips<4.15.0-2099.105
4.15.0-2099.105
ubuntu/linux-fips<4.15.0-1137.148
4.15.0-1137.148
ubuntu/linux-gcp-fips<4.15.0-2083.89
4.15.0-2083.89
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux<5.4.0-219.239
5.4.0-219.239
ubuntu/linux-aws<5.4.0-1148.158
5.4.0-1148.158
ubuntu/linux-aws-5.11*
ubuntu/linux-aws-5.13*
ubuntu/linux-aws-5.15<5.15.0-1087.94~20.04.1
5.15.0-1087.94~20.04.1
ubuntu/linux-aws-5.8*
ubuntu/linux-azure<5.4.0-1153.160
5.4.0-1153.160
ubuntu/linux-azure-5.11*
ubuntu/linux-azure-5.13*
ubuntu/linux-azure-5.15<5.15.0-1094.103~20.04.1
5.15.0-1094.103~20.04.1
ubuntu/linux-azure-5.8*
ubuntu/linux-azure-fde*
ubuntu/linux-bluefield<5.4.0-1107.114
5.4.0-1107.114
ubuntu/linux-gcp<5.4.0-1151.160
5.4.0-1151.160
ubuntu/linux-gcp-5.11*
ubuntu/linux-gcp-5.13*
ubuntu/linux-gcp-5.15<5.15.0-1086.95~20.04.1
5.15.0-1086.95~20.04.1
ubuntu/linux-gcp-5.8*
ubuntu/linux-gke*
ubuntu/linux-gke-5.15*
ubuntu/linux-gkeop*
ubuntu/linux-gkeop-5.15*
ubuntu/linux-hwe-5.11*
ubuntu/linux-hwe-5.13*
ubuntu/linux-hwe-5.15<5.15.0-143.153~20.04.1
5.15.0-143.153~20.04.1
ubuntu/linux-hwe-5.8*
ubuntu/linux-ibm<5.4.0-1094.99
5.4.0-1094.99
ubuntu/linux-ibm-5.15<5.15.0-1079.82~20.04.1
5.15.0-1079.82~20.04.1
ubuntu/linux-intel-5.13*
ubuntu/linux-intel-iotg-5.15<5.15.0-1083.89~20.04.1
5.15.0-1083.89~20.04.1
ubuntu/linux-iot<5.4.0-1052.55
5.4.0-1052.55
ubuntu/linux-kvm<5.4.0-1135.144
5.4.0-1135.144
ubuntu/linux-lowlatency-hwe-5.15<5.15.0-143.153~20.04.1
5.15.0-143.153~20.04.1
ubuntu/linux-nvidia-tegra-5.15<5.15.0-1040.40~20.04.1
5.15.0-1040.40~20.04.1
ubuntu/linux-oem-5.10*
ubuntu/linux-oem-5.13*
ubuntu/linux-oem-5.6*
ubuntu/linux-oracle<5.4.0-1146.156
5.4.0-1146.156
ubuntu/linux-oracle-5.11*
ubuntu/linux-oracle-5.13*
ubuntu/linux-oracle-5.15<5.15.0-1084.90~20.04.1
5.15.0-1084.90~20.04.1
ubuntu/linux-oracle-5.8*
ubuntu/linux-raspi<5.4.0-1131.144
5.4.0-1131.144
ubuntu/linux-raspi2*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.11*
ubuntu/linux-riscv-5.15<5.15.0-1082.86~20.04.1
5.15.0-1082.86~20.04.1
ubuntu/linux-riscv-5.8*
ubuntu/linux-xilinx-zynqmp<5.4.0-1066.70
5.4.0-1066.70
ubuntu/linux-aws-fips<5.4.0-1148.158+fips1
5.4.0-1148.158+fips1
ubuntu/linux-azure-fips<5.4.0-1154.161+fips1
5.4.0-1154.161+fips1
ubuntu/linux-fips<5.4.0-1122.132
5.4.0-1122.132
ubuntu/linux-gcp-fips<5.4.0-1151.160+fips1
5.4.0-1151.160+fips1
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux<5.15.0-143.153
5.15.0-143.153
ubuntu/linux-allwinner-5.19*
ubuntu/linux-aws<5.15.0-1087.94
5.15.0-1087.94
ubuntu/linux-aws-5.19*
ubuntu/linux-aws-6.2*
ubuntu/linux-aws-6.5*
ubuntu/linux-aws-6.8<6.8.0-1020.22~22.04.1
6.8.0-1020.22~22.04.1
ubuntu/linux-azure<5.15.0-1092.101
5.15.0-1092.101
ubuntu/linux-azure-5.19*
ubuntu/linux-azure-6.2*
ubuntu/linux-azure-6.5*
ubuntu/linux-azure-6.8<6.8.0-1020.23~22.04.1
6.8.0-1020.23~22.04.1
ubuntu/linux-azure-fde<5.15.0-1092.101.1
5.15.0-1092.101.1
ubuntu/linux-azure-fde-5.19*
ubuntu/linux-azure-fde-6.2*
ubuntu/linux-gcp<5.15.0-1086.95
5.15.0-1086.95
ubuntu/linux-gcp-5.19*
ubuntu/linux-gcp-6.2*
ubuntu/linux-gcp-6.5*
ubuntu/linux-gcp-6.8<6.8.0-1019.21~22.04.1
6.8.0-1019.21~22.04.1
ubuntu/linux-gke<5.15.0-1084.90
5.15.0-1084.90
ubuntu/linux-gkeop<5.15.0-1069.77
5.15.0-1069.77
ubuntu/linux-hwe-5.19*
ubuntu/linux-hwe-6.2*
ubuntu/linux-hwe-6.5*
ubuntu/linux-hwe-6.8<6.8.0-50.51~22.04.1
6.8.0-50.51~22.04.1
ubuntu/linux-ibm<5.15.0-1079.82
5.15.0-1079.82
ubuntu/linux-ibm-6.8<6.8.0-1017.17~22.04.1
6.8.0-1017.17~22.04.1
ubuntu/linux-intel-iot-realtime*
ubuntu/linux-intel-iotg<5.15.0-1082.88
5.15.0-1082.88
ubuntu/linux-kvm<5.15.0-1083.88
5.15.0-1083.88
ubuntu/linux-lowlatency<5.15.0-143.153
5.15.0-143.153
ubuntu/linux-lowlatency-hwe-5.19*
ubuntu/linux-lowlatency-hwe-6.2*
ubuntu/linux-lowlatency-hwe-6.5*
ubuntu/linux-lowlatency-hwe-6.8<6.8.0-50.51.1~22.04.1
6.8.0-50.51.1~22.04.1
ubuntu/linux-nvidia<5.15.0-1081.82
5.15.0-1081.82
ubuntu/linux-nvidia-6.2*
ubuntu/linux-nvidia-6.5*
ubuntu/linux-nvidia-6.8<6.8.0-1019.21~22.04.1
6.8.0-1019.21~22.04.1
ubuntu/linux-nvidia-tegra<5.15.0-1040.40
5.15.0-1040.40
ubuntu/linux-nvidia-tegra-igx<5.15.0-1029.29
5.15.0-1029.29
ubuntu/linux-oem-5.17*
ubuntu/linux-oem-6.0*
ubuntu/linux-oem-6.1*
ubuntu/linux-oem-6.5*
ubuntu/linux-oracle<5.15.0-1084.90
5.15.0-1084.90
ubuntu/linux-oracle-6.5*
ubuntu/linux-oracle-6.8<6.8.0-1017.18~22.04.1
6.8.0-1017.18~22.04.1
ubuntu/linux-raspi<5.15.0-1083.86
5.15.0-1083.86
ubuntu/linux-realtime*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.19*
ubuntu/linux-riscv-6.5*
ubuntu/linux-riscv-6.8<6.8.0-50.51.1~22.04.1
6.8.0-50.51.1~22.04.1
ubuntu/linux-starfive-5.19*
ubuntu/linux-starfive-6.2*
ubuntu/linux-starfive-6.5*
ubuntu/linux-xilinx-zynqmp<5.15.0-1051.55
5.15.0-1051.55
ubuntu/linux-bluefield<5.15.0-1070.72
5.15.0-1070.72
ubuntu/linux-intel-iot-realtime<5.15.0-1080.82
5.15.0-1080.82
ubuntu/linux-realtime<5.15.0-1087.96
5.15.0-1087.96
ubuntu/linux-realtime-6.8<6.8.1-1013.14~22.04.1
6.8.1-1013.14~22.04.1
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux-aws-fips<5.15.0-1087.94+fips1
5.15.0-1087.94+fips1
ubuntu/linux-azure-fips<5.15.0-1094.103+fips1
5.15.0-1094.103+fips1
ubuntu/linux-fips<5.15.0-143.153+fips1
5.15.0-143.153+fips1
ubuntu/linux-gcp-fips<5.15.0-1086.95+fips1
5.15.0-1086.95+fips1
ubuntu/linux<6.8.0-50.51
6.8.0-50.51
ubuntu/linux-aws<6.8.0-1020.22
6.8.0-1020.22
ubuntu/linux-azure<6.8.0-1020.23
6.8.0-1020.23
ubuntu/linux-gcp<6.8.0-1019.21
6.8.0-1019.21
ubuntu/linux-gke<6.8.0-1015.19
6.8.0-1015.19
ubuntu/linux-gkeop<6.8.0-1002.4
6.8.0-1002.4
ubuntu/linux-ibm<6.8.0-1017.17
6.8.0-1017.17
ubuntu/linux-lowlatency<6.8.0-50.51.1
6.8.0-50.51.1
ubuntu/linux-nvidia<6.8.0-1019.21
6.8.0-1019.21
ubuntu/linux-nvidia-lowlatency<6.8.0-1019.21.1
6.8.0-1019.21.1
ubuntu/linux-oem-6.8<6.8.0-1018.18
6.8.0-1018.18
ubuntu/linux-oracle<6.8.0-1017.18
6.8.0-1017.18
ubuntu/linux-raspi<6.8.0-1016.18
6.8.0-1016.18
ubuntu/linux-riscv<6.8.0-50.51.1
6.8.0-50.51.1
ubuntu/linux-xilinx<6.8.0-1017.18
6.8.0-1017.18
ubuntu/linux-raspi-realtime<6.8.0-2015.16
6.8.0-2015.16
ubuntu/linux-realtime<6.8.1-1013.14
6.8.1-1013.14
ubuntu/linux-fips<6.8.0-78.78+fips1
6.8.0-78.78+fips1
Linux Linux kernel>=4.3<6.6.51
Linux Linux kernel>=6.7<6.10.10
Linux Linux kernel=6.11-rc1
Linux Linux kernel=6.11-rc2
Linux Linux kernel=6.11-rc3
Linux Linux kernel=6.11-rc4
Linux Linux kernel=6.11-rc5
Linux Linux kernel=6.11-rc6
debian/linux*
debian/linux<6.10.11-1
6.10.11-1
debian/linux<6.10.11-1
6.10.11-1
linux/kernel>=4.3.0<6.1.191
6.1.191
linux/kernel>=6.2.0<6.6.51
6.6.51
linux/kernel>=6.7.0<6.10.10
6.10.10
debian/linux<=6.1.176-1, <=6.1.190-1
6.12.107-16.12.115-27.2.12-17.2.15-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade ubuntu/linux-aws to a version that resolves this vulnerability.

    Fixed in 4.4.0-1145.151
  2. Upgrade

    Upgrade ubuntu/linux-azure to a version that resolves this vulnerability.

    Fixed in 4.15.0-1190.205~14.04.1
  3. Upgrade

    Upgrade ubuntu/linux-lts-xenial to a version that resolves this vulnerability.

    Fixed in 4.4.0-270.304~14.04.1
  4. Upgrade

    Upgrade ubuntu/linux to a version that resolves this vulnerability.

    Fixed in 4.4.0-270.304
  5. Upgrade

    Upgrade ubuntu/linux-aws to a version that resolves this vulnerability.

    Fixed in 4.4.0-1183.198
  6. Upgrade

    Upgrade ubuntu/linux-aws-hwe to a version that resolves this vulnerability.

    Fixed in 4.15.0-1182.195~16.04.1
  7. Upgrade

    Upgrade ubuntu/linux-azure to a version that resolves this vulnerability.

    Fixed in 4.15.0-1190.205~16.04.1
  8. Upgrade

    Upgrade ubuntu/linux-gcp to a version that resolves this vulnerability.

    Fixed in 4.15.0-1175.192~16.04.1
  9. Upgrade

    Upgrade ubuntu/linux-hwe to a version that resolves this vulnerability.

    Fixed in 4.15.0-239.251~16.04.1
  10. Upgrade

    Upgrade ubuntu/linux-kvm to a version that resolves this vulnerability.

    Fixed in 4.4.0-1146.157
  11. Upgrade

    Upgrade ubuntu/linux-oracle to a version that resolves this vulnerability.

    Fixed in 4.15.0-1144.155~16.04.1
  12. Upgrade

    Upgrade ubuntu/linux-fips to a version that resolves this vulnerability.

    Fixed in 4.4.0-1115.122
  13. Upgrade

    Upgrade ubuntu/linux to a version that resolves this vulnerability.

    Fixed in 4.15.0-239.251
  14. Upgrade

    Upgrade ubuntu/linux-aws to a version that resolves this vulnerability.

    Fixed in 4.15.0-1182.195
  15. Upgrade

    Upgrade ubuntu/linux-aws-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1148.158~18.04.1
  16. Upgrade

    Upgrade ubuntu/linux-azure-4.15 to a version that resolves this vulnerability.

    Fixed in 4.15.0-1190.205
  17. Upgrade

    Upgrade ubuntu/linux-azure-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1153.160~18.04.1
  18. Upgrade

    Upgrade ubuntu/linux-gcp-4.15 to a version that resolves this vulnerability.

    Fixed in 4.15.0-1175.192
  19. Upgrade

    Upgrade ubuntu/linux-gcp-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1151.160~18.04.1
  20. Upgrade

    Upgrade ubuntu/linux-hwe-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-219.239~18.04.1
  21. Upgrade

    Upgrade ubuntu/linux-ibm-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1094.99~18.04.1
  22. Upgrade

    Upgrade ubuntu/linux-kvm to a version that resolves this vulnerability.

    Fixed in 4.15.0-1165.170
  23. Upgrade

    Upgrade ubuntu/linux-oracle to a version that resolves this vulnerability.

    Fixed in 4.15.0-1144.155
  24. Upgrade

    Upgrade ubuntu/linux-oracle-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1146.156~18.04.1
  25. Upgrade

    Upgrade ubuntu/linux-raspi-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1131.144~18.04.1
  26. Upgrade

    Upgrade ubuntu/linux-aws-fips to a version that resolves this vulnerability.

    Fixed in 4.15.0-2120.126
  27. Upgrade

    Upgrade ubuntu/linux-azure-fips to a version that resolves this vulnerability.

    Fixed in 4.15.0-2099.105
  28. Upgrade

    Upgrade ubuntu/linux-fips to a version that resolves this vulnerability.

    Fixed in 4.15.0-1137.148
  29. Upgrade

    Upgrade ubuntu/linux-gcp-fips to a version that resolves this vulnerability.

    Fixed in 4.15.0-2083.89
  30. Upgrade

    Upgrade ubuntu/linux to a version that resolves this vulnerability.

    Fixed in 5.4.0-219.239
  31. Upgrade

    Upgrade ubuntu/linux-aws to a version that resolves this vulnerability.

    Fixed in 5.4.0-1148.158
  32. Upgrade

    Upgrade ubuntu/linux-aws-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1087.94~20.04.1
  33. Upgrade

    Upgrade ubuntu/linux-azure to a version that resolves this vulnerability.

    Fixed in 5.4.0-1153.160
  34. Upgrade

    Upgrade ubuntu/linux-azure-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1094.103~20.04.1
  35. Upgrade

    Upgrade ubuntu/linux-bluefield to a version that resolves this vulnerability.

    Fixed in 5.4.0-1107.114
  36. Upgrade

    Upgrade ubuntu/linux-gcp to a version that resolves this vulnerability.

    Fixed in 5.4.0-1151.160
  37. Upgrade

    Upgrade ubuntu/linux-gcp-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1086.95~20.04.1
  38. Upgrade

    Upgrade ubuntu/linux-hwe-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-143.153~20.04.1
  39. Upgrade

    Upgrade ubuntu/linux-ibm to a version that resolves this vulnerability.

    Fixed in 5.4.0-1094.99
  40. Upgrade

    Upgrade ubuntu/linux-ibm-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1079.82~20.04.1
  41. Upgrade

    Upgrade ubuntu/linux-intel-iotg-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1083.89~20.04.1
  42. Upgrade

    Upgrade ubuntu/linux-iot to a version that resolves this vulnerability.

    Fixed in 5.4.0-1052.55
  43. Upgrade

    Upgrade ubuntu/linux-kvm to a version that resolves this vulnerability.

    Fixed in 5.4.0-1135.144
  44. Upgrade

    Upgrade ubuntu/linux-lowlatency-hwe-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-143.153~20.04.1
  45. Upgrade

    Upgrade ubuntu/linux-nvidia-tegra-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1040.40~20.04.1
  46. Upgrade

    Upgrade ubuntu/linux-oracle to a version that resolves this vulnerability.

    Fixed in 5.4.0-1146.156
  47. Upgrade

    Upgrade ubuntu/linux-oracle-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1084.90~20.04.1
  48. Upgrade

    Upgrade ubuntu/linux-raspi to a version that resolves this vulnerability.

    Fixed in 5.4.0-1131.144
  49. Upgrade

    Upgrade ubuntu/linux-riscv-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1082.86~20.04.1
  50. Upgrade

    Upgrade ubuntu/linux-xilinx-zynqmp to a version that resolves this vulnerability.

    Fixed in 5.4.0-1066.70
  51. Upgrade

    Upgrade ubuntu/linux-aws-fips to a version that resolves this vulnerability.

    Fixed in 5.4.0-1148.158+fips1
  52. Upgrade

    Upgrade ubuntu/linux-azure-fips to a version that resolves this vulnerability.

    Fixed in 5.4.0-1154.161+fips1
  53. Upgrade

    Upgrade ubuntu/linux-fips to a version that resolves this vulnerability.

    Fixed in 5.4.0-1122.132
  54. Upgrade

    Upgrade ubuntu/linux-gcp-fips to a version that resolves this vulnerability.

    Fixed in 5.4.0-1151.160+fips1
  55. Upgrade

    Upgrade ubuntu/linux to a version that resolves this vulnerability.

    Fixed in 5.15.0-143.153
  56. Upgrade

    Upgrade ubuntu/linux-aws to a version that resolves this vulnerability.

    Fixed in 5.15.0-1087.94
  57. Upgrade

    Upgrade ubuntu/linux-aws-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1020.22~22.04.1
  58. Upgrade

    Upgrade ubuntu/linux-azure to a version that resolves this vulnerability.

    Fixed in 5.15.0-1092.101
  59. Upgrade

    Upgrade ubuntu/linux-azure-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1020.23~22.04.1
  60. Upgrade

    Upgrade ubuntu/linux-azure-fde to a version that resolves this vulnerability.

    Fixed in 5.15.0-1092.101.1
  61. Upgrade

    Upgrade ubuntu/linux-gcp to a version that resolves this vulnerability.

    Fixed in 5.15.0-1086.95
  62. Upgrade

    Upgrade ubuntu/linux-gcp-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1019.21~22.04.1
  63. Upgrade

    Upgrade ubuntu/linux-gke to a version that resolves this vulnerability.

    Fixed in 5.15.0-1084.90
  64. Upgrade

    Upgrade ubuntu/linux-gkeop to a version that resolves this vulnerability.

    Fixed in 5.15.0-1069.77
  65. Upgrade

    Upgrade ubuntu/linux-hwe-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-50.51~22.04.1
  66. Upgrade

    Upgrade ubuntu/linux-ibm to a version that resolves this vulnerability.

    Fixed in 5.15.0-1079.82
  67. Upgrade

    Upgrade ubuntu/linux-ibm-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1017.17~22.04.1
  68. Upgrade

    Upgrade ubuntu/linux-intel-iotg to a version that resolves this vulnerability.

    Fixed in 5.15.0-1082.88
  69. Upgrade

    Upgrade ubuntu/linux-kvm to a version that resolves this vulnerability.

    Fixed in 5.15.0-1083.88
  70. Upgrade

    Upgrade ubuntu/linux-lowlatency to a version that resolves this vulnerability.

    Fixed in 5.15.0-143.153
  71. Upgrade

    Upgrade ubuntu/linux-lowlatency-hwe-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-50.51.1~22.04.1
  72. Upgrade

    Upgrade ubuntu/linux-nvidia to a version that resolves this vulnerability.

    Fixed in 5.15.0-1081.82
  73. Upgrade

    Upgrade ubuntu/linux-nvidia-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1019.21~22.04.1
  74. Upgrade

    Upgrade ubuntu/linux-nvidia-tegra to a version that resolves this vulnerability.

    Fixed in 5.15.0-1040.40
  75. Upgrade

    Upgrade ubuntu/linux-nvidia-tegra-igx to a version that resolves this vulnerability.

    Fixed in 5.15.0-1029.29
  76. Upgrade

    Upgrade ubuntu/linux-oracle to a version that resolves this vulnerability.

    Fixed in 5.15.0-1084.90
  77. Upgrade

    Upgrade ubuntu/linux-oracle-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1017.18~22.04.1
  78. Upgrade

    Upgrade ubuntu/linux-raspi to a version that resolves this vulnerability.

    Fixed in 5.15.0-1083.86
  79. Upgrade

    Upgrade ubuntu/linux-riscv-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-50.51.1~22.04.1
  80. Upgrade

    Upgrade ubuntu/linux-xilinx-zynqmp to a version that resolves this vulnerability.

    Fixed in 5.15.0-1051.55
  81. Upgrade

    Upgrade ubuntu/linux-bluefield to a version that resolves this vulnerability.

    Fixed in 5.15.0-1070.72
  82. Upgrade

    Upgrade ubuntu/linux-intel-iot-realtime to a version that resolves this vulnerability.

    Fixed in 5.15.0-1080.82
  83. Upgrade

    Upgrade ubuntu/linux-realtime to a version that resolves this vulnerability.

    Fixed in 5.15.0-1087.96
  84. Upgrade

    Upgrade ubuntu/linux-realtime-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.1-1013.14~22.04.1
  85. Upgrade

    Upgrade ubuntu/linux-aws-fips to a version that resolves this vulnerability.

    Fixed in 5.15.0-1087.94+fips1
  86. Upgrade

    Upgrade ubuntu/linux-azure-fips to a version that resolves this vulnerability.

    Fixed in 5.15.0-1094.103+fips1
  87. Upgrade

    Upgrade ubuntu/linux-fips to a version that resolves this vulnerability.

    Fixed in 5.15.0-143.153+fips1
  88. Upgrade

    Upgrade ubuntu/linux-gcp-fips to a version that resolves this vulnerability.

    Fixed in 5.15.0-1086.95+fips1
  89. Upgrade

    Upgrade ubuntu/linux to a version that resolves this vulnerability.

    Fixed in 6.8.0-50.51
  90. Upgrade

    Upgrade ubuntu/linux-aws to a version that resolves this vulnerability.

    Fixed in 6.8.0-1020.22
  91. Upgrade

    Upgrade ubuntu/linux-azure to a version that resolves this vulnerability.

    Fixed in 6.8.0-1020.23
  92. Upgrade

    Upgrade ubuntu/linux-gcp to a version that resolves this vulnerability.

    Fixed in 6.8.0-1019.21
  93. Upgrade

    Upgrade ubuntu/linux-gke to a version that resolves this vulnerability.

    Fixed in 6.8.0-1015.19
  94. Upgrade

    Upgrade ubuntu/linux-gkeop to a version that resolves this vulnerability.

    Fixed in 6.8.0-1002.4
  95. Upgrade

    Upgrade ubuntu/linux-ibm to a version that resolves this vulnerability.

    Fixed in 6.8.0-1017.17
  96. Upgrade

    Upgrade ubuntu/linux-lowlatency to a version that resolves this vulnerability.

    Fixed in 6.8.0-50.51.1
  97. Upgrade

    Upgrade ubuntu/linux-nvidia to a version that resolves this vulnerability.

    Fixed in 6.8.0-1019.21
  98. Upgrade

    Upgrade ubuntu/linux-nvidia-lowlatency to a version that resolves this vulnerability.

    Fixed in 6.8.0-1019.21.1
  99. Upgrade

    Upgrade ubuntu/linux-oem-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1018.18
  100. Upgrade

    Upgrade ubuntu/linux-oracle to a version that resolves this vulnerability.

    Fixed in 6.8.0-1017.18
  101. Upgrade

    Upgrade ubuntu/linux-raspi to a version that resolves this vulnerability.

    Fixed in 6.8.0-1016.18
  102. Upgrade

    Upgrade ubuntu/linux-riscv to a version that resolves this vulnerability.

    Fixed in 6.8.0-50.51.1
  103. Upgrade

    Upgrade ubuntu/linux-xilinx to a version that resolves this vulnerability.

    Fixed in 6.8.0-1017.18
  104. Upgrade

    Upgrade ubuntu/linux-raspi-realtime to a version that resolves this vulnerability.

    Fixed in 6.8.0-2015.16
  105. Upgrade

    Upgrade ubuntu/linux-realtime to a version that resolves this vulnerability.

    Fixed in 6.8.1-1013.14
  106. Upgrade

    Upgrade ubuntu/linux-fips to a version that resolves this vulnerability.

    Fixed in 6.8.0-78.78+fips1
  107. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.10.11-1
  108. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.12.107-1Fixed in 6.12.113-1Fixed in 7.2.12-1Fixed in 7.2.14-1
  109. Upgrade

    Upgrade linux/Kernel to a version that resolves this vulnerability.

    Fixed in 6.1.191
  110. Upgrade

    Upgrade linux/Kernel to a version that resolves this vulnerability.

    Fixed in 6.6.51
  111. Upgrade

    Upgrade linux/Kernel to a version that resolves this vulnerability.

    Fixed in 6.10.10

Event History

Sep 18, 2024
CVE Published
via MITRE·07:12 AM
Data Sourced
via MITRE·07:12 AM
DescriptionSeverity
Data Sourced
via OSV·07:12 AM
DescriptionSeverityAffected Software
Event
via OSV·08:15 AM
Data Sourced
via NVD·08:15 AM
RemedyDescriptionSeverityAffected Software
Data Sourced
via Red Hat·08:23 AM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2024-46787?

CVE-2024-46787 is categorized with a medium severity rating.

2

How do I fix CVE-2024-46787?

To fix CVE-2024-46787, update your Linux kernel to version 6.12.11-1 or later.

3

Which versions of the Linux kernel are affected by CVE-2024-46787?

CVE-2024-46787 affects Linux kernel versions from 4.3 to 6.6.51 and certain versions between 6.7 and 6.11-rc6.

4

What type of vulnerability is CVE-2024-46787?

CVE-2024-46787 is a race condition vulnerability related to userfaultfd in the Linux kernel.

5

Is there a specific patch for CVE-2024-46787?

Yes, a specific patch is available in the Linux kernel updates that address the issues outlined in CVE-2024-46787.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203