Skip to main content

FreeBSD CVE-2026-45251

| EUVDEUVD-2026-31256 HIGH
Use After Free (CWE-416)
2026-05-21 freebsd GHSA-wp9w-fp98-2cxm
7.8
CVSS 3.1 · Vendor: freebsd
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain unprivileged local shell
  2. Delivery
    Block thread in poll/select on target fd
  3. Exploit
    Close fd to free wait-queue object
  4. Execution
    Reallocate freed object with controlled data
  5. Persist
    Wakeup dereferences freed memory
  6. Impact
    Corrupt 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

FreeBSD 14.3-RELEASE <p14
FreeBSD 15.0-RELEASE <p9
FreeBSD 14.4-RELEASE <p5

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

Vendor (freebsd) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

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.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (freebsd).

CVSS VectorVendor: freebsd

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
CVE Published
May 21, 2026 - 09:04 nvd
UNKNOWN (no severity yet)
CVE Published
May 21, 2026 - 09:04 cve.org
HIGH 7.8

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.0%
Top 95% exploitable
Prevalence
Medium
widely used server/appliance OS but far less common than Linux/Windows
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

CVE-2012-0217 HIGH POC
7.2 Jun 12

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

CVE-2025-14558 HIGH POC
7.2 Mar 09

The rtsol(8) and rtsold(8) programs do not validate the domain search list options provided in router advertisement mess

CVE-2020-1967 HIGH POC
7.5 Apr 21

Server or client applications that call the SSL_check_chain() function during or after a TLS 1.3 handshake may crash due

CVE-2013-4854 HIGH POC
7.8 Jul 29

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

CVE-2024-6387 HIGH POC
8.1 Jul 01

Remote code execution in OpenSSH's sshd server (regression of CVE-2006-5051) allows unauthenticated remote attackers to

CVE-2019-6111 MEDIUM POC
5.9 Jan 31

An issue was discovered in OpenSSH 7.9. Rated medium severity (CVSS 5.9), this vulnerability is remotely exploitable, no

CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2013-2171 MEDIUM POC
6.9 Jul 02

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

CVE-2021-3449 MEDIUM
5.9 Mar 25

An OpenSSL TLS server may crash if sent a maliciously crafted renegotiation ClientHello message from a client. Rated med

CVE-2016-5766 HIGH POC
8.8 Aug 07

Integer overflow in the _gd2GetHeader function in gd_gd2.c in the GD Graphics Library (aka libgd) before 2.2.3, as used

CVE-2016-1879 HIGH POC
7.5 Jan 29

The Stream Control Transmission Protocol (SCTP) module in FreeBSD 9.3 before p33, 10.1 before p26, and 10.2 before p9, w

CVE-2020-7457 HIGH POC
8.1 Jul 09

In FreeBSD 12.1-STABLE before r359565, 12.1-RELEASE before p7, 11.4-STABLE before r362975, 11.4-RELEASE before p1, and 1

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy