CVE-2024-36881

mm/userfaultfd: reset ptes when close() for wr-protected ones

Medium · published May 30, 2024

CVSS v3.1
5.5
EPSS
0%
Percentile
14.1
In the wild
Unconfirmed
What it is

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

mm/userfaultfd: reset ptes when close() for wr-protected ones

Userfaultfd unregister includes a step to remove wr-protect bits from all

the relevant pgtable entries, but that only covered an explicit

UFFDIO_UNREGISTER ioctl, not a close() on the userfaultfd itself. Cover

that too. This fixes a WARN trace.

The only user visible side effect is the user can observe leftover

wr-protect bits even if the user close()ed on an userfaultfd when

releasing the last reference of it. However hopefully that should be

harmless, and nothing bad should happen even if so.

This change is now more important after the recent page-table-check

patch we merged in mm-unstable (446dd9ad37d0 ("mm/page_table_check:

support userfault wr-protect entries")), as we'll do sanity check on

uffd-wp bits without vma context. So it's better if we can 100%

guarantee no uffd-wp bit leftovers, to make sure each report will be

valid.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00239 · 14.1th percentile
Published
2024-05-30T15:28Z
EPSS history
Timeline
  • 30 MAY 15:28Z
    mm/userfaultfd: reset ptes when close() for wr-protected ones
    cvelistv5