Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain unprivileged local shell access
-
DeliveryCreate largepage POSIX shared memory object via shm_open
-
ExploitSpawn concurrent threads invoking FIOSSHMLPGCNF ioctl simultaneously
-
InstallWin TOCTOU race due to missing rangelock
-
C2Corrupt kernel object state with conflicting page size values
-
ExecuteLeverage inconsistent state to overwrite kernel structures
-
ImpactEscalate to root privileges
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture TOCTOU prevention
|
| Exploitation Conditions | Exploitation requires a local unprivileged user account on a vulnerable FreeBSD system, confirmed by CVSS PR:L and the vendor description explicitly stating 'an unprivileged local user can exploit this race.' The attacker must be able to create POSIX shared memory objects (shm_open(2)) - a capability available to all unprivileged users by default on FreeBSD - and must invoke the FIOSSHMLPGCNF ioctl concurrently from two threads or processes against the same object before any backing memory has been allocated. The race window is narrowly scoped to the initialization phase of largepage shared memory objects; once a page size is set and memory is allocated, the condition no longer applies. Limiting factors: the attack vector is strictly local (AV:L), so remote attackers without prior shell access cannot exploit this directly; the vulnerability is in the largepage shared memory code path, which is not invoked by applications that use only standard (non-hugepage) shared memory; and systems restricting local user access (single-user appliances, read-only jails, mandatory access control enforcement) significantly reduce or eliminate exposure. |
| Impact | The CVSS 7.8 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) accurately captures the threat model: any unprivileged local user with shell access can attempt exploitation with no required user interaction and no elevated starting privileges. Attack complexity is rated low, which - while somewhat optimistic for a race condition - reflects that TOCTOU races in ioctl handlers are well-understood and reliably triggerable via concurrent thread spawning without sophisticated primitives. The EPSS score of 0.13% (3rd percentile) is strikingly low relative to the CVSS severity, a divergence that is consistent with absence of public exploit code and no CISA KEV listing; this suggests risk is real but not yet actively operationalized by threat actors. Local privilege escalation flaws in BSD kernels have historically attracted targeted exploitation in shared-hosting, jail-based multi-tenancy, and post-intrusion lateral movement scenarios, even absent mass weaponization. The missing rangelock is a narrow but well-defined defect - developers familiar with kernel locking primitives could construct a working proof-of-concept from the advisory description alone. Organizations running FreeBSD in multi-user environments, co-located servers, or as a hypervisor base should treat this as a high-priority patch given the low barrier to exploitation once local access is established. |
| Exploit ScenarioDerived | An unprivileged attacker with a local shell account on a vulnerable FreeBSD host writes a program that creates a largepage POSIX shared memory object, then races two threads to simultaneously invoke the FIOSSHMLPGCNF ioctl before either thread's write completes. Both threads observe an unconfigured object, both proceed to set conflicting page sizes, and the resulting inconsistent kernel state is leveraged through a subsequent memory operation to overwrite a kernel data structure and escalate to root. No public exploit code has been identified at time of analysis, but the advisory description provides sufficient implementation detail for a kernel-familiar researcher to construct a reliable proof-of-concept. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 26, 2026
Privilege escalation in FreeBSD's POSIX shared memory subsystem allows an unprivileged local user to gain root-level access by exploiting a race condition in the FIOSSHMLPGCNF ioctl handler. The kernel's largepage shared memory page-size configuration check is performed without holding the rangelock, enabling two concurrent callers to each observe an unconfigured object and write conflicting page sizes, corrupting kernel object state in an exploitable way. No public exploit code or CISA KEV entry has been identified at time of analysis; EPSS is 0.13% (3rd percentile), indicating low current exploitation probability, though local privilege escalation primitives in OS kernels are high-value targets for post-compromise and container-escape scenarios.
RemediationAI
The primary fix is to update to a patched release: FreeBSD 14.4-RELEASE-p9, FreeBSD 15.0-RELEASE-p13, or FreeBSD 15.1-RELEASE-p3, as documented in FreeBSD Security Advisory FreeBSD-SA-26:63.posixshm.asc at https://security.freebsd.org/advisories/FreeBSD-SA-26:63.posixshm.asc. Systems running freebsd-update can apply the patch via the standard freebsd-update fetch and freebsd-update install workflow followed by a reboot to reload the kernel. For environments where immediate patching is not feasible, the most effective compensating control is to eliminate or strictly restrict unprivileged local shell access - for example, by removing interactive accounts, enforcing mandatory access control policies (MAC framework), or migrating workloads to isolated jails with reduced kernel surface exposure. Disabling largepage shared memory support at the kernel level (if operationally feasible) would remove the vulnerable ioctl code path entirely, though this may break applications that rely on hugepage-backed shared memory. Each of these workarounds carries operational trade-offs and none substitutes for the vendor patch.
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 posixshm kernel subsystem, specifically in the handler for the FIOSSHMLPGCNF ioctl(2) operation. This ioctl is designed to set the page size for a largepage POSIX shared memory object exactly once - immediately after creation and before any backing memory is allocated. The root cause is CWE-367 (Time-of-Check Time-of-Use): the check for whether the page size has already been configured is not performed under the protection of the object's rangelock. The rangelock is FreeBSD's per-object locking mechanism for serializing access to memory object state; omitting it here creates a classic TOCTOU window. Two concurrent threads can both read the configuration state as 'unconfigured', independently decide to proceed with their respective page size values, and both write to the object, leaving it in a logically inconsistent state that can be leveraged to break kernel memory isolation invariants. Affected product scope is confirmed via CPE cpe:2.3:a:freebsd:freebsd:* across the 14.4 and 15.x stable branches.
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:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Local ioctl exploitation requires PR:L (unprivileged local user); race is reliably triggerable justifying AC:L; full C/I/A reflects complete privilege escalation to root.
Primary rating from Vendor (freebsd).
CVSS VectorVendor: freebsd
Lifecycle Timeline
3DescriptionCVE.org
The FIOSSHMLPGCNF ioctl(2) operation configures the page size for a largepage shared memory object. This is intended to be used immediately after creating the object, before any memory is allocated for the object. The handler checked whether a page size had already been configured without holding the rangelock. Two concurrent callers could both observe an unconfigured object and set conflicting page sizes, leaving the object in an inconsistent state.
An unprivileged local user can exploit this race to escalate privileges.
Zero Day Initiative Advisories
Executive ViewAI
A privilege escalation vulnerability in FreeBSD's shared memory subsystem (CVE-2026-58094) allows unprivileged local users to gain root-level access through a race condition in kernel object state management. Organizations running FreeBSD servers, workstations, or containerized environments are exposed to privilege escalation when end users or applications have local system access, creating a direct lateral-movement and persistence pathway for attackers who have already compromised a foothold.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) restrict SSH and local console access to administrator-only personnel; (2) disable POSIX shared memory functionality for non-essential applications; (3) enable comprehensive kernel audit logging to detect anomalous ioctl calls targeting shared memory subsystem; (4) implement network segmentation and monitoring to limit post-compromise lateral movement from affected systems; (5) subscribe to FreeBSD security advisories for patch-release notification and maintain readiness for emergency patching.
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.
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-66253
NVD
CVE.org
EPSS
Vulnrichment
VulDB
GitHub PoC
Exploit-DB