Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain unprivileged local shell
-
DeliveryWrite malicious shared library
-
ExploitSet LD_PRELOAD to library
-
ExecutionExecute setuid/setgid Linux binary
-
PersistLoader injects library (AT_SECURE=0)
-
ImpactRun code with elevated privileges
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Privilege assignment review
|
| Exploitation Conditions | Requires the FreeBSD Linux compatibility layer (Linuxulator) to be enabled and at least one set-user-ID or set-group-ID Linux (not native FreeBSD) binary present and executable by the attacker; the actor must already have unprivileged local access to run commands and set environment variables. Exploitation is limited by these factors: it is local-only (AV:L, no remote/network path), it does not work against native FreeBSD setuid binaries, and hosts that do not enable the Linuxulator or expose no privileged Linux binaries are not exploitable. No user interaction from a victim and no non-default configuration beyond enabling Linux binary support is needed (PR:L reflects the required prior unprivileged foothold). |
| Impact | Signals are internally consistent and point to a real but locally-scoped privilege escalation rather than a mass-exploitation event. The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U) confirms local access with low complexity and low existing privileges, and SSVC rates Technical Impact as 'total' - consistent with obtaining the full privileges of a setuid-root binary. However, SSVC Exploitation is 'none' (no observed or public exploitation) and Automatable is 'no' (this is not a remotely wormable network flaw), which aligns with the very low EPSS score (0.14%, 4th percentile) and the absence of any KEV listing. One discrepancy worth flagging: the reported vector uses C:N despite SSVC 'total' technical impact and the fact that inheriting a setuid-root binary's privileges typically grants full confidentiality access - this analyst assesses C:H is more defensible (see assessed vector). Net: patch on a normal, prioritized cadence, especially on multi-user hosts running Linux binaries; this is not an emergency internet-facing exposure. |
| Exploit ScenarioDerived | An unprivileged local user on a FreeBSD host that runs Linux binaries writes a small malicious shared library, sets LD_PRELOAD to point at it, and executes a setuid-root Linux binary. Because AT_SECURE is incorrectly zero, the Linux loader honors LD_PRELOAD and loads the attacker's library into the privileged process, running attacker code with the binary's elevated user/group ID. No public exploit code has been identified, but the technique is straightforward for anyone with local shell access. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 22, 2026
Local privilege escalation in FreeBSD's Linux binary compatibility layer (Linuxulator) allows an unprivileged user to preload a malicious shared library into set-user-ID or set-group-ID Linux binaries. Because the P_SUGID flag is not yet set when execve(2) builds the auxiliary vector, AT_SECURE is written as zero, so the Linux runtime loader fails to disable LD_PRELOAD and other unsafe behaviors for privileged binaries. Affects FreeBSD 14.3, 14.4, and 15.0 release branches; no public exploit identified at time of analysis, and EPSS risk is low (0.14%, 4th percentile).
RemediationAI
Vendor-released patch: update to FreeBSD 14.4-RELEASE-p6, 14.3-RELEASE-p15, or 15.0-RELEASE-p10 (or later) as applicable to your branch, following FreeBSD-SA-26:30.linux (https://security.freebsd.org/advisories/FreeBSD-SA-26:30.linux.asc); apply via freebsd-update or by rebuilding the kernel from patched sources, then reboot so the corrected execve/auxiliary-vector code path is loaded. If patching must be deferred, the most effective compensating control is to unload/disable the Linux compatibility layer entirely by removing the linux kernel module (kldunload linux linux64) and preventing linux_enable in rc.conf - this eliminates the vulnerable code path but breaks any workloads that depend on running Linux binaries. Where the Linuxulator must remain enabled, reduce exposure by removing the setuid/setgid bit from Linux binaries that do not strictly require it and by restricting untrusted local/interactive access to hosts that run privileged Linux executables; note these controls only shrink the attack surface and are not a substitute for the fix.
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 Linuxulator is FreeBSD's kernel-level ABI compatibility subsystem that lets native Linux ELF binaries run on FreeBSD. The Linux dynamic loader (ld.so) relies on the AT_SECURE entry in the ELF auxiliary vector to decide whether a process is running in 'secure mode' - when AT_SECURE is 1, the loader ignores attacker-influenced environment variables such as LD_PRELOAD and LD_LIBRARY_PATH. FreeBSD's implementation derived AT_SECURE from the P_SUGID process flag, but during execve(2) that flag is set only after the auxiliary vector has already been constructed, producing a time-of-construction ordering bug in which AT_SECURE is always emitted as zero for setuid/setgid Linux binaries. This maps to CWE-266 (Incorrect Privilege Assignment): a privileged execution context is not correctly recognized as privileged, so the security hardening that should apply to setuid/setgid programs is silently skipped.
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:N/I:H/A:H
Local unprivileged user (AV:L, PR:L) reliably preloads code into a setuid-root binary, yielding full C/I/A control, so C:H rather than the reported C:N.
Primary rating from Vendor (freebsd).
CVSS VectorVendor: freebsd
Lifecycle Timeline
2DescriptionCVE.org
The Linuxulator determined whether a binary was set-user-ID or set-group-ID by checking the P_SUGID process flag. During execve(2), this flag is not yet set at the point where the auxiliary vector is constructed, so AT_SECURE was incorrectly set to zero for set-user-ID and set-group-ID executables.
An unprivileged local user can inject a shared library via LD_PRELOAD into a set-user-ID or set-group-ID Linux binary, gaining the privileges of that binary.
Executive ViewAI
CVE-2026-49413 is a local privilege escalation vulnerability in FreeBSD's Linuxulator affecting versions 14.3, 14.4, and 15.0 that allows unprivileged users to escalate privileges when executing Linux applications. The vulnerability has no vendor patch currently available, leaving affected systems at ongoing risk and requiring immediate compensating control implementation.
No vendor-released patch identified at time of analysis. Implement: (1) disable or strictly restrict LD_PRELOAD environment variable for Linux binaries at system level; (2) audit and remove unnecessary set-user-ID and set-group-ID bits from Linux executables; (3) implement filesystem access controls preventing unprivileged users from modifying shared library directories; (4) enable kernel audit logging to monitor execve(2) calls for suspicious LD_PRELOAD usage; (5) consider disabling the Linuxulator feature entirely if Linux binary compatibility is not operationally required.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
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-39965
NVD
CVE.org
EPSS
Vulnrichment
VulDB
GitHub PoC
Exploit-DB