Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain unprivileged local shell
-
DeliveryBlock thread in poll/select on target fd
-
ExploitClose fd to free wait-queue object
-
ExecutionReallocate freed object with controlled data
-
PersistWakeup dereferences freed memory
-
ImpactCorrupt kernel state to gain 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 | Exploitation requires the attacker to already have unprivileged local code execution on the FreeBSD host (no remote vector; CVSS is AV:L/PR:L). The concrete trigger is a race: one thread must be blocked in poll(2) or select(2) waiting on a file descriptor while another thread concurrently closes that descriptor, and the descriptor must be one of the specific file-descriptor types whose teardown path fails to unlink blocked threads from the wait queue before freeing the object. Limiting factors: the attacker needs a valid local account or foothold, must win a timing race between the wakeup and the free, and typically must control kernel heap layout to reallocate the freed object usefully - hence SSVC marks it not automatable. It does not require pre-existing elevated privileges, user interaction, or any non-default configuration; the vulnerable code is part of the standard kernel on unpatched 14.3, 14.4, and 15.0 releases. |
| Impact | The signals point to a serious but not urgent-at-internet-scale issue. The CVSS 3.1 vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (7.8, High) shows a local-only attack requiring some (low) privileges but with full confidentiality, integrity, and availability impact - consistent with a local-user-to-root escalation. SSVC reinforces this: Technical Impact is 'total,' but Exploitation is 'none' (no observed or public exploitation) and Automatable is 'no,' meaning it cannot be trivially mass-exploited and requires a per-target local foothold. EPSS is very low at 0.02% (5th percentile), and there is no CISA KEV listing, so there is no evidence of active exploitation. These signals are internally consistent, not conflicting: high host-level impact and clear exploitability for a local attacker, but low probability of widespread automated abuse because the attacker must already have local code execution. This is a real patch priority for multi-user, shared, or container/jail-host FreeBSD systems where untrusted local users exist, and a lower priority for single-tenant appliances where no untrusted local access is available. Note the description states superuser privileges can be obtained but does not include an independent public reliability assessment - treat weaponization difficulty as inferred from the UAF class, not confirmed. |
| Exploit ScenarioDerived | An unprivileged local user (for example a low-privilege shell account, a compromised service account, or code running inside a jail on a shared host) runs a program that blocks a thread in poll(2) or select(2) on a specific descriptor type, then closes that descriptor from another thread to trigger freeing of the still-referenced object. By grooming the kernel heap so the freed object is reallocated with attacker-controlled contents before the blocked thread is woken, the attacker turns the use-after-free into kernel memory corruption and escalates to superuser (root). No public exploit is identified at time of analysis, and SSVC rates the flaw as not automatable, so exploitation requires targeted, per-host effort. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 23, 2026
Local privilege escalation in the FreeBSD kernel (14.3, 14.4, and 15.0 release branches) lets an unprivileged local user obtain superuser privileges through a use-after-free in the poll(2)/select(2) subsystem. When a file descriptor is closed while a thread is still blocked waiting on it, certain descriptor types fail to unlink the sleeping thread from the object's wait queue before the object is freed, so the later wakeup dereferences freed kernel memory. No public exploit identified at time of analysis, and CISA SSVC records exploitation status as none, but technical impact is rated total.
RemediationAI
Upgrade to the fixed patch level for your release branch: FreeBSD 14.3-RELEASE-p14, FreeBSD 14.4-RELEASE-p5, or FreeBSD 15.0-RELEASE-p9, per the vendor advisory FreeBSD-SA-26:19.file (https://security.freebsd.org/advisories/FreeBSD-SA-26:19.file.asc). Apply via freebsd-update fetch/install (binary update) or by rebuilding the kernel from the corresponding security branch, then reboot, since this is a kernel-space fix and a running system remains vulnerable until the new kernel is loaded. If immediate patching is not possible, the practical compensating control is to reduce untrusted local access to affected hosts: restrict shell/login access, avoid running untrusted code, and on multi-tenant systems limit or isolate untrusted users, jails, and containers that share the vulnerable kernel - the trade-off is operational disruption to legitimate multi-user workloads, and note there is no kernel toggle that disables poll(2)/select(2) without breaking normal applications, so these controls are containment rather than a true fix. Prioritize reboots on shared, multi-user, and jail-host systems where local attackers are plausible.
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 flaw lives in FreeBSD's event-notification path for the classic synchronous multiplexing syscalls poll(2) and select(2). A thread that blocks in these calls registers itself on a per-object (per-file-descriptor) wait queue but, by design, does not hold its own reference on the underlying file/object. The kernel is therefore responsible for detaching any sleeping threads from that wait queue when the backing object is destroyed. For some descriptor types the teardown path omits this unlink step, leaving a dangling wait-queue entry that points at memory returned to the allocator. This is a textbook CWE-416 (Use After Free): the freed object is later touched when the blocked thread is woken, and because it is kernel-controlled memory the condition is corruptible into a write/control primitive. The affected component is the base FreeBSD operating system kernel, identified in CPE data as cpe:2.3:a:freebsd:freebsd, i.e. the OS itself rather than a third-party package.
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
Unprivileged local user (PR:L, AV:L) triggering a UAF that yields root gives full C/I/A impact; scope unchanged as it stays within the OS security authority.
Primary rating from Vendor (freebsd).
CVSS VectorVendor: freebsd
Lifecycle Timeline
2DescriptionCVE.org
A file descriptor can be closed while a thread is blocked in a poll(2) or select(2) call waiting for that descriptor. Because the blocked thread does not hold a reference to the underlying object, this closure may result in the object being freed while the thread remains blocked. In this situation, the kernel must remove the blocked thread from the per-object wait queue prior to freeing the object.
In the case of some file descriptor types, the kernel failed to unlink blocked threads from the object before freeing it. When the blocked thread is subsequently woken, it accesses memory that has already been freed resulting in a use-after-free vulnerability.
The use-after-free vulnerability may be triggered by an unprivileged local user and can be exploited to obtain superuser privileges.
Executive ViewAI
FreeBSD kernel versions 14.3, 14.4, and 15.0 contain a local privilege escalation vulnerability (CVE-2026-45251) enabling unprivileged local users to gain superuser privileges. Organizations running these FreeBSD versions risk total system compromise, as affected systems can be fully controlled by unauthorized users with local access.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict local interactive access to trusted accounts only; implement Mandatory Access Control (MAC) profiles to constrain unprivileged user capabilities; monitor kernel logs and system call traces for exploitation patterns involving poll(2)/select(2); consider temporary network isolation of affected systems pending patch availability.
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
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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-31256
GHSA-wp9w-fp98-2cxm
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB