Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain local shell access on FreeBSD host
-
DeliveryIdentify unprivileged-accessible MMIO device file
-
ExploitMap device memory region with mmap()
-
InstallCall msync(MS_INVALIDATE) on mapped range
-
C2Access invalidated pages to trigger page fault and corrupt pager list
-
ExecuteDestroy mapping to trigger double-free of fictitious page
-
ImpactExploit kernel memory corruption to escalate to root
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attack requires a local, authenticated user account on an affected FreeBSD system (14.3-RELEASE < p16, 14.4-RELEASE < p7, 15.0-RELEASE < p11, or 15.1-RELEASE < p1) and unprivileged read/write access to a device file that provides memory-mapped I/O via an unmanaged device object in the FreeBSD VM subsystem. The trigger mechanism - calling msync(MS_INVALIDATE) on such a mapping followed by a page fault - is straightforward to invoke, but converting the resulting double-free into a privilege escalation requires exploiting a pool of 'fictitious pages' that are never recycled for other kernel uses, which complicates the exploitation path. No network access is required; no user interaction beyond a local shell session is needed. The CVSS-supplied AV:N metric conflicts with these local access requirements and should not be used as the basis for network-exposure risk assessments without vendor clarification. |
| Impact | The provided CVSS vector (AV:N/AC:L/PR:L) conflicts directly with the CVE description, which states the attack requires local access to a device providing memory-mapped I/O - this is a local, not network-reachable, attack vector. Security teams should treat the AV:N metric with skepticism and verify against FreeBSD SA-26:37 before using the 8.8 score in prioritization decisions. EPSS at 0.14% (4th percentile) reflects very low observed exploitation probability, and there is no CISA KEV listing or identified public exploit code. The 'fictitious pages' pool constraint is a meaningful limiting factor: the double-free does not drop the attacker directly into a general-purpose kernel heap primitive, requiring additional exploitation sophistication to achieve privilege escalation. Real-world exploitation exposure is low for most organizations, since it demands local shell access plus unprivileged access to a character device exposing MMIO; cloud VMs and containerized workloads without raw device passthrough are largely unaffected. Systems with local untrusted users and MMIO-capable hardware (e.g., GPU-equipped workstations or FreeBSD-based storage appliances with custom device drivers) represent the realistic risk surface. |
| Exploit ScenarioDerived | A local user on a FreeBSD workstation or server with read/write access to an MMIO-capable device file (such as a GPU device node or a custom peripheral) creates a memory mapping of that device, calls msync(MS_INVALIDATE) on a subrange to mark pages invalid, then accesses that memory range to trigger a page fault. The fault handler re-inserts the already-listed fictitious page, corrupting the pager's page list; when the mapping is subsequently destroyed, the kernel double-frees the page object. An attacker with sufficient kernel exploitation skill could leverage this corruption to escalate from an unprivileged user to root, though the constrained fictitious-page pool adds non-trivial exploitation complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 20, 2026
Use-after-free in the FreeBSD kernel virtual memory subsystem allows an unprivileged local user to corrupt the pager's page list by calling msync(MS_INVALIDATE) on a mapping of an unmanaged device object, then triggering a subsequent page fault. On object destruction, the affected page is freed twice, creating a kernel memory corruption primitive that may enable privilege escalation. No public exploit code has been identified and EPSS probability is very low (0.14%), but the vulnerability is confirmed by FreeBSD Security Advisory SA-26:37 with patches available for all affected release branches.
RemediationAI
Vendor-released patches are available for all affected branches. Upgrade to FreeBSD 14.3-RELEASE-p16, FreeBSD 14.4-RELEASE-p7, FreeBSD 15.0-RELEASE-p11, or FreeBSD 15.1-RELEASE-p1, following the update instructions in FreeBSD Security Advisory SA-26:37 at https://security.freebsd.org/advisories/FreeBSD-SA-26:37.vm.asc. Where immediate patching is not feasible, restrict unprivileged user access to character device files that expose memory-mapped I/O using devfs(8) ruleset entries (e.g., 'devfs rule add path <device> mode 0600 group wheel') to limit which users can open and mmap such devices; note that this may break legitimate application access and should be scoped carefully. Systems without local untrusted users, or where MMIO-capable device files are already root-only, have substantially reduced exposure until the patch can be applied.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability resides in FreeBSD's virtual memory (VM) subsystem, specifically in the interaction between msync(MS_INVALIDATE) and unmanaged device objects - kernel objects representing memory-mapped I/O regions that bypass the standard managed-pager lifecycle. Affected product scope is cpe:2.3:a:freebsd:freebsd per NVD CPE data, spanning multiple active release branches. The root cause (CWE-416, Use After Free) stems from a state inconsistency: when msync(MS_INVALIDATE) processes pages belonging to an unmanaged device object, it marks those physical pages invalid but fails to remove them from the pager's page list. A subsequent page fault reactivates the fault handler, which re-inserts the already-listed page, producing a corrupt doubly-linked list. When the object is later destroyed, the kernel attempts to free the same fictitious page entry twice. The affected memory pool consists exclusively of 'fictitious pages' - a FreeBSD VM construct used for device-backed mappings that are never recycled into the general kernel allocator, which constrains but does not eliminate exploitation potential.
Know when Freebsd gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Local device file access required (AV:L, PR:L); exploiting the constrained fictitious-page double-free for privilege escalation adds meaningful complexity (AC:H).
Primary rating from Vendor (freebsd).
CVSS VectorVendor: freebsd
Lifecycle Timeline
3DescriptionCVE.org
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.
Executive ViewAI
FreeBSD systems are exposed to a local privilege escalation vulnerability (CVE-2026-49418) that allows unprivileged users to corrupt kernel memory and gain system-level access; however, no public exploit code currently exists. Unpatched FreeBSD deployments face elevated compromise risk despite low current exploitation likelihood.
Apply vendor patch per FreeBSD Security Advisory SA-26:37.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
The x86-64 kernel system-call functionality in Xen 4.1.2 and earlier, as used in Citrix XenServer 6.0.2 and earlier and
The rtsol(8) and rtsold(8) programs do not validate the domain search list options provided in router advertisement mess
Server or client applications that call the SSL_check_chain() function during or after a TLS 1.3 handshake may crash due
The RFC 5011 implementation in rdata.c in ISC BIND 9.7.x and 9.8.x before 9.8.5-P2, 9.8.6b1, 9.9.x before 9.9.3-P2, and
Remote code execution in OpenSSH's sshd server (regression of CVE-2006-5051) allows unauthenticated remote attackers to
An issue was discovered in OpenSSH 7.9. Rated medium severity (CVSS 5.9), this vulnerability is remotely exploitable, no
The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot
The vm_map_lookup function in sys/vm/vm_map.c in the mmap implementation in the kernel in FreeBSD 9.0 through 9.1-RELEAS
An OpenSSL TLS server may crash if sent a maliciously crafted renegotiation ClientHello message from a client. Rated med
Integer overflow in the _gd2GetHeader function in gd_gd2.c in the GD Graphics Library (aka libgd) before 2.2.3, as used
The Stream Control Transmission Protocol (SCTP) module in FreeBSD 9.3 before p33, 10.1 before p26, and 10.2 before p9, w
In FreeBSD 12.1-STABLE before r359565, 12.1-RELEASE before p7, 11.4-STABLE before r362975, 11.4-RELEASE before p1, and 1
EUVD-2026-62229
GHSA-x3qv-w3hg-xgc7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB