Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Local unprivileged trigger (AV:L/AC:L/PR:L) with no direct code execution; the flaw only weakens an integrity mitigation (I:L), so no C/A impact standalone, unlike the vendor's chained 7.8.
Primary rating from Vendor (freebsd).
CVSS VectorVendor: freebsd
Lifecycle Timeline
3DescriptionCVE.org
The ELF image activator cleared per-process ASLR preference flags for setuid binaries after the code that computes the PIE base address, rather than before. As a result, a user-requested ASLR disable was still in effect at the point where the base address was chosen.
An unprivileged local user can disable ASLR for a setuid PIE binary by calling procctl(2) before execve(2). This makes exploitation of any separate memory corruption vulnerability in that binary significantly easier.
AnalysisAI
Local ASLR bypass in the FreeBSD ELF image activator (kernel) lets an unprivileged user neutralize address-space layout randomization for setuid PIE binaries. By calling procctl(2) to request ASLR disablement before execve(2), the per-process disable flag remains active when the PIE base address is computed, because the activator clears the flag too late. This is a mitigation-weakening flaw that materially eases exploitation of any separate memory-corruption bug in those privileged binaries; there is no public exploit identified at time of analysis and EPSS is low (0.18%, 8th percentile).
Technical ContextAI
The issue lives in FreeBSD's kernel ELF image activator, the code path that loads ELF executables during execve(2) and lays out their memory, including the randomized base for position-independent executables (PIE). FreeBSD exposes per-process ASLR control via procctl(2) (PROC_ASLR_CTL), allowing a process to request that randomization be disabled. The bug is a classic CWE-179 (incorrect behavior order / improper handling of case sensitivity-adjacent ordering): for setuid binaries the activator was supposed to discard a user-requested ASLR-disable preference, but it cleared those flags after the base address was already computed instead of before. Because setuid execution crosses a privilege boundary, the user's earlier ASLR-disable request should not carry into the more-privileged process - here it does, defeating ASLR specifically for privileged setuid PIE targets.
RemediationAI
Apply the FreeBSD security patches to a fixed level: update to FreeBSD 14.3-RELEASE-p15, 14.4-RELEASE-p6, or 15.0-RELEASE-p10 (or later) as documented in advisory FreeBSD-SA-26:32.elf (https://security.freebsd.org/advisories/FreeBSD-SA-26:32.elf.asc), typically via freebsd-update fetch install followed by a reboot. Until patching is possible, the most direct compensating control is to reduce the setuid attack surface - audit and remove or disable the setuid bit on non-essential setuid PIE binaries (chmod u-s), accepting that this can break functionality such as ping, su, or passwd for ordinary users and should be tested per binary. Restricting local/interactive access to trusted users also limits exposure since exploitation requires local code execution, but this only narrows the audience rather than closing the flaw. Generic ASLR sysctl tuning is not a reliable mitigation here because the defect specifically reintroduces a user-controlled disable for privileged targets, so patching is strongly preferred over workarounds.
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
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
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
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
A statement in the System Programming Guide of the Intel 64 and IA-32 Architectures Software Developer's Manual (SDM) wa
The SCTP implementation in FreeBSD 8.2 allows remote attackers to cause a denial of service (NULL pointer dereference an
NFS in a BSD derived codebase, as used in OpenBSD through 7.4 and FreeBSD through 14.0-RELEASE, allows remote attackers
Same weakness CWE-179 – Incorrect Behavior Order: Early Validation
View allSame technique Buffer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39966