When msync(MS_INVALIDATE) is called on a mapping of an unmanaged device object, the physical pages in the mapping range are marked invalid but remain in the pager's page list. A subsequent page fault will cause the fault handler to re-insert the page into the object's list. This corrupts the list, and on object destruction the page is freed twice. An unprivileged local user with access to a device that provides memory-mapped I/O can trigger a use-after-free in the kernel, though this is limited to a pool of objects ("fictitious pages") that are never recycled for a different purpose. It may be possible to exploit this to escalate privileges.
History

Wed, 19 Aug 2026 04:30:00 +0000

Type Values Removed Values Added
Description When msync(MS_INVALIDATE) is called on a mapping of an unmanaged device object, the physical pages in the mapping range are marked invalid but remain in the pager's page list. A subsequent page fault will cause the fault handler to re-insert the page into the object's list. This corrupts the list, and on object destruction the page is freed twice. An unprivileged local user with access to a device that provides memory-mapped I/O can trigger a use-after-free in the kernel, though this is limited to a pool of objects ("fictitious pages") that are never recycled for a different purpose. It may be possible to exploit this to escalate privileges.
Title Use-after-free in device pager page list
Weaknesses CWE-416
References

cve-icon MITRE

Status: PUBLISHED

Assigner: freebsd

Published:

Updated: 2026-08-19T04:14:17.429Z

Reserved: 2026-05-29T20:24:28.615Z

Link: CVE-2026-49418

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-19T05:17:03.943

Modified: 2026-08-19T05:17:03.943

Link: CVE-2026-49418

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

No data.