Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain local unprivileged shell
-
DeliveryEnable kTLS RX on loopback socket with attacker-chosen AES-GCM key/IV
-
Exploitsendfile(2) SUID binary into loopback TCP socket
-
InstallKernel DMAP remap preserves page-cache physical address
-
C2In-place AES-GCM decrypt writes shellcode bytes into page cache
-
ExecuteExecute modified SUID binary
-
ImpactRoot shell obtained
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Write-what-where prevention
|
| Exploitation Conditions | Exploitation requires a standard unprivileged local user account with shell access - no special group membership, capability, sudo permission, or network-facing service interaction is needed. The target system must be running FreeBSD 13.0 through 15.0 on a PMAP_HAS_DMAP architecture (amd64, arm64, or riscv). Two kernel configuration defaults must be active: kern.ipc.mb_use_ext_pgs=1 (the boot-time default on all PMAP_HAS_DMAP architectures - no administrator action enables this, it is on by default) and MK_KERN_TLS built into the kernel (the default in GENERIC kernels). The attacker must be able to read the target file - world-readable SUID binaries such as /usr/bin/su satisfy this with no additional access. The attack runs entirely over the loopback interface (lo0) and requires no external network connectivity. Factors that DO NOT limit exploitation: chflags schg (system immutable flag) is explicitly confirmed to not prevent the overwrite. Factors that limit exploitation: FreeBSD 12.x and earlier are not affected; non-DMAP architectures (32-bit x86, mips, powerpc without DMAP) are not affected; systems with kern.ipc.mb_use_ext_pgs=0 or kernels built without MK_KERN_TLS are not affected. |
| Impact | No CVSS score, vector, or EPSS probability is provided in the available data - all CVSS metrics in this report are independently assessed. KEV status is unconfirmed; this vulnerability is not present in the CISA KEV catalog based on available data, though the June 9, 2026 public disclosure date means KEV lag remains plausible. Despite the absence of these enrichment signals, the real-world risk is assessed as critical based on first-principles analysis: a public exploit with confirmed root LPE in 1.5 seconds, zero race condition, no special group or capability required, and default preconditions on every PMAP_HAS_DMAP FreeBSD 13.0+ system. The exploit primitive is broadly applicable - any world-readable file can be overwritten, and the bypass of chflags schg extends impact to files that administrators consider protected. Multi-tenant deployments (hosting providers, jail-based infrastructure, containerized BSD environments) are acutely at risk because the attack vector is purely local and requires only a standard shell account. The functional equivalence to Linux Dirty Pipe (CVE-2022-0847, CVSS 7.8, EPSS ~0.45 at peak) provides a useful benchmark: Dirty Pipe saw rapid exploitation in cloud and hosting contexts within days of disclosure. The absence of CVSS/EPSS data should not be interpreted as low risk; it reflects NVD enrichment lag for a same-day disclosure. |
| Exploit ScenarioDerived | An attacker with a standard unprivileged shell account creates a loopback TCP socket pair and issues a TCP_RXTLS_ENABLE setsockopt on the receiving socket, supplying a self-chosen AES-128-GCM key, salt, and IV - no privilege check is performed on this call. The attacker then uses sendfile(2) to send a target SUID-root binary (e.g., /usr/bin/su) into the sending socket; because lo0 lacks IFCAP_MEXTPG, Guard 2 remaps the EXTPG mbuf via sf_buf to the same underlying physical page rather than copying it. The kTLS RX path decrypts the record in-place over the page-cache physical page via DMAP, writing 36 bytes of setuid(0)+execve('/bin/sh') shellcode into the binary's entry point; the attacker executes the modified binary to obtain a root shell, achieving end-to-end LPE in approximately 1.5 seconds. A public PoC (bumsrakete.c) implementing this exact flow is included in the oss-security disclosure. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 10, 2026
Page-cache corruption in FreeBSD's kTLS-RX subsystem (CVE-2026-45257 / FreeBSD-SA-26:26.kTLS) enables an unprivileged local user to overwrite arbitrary bytes in the backing physical page of any world-readable file, including SUID-root binaries, by exploiting in-place AES-GCM decryption running directly over sendfile(2)-produced EXTPG mbufs via the kernel direct map (DMAP). The write bypasses the VFS layer entirely, defeating file permissions, mount options, and chflags schg immutable flags - making this the FreeBSD functional equivalent of Linux CVE-2022-0847 (Dirty Pipe). A public exploit (bumsrakete.c) is included in the oss-security disclosure and achieves reliable root LPE in approximately 1.5 seconds on default FreeBSD 13.0 through 15.0 on amd64, arm64, and riscv; no public KEV listing has been identified at time of analysis.
RemediationAI
Apply the vendor patch documented in FreeBSD-SA-26:26.kTLS; the exact patched release version is not confirmed in the available data beyond the advisory identifier, so administrators should monitor https://www.freebsd.org/security/advisories/ and freebsd-security-notifications@ for the patched release announcement. As an immediate workaround, adding kern.ipc.mb_use_ext_pgs=0 to /etc/sysctl.conf and rebooting disables EXTPG mbufs entirely, eliminating the vulnerable code path; the trade-off is reduced kTLS throughput because zero-copy page-cache-backed mbufs will no longer be used for TLS offload, increasing CPU overhead and memory copies for TLS workloads. An alternative workaround is rebuilding the kernel with MK_KERN_TLS disabled, which removes the kTLS subsystem entirely; this eliminates all kernel TLS offload capability and will affect applications that explicitly depend on kernel-side TLS processing. For multi-tenant hosting or jail environments that cannot patch or apply the sysctl workaround immediately, restricting interactive shell access is the most effective compensating control given the purely local attack vector. Note explicitly that chflags schg (system immutable flag) does NOT prevent exploitation on vulnerable systems and should not be relied upon as a compensating control.
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
FreeBSD's kernel TLS (kTLS) subsystem offloads TLS record encryption and decryption into the kernel for performance. The sendfile(2) syscall produces vnode-backed M_EXTPG mbufs whose m_epg_pa[] array stores the physical addresses of the file's actual page-cache pages (sys/kern/kern_sendfile.c:963). On PMAP_HAS_DMAP architectures (amd64, arm64, riscv), the kernel direct map allows translating any physical address to a kernel virtual address via PHYS_TO_DMAP(). The kTLS RX decrypt path (sys/opencrypto/criov.c:273, sys/crypto/aesni/aesni.c:599-605) calls AES_GCM_decrypt with input and output pointing to the same DMAP-derived address, writing plaintext directly over the page-cache page. Three guards exist to prevent EXTPG mbufs from reaching the in-place decrypt: mb_unmapped_compress (gated on payload length <= ~224 bytes on amd64, bypassed by using records >224 bytes), mb_unmapped_to_ext (converts EXTPG for interfaces lacking IFCAP_MEXTPG such as lo0, but allocates sf_buf whose kva == PHYS_TO_DMAP(pa) on DMAP architectures, preserving the same physical mapping), and sb_mark_notready (moves data into the kTLS decrypt queue with no M_EXTPG check at all). All three are bypassable in sequence. The vulnerable sendfile/EXTPG path was introduced in commit 3c0e56850511 (~2020) and first shipped in FreeBSD 13.0. No CWE is assigned in the available data; the root cause class most closely corresponds to improper isolation between kernel subsystems - specifically, the assumption that EXTPG mbufs from sendfile are safe to decrypt in-place without verifying that the output buffer is not a live page-cache page.
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-only exploit requiring a standard shell account (PR:L, AV:L); default config, no race (AC:L); scope changed as user privilege boundary is crossed to achieve root and persistent filesystem modification (S:C, C/I/A:H).
Primary rating from Vendor (CNA).
CVSS VectorVendor
Lifecycle Timeline
1Description PRE-NVD
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-39780
NVD
CVE.org
EPSS
VulDB
GitHub PoC
Exploit-DB