Skip to content
OpenAdvisories
Unscored CVE-2021-46927 EUVD-2021-33575GHSA-4f2m-qf8w-84rw

nitro_enclaves: Use get_user_pages_unlocked() call to handle mmap assert

Published Feb 27, 2024 · Updated May 11, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.2 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.2 Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.2 Package: linux-hwe-edge Package: linux-intel-5.13 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.2 Package: linux-nvidia-6.2 Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-raspi2 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

nitro_enclaves: Use get_user_pages_unlocked() call to handle mmap assert

After commit 5b78ed24e8ec ("mm/pagemap: add mmap_assert_locked()
annotations to find_vma*()"), the call to get_user_pages() will trigger
the mmap assert.

static inline void mmap_assert_locked(struct mm_struct *mm)
{
lockdep_assert_held(&mm->mmap_lock);
VM_BUG_ON_MM(!rwsem_is_locked(&mm->mmap_lock), mm);
}

[ 62.521410] kernel BUG at include/linux/mmap_lock.h:156!
...........................................................
[ 62.538938] RIP: 0010:find_vma+0x32/0x80
...........................................................
[ 62.605889] Call Trace:
[ 62.608502] <TASK>
[ 62.610956] ? lock_timer_base+0x61/0x80
[ 62.614106] find_extend_vma+0x19/0x80
[ 62.617195] __get_user_pages+0x9b/0x6a0
[ 62.620356] __gup_longterm_locked+0x42d/0x450
[ 62.623721] ? finish_wait+0x41/0x80
[ 62.626748] ? __kmalloc+0x178/0x2f0
[ 62.629768] ne_set_user_memory_region_ioctl.isra.0+0x225/0x6a0 [nitro_enclaves]
[ 62.635776] ne_enclave_ioctl+0x1cf/0x6d7 [nitro_enclaves]
[ 62.639541] __x64_sys_ioctl+0x82/0xb0
[ 62.642620] do_syscall_64+0x3b/0x90
[ 62.645642] entry_SYSCALL_64_after_hwframe+0x44/0xae

Use get_user_pages_unlocked() when setting the enclave memory regions.
That's a similar pattern as mmap_read_lock() used together with
get_user_pages().

Affected products

VendorProductAffectedFixed
Linux Linux 5.15 5.15.13

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 5.15.15-1 —
Debian 13 linux 5.15.15-1 —
Debian 12 linux 5.15.15-1 —
ReleasePackageFixed inAdvisory
Ubuntu 22.04 LTS linux-riscv +20 No fix yet —
Ubuntu 20.04 LTS linux-gke +26 No fix yet —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP5 kernel-64kb +6 5.14.21-150500.55.59.1 SUSE-SU-2024:1480-1
SLES 15 SP5 kernel-azure +2 5.14.21-150500.33.48.1 SUSE-SU-2024:1490-1
SLES 15 SP5 kernel-default-base 5.14.21-150500.55.59.1.150500.6.25.7 SUSE-SU-2024:1480-1
SLES 15 SP4 kernel-64kb +6 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
SLES 15 SP4 kernel-default-base 5.14.21-150400.24.116.1.150400.24.54.5 SUSE-SU-2024:1321-1
Show 10 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP4 kernel-default-base 5.14.21-150400.24.116.1.150400.24.54.5 SUSE-SU-2024:1321-1
SLES for SAP 15 SP4 kernel-docs +4 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
SLE Micro 5.5 kernel-default 5.14.21-150500.55.59.1 SUSE-SU-2024:1480-1
SLE Micro 5.5 kernel-default-base 5.14.21-150500.55.59.1.150500.6.25.7 SUSE-SU-2024:1480-1
SLE Micro 5.5 kernel-rt +1 5.14.21-150500.13.47.1 SUSE-SU-2024:1466-1
SLE Micro 5.4 kernel-default 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
SLE Micro 5.4 kernel-default-base 5.14.21-150400.24.116.1.150400.24.54.5 SUSE-SU-2024:1321-1
SLE Micro 5.4 kernel-rt +1 5.14.21-150400.15.76.1 SUSE-SU-2024:1320-1
SLE Micro 5.3 kernel-default 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
SLE Micro 5.3 kernel-default-base 5.14.21-150400.24.116.1.150400.24.54.5 SUSE-SU-2024:1321-1
SLE Micro 5.3 kernel-rt +1 5.14.21-150400.15.76.1 SUSE-SU-2024:1320-1
SLE Live Patching 15 SP5 kernel-default 5.14.21-150500.55.59.1 SUSE-SU-2024:1480-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5-RT_Update_13 1-150500.11.3.1 SUSE-SU-2024:1466-1
SLE Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_12 1-150500.11.7.1 SUSE-SU-2024:1480-1
SLE Live Patching 15 SP4 kernel-default 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
SLE Live Patching 15 SP4 kernel-livepatch-SLE15-SP4_Update_25 1-150400.9.5.1 SUSE-SU-2024:1321-1
SLE HPC 15 SP4 kernel-64kb +5 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
SLE HPC 15 SP4 kernel-default-base 5.14.21-150400.24.116.1.150400.24.54.5 SUSE-SU-2024:1321-1
SUSE Real Time Module 15 SP5 kernel-rt +3 5.14.21-150500.13.47.1 SUSE-SU-2024:1466-1
SUSE Manager Server 4.3 kernel-default-base 5.14.21-150400.24.116.1.150400.24.54.5 SUSE-SU-2024:1321-1
SUSE Manager Server 4.3 kernel-syms +3 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
SUSE Manager Proxy 4.3 kernel-default-base 5.14.21-150400.24.116.1.150400.24.54.5 SUSE-SU-2024:1321-1
SUSE Manager Proxy 4.3 kernel-syms +2 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.5 dtb-aarch64 +10 5.14.21-150500.55.59.1 SUSE-SU-2024:1480-1
openSUSE Leap 15.5 kernel-azure +2 5.14.21-150500.33.48.1 SUSE-SU-2024:1490-1
openSUSE Leap 15.5 kernel-default-base 5.14.21-150500.55.59.1.150500.6.25.7 SUSE-SU-2024:1480-1
openSUSE Leap 15.5 kernel-rt +3 5.14.21-150500.13.47.1 SUSE-SU-2024:1466-1
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.4 kernel-default 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
openSUSE Leap Micro 5.4 kernel-default-base 5.14.21-150400.24.116.1.150400.24.54.5 SUSE-SU-2024:1321-1
openSUSE Leap Micro 5.4 kernel-rt 5.14.21-150400.15.76.1 SUSE-SU-2024:1320-1
openSUSE Leap Micro 5.3 kernel-default 5.14.21-150400.24.116.1 SUSE-SU-2024:1321-1
openSUSE Leap Micro 5.3 kernel-default-base 5.14.21-150400.24.116.1.150400.24.54.5 SUSE-SU-2024:1321-1
openSUSE Leap Micro 5.3 kernel-rt 5.14.21-150400.15.76.1 SUSE-SU-2024:1320-1

Advisories 6

References