CVE-2021-46988

userfaultfd: release page in error path to avoid BUG_ON

Published Feb 28, 2024 CVSS 3.1 · 5.5 Medium EPSS < 1% KEV · Not listed
Description
In the Linux kernel, the following vulnerability has been resolved:

userfaultfd: release page in error path to avoid BUG_ON

Consider the following sequence of events:

1. Userspace issues a UFFD ioctl, which ends up calling into
shmem_mfill_atomic_pte(). We successfully account the blocks, we
shmem_alloc_page(), but then the copy_from_user() fails. We return
-ENOENT. We don't release the page we allocated.
2. Our caller detects this error code, tries the copy_from_user() after
dropping the mmap_lock, and retries, calling back into
shmem_mfill_atomic_pte().
3. Meanwhile, let's say another process filled up the tmpfs being used.
4. So shmem_mfill_atomic_pte() fails to account blocks this time, and
immediately returns - without releasing the page.

This triggers a BUG_ON in our caller, which asserts that the page
should always be consumed, unless -ENOENT is returned.

To fix this, detect if we have such a "dangling" page when accounting
fails, and if so, release it before returning.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
CPEs cpe:2.3:o:linux:linux_kernel:5.12:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.13:rc1:*:*:*:*:*:*
Type Values Removed Values Added
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc7:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
May 11, 2026, 1:45 PM
Reserved
Feb 27, 2024, 6:42 PM
Status
Analyzed
Published
Feb 28, 2024, 9:15 AM
Modified
Jun 17, 2026, 4:16 AM
Severity
Low
Public date
Feb 28, 2024, 12:00 AM