Out-of-bounds heap access in FreeBSD semop(2)
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA. Impact type from CWE-787 and the CVSS impact.
Summary
FreeBSD from 15.1-RELEASE before p4, from 15.0-RELEASE before p14, from 14.5-RELEASE before p1, and from 14.4-RELEASE before p10 is affected. When semop(2) wakes after blocking, it checks a 15-bit sequence number to detect a removed semaphore set, and that counter can wrap around (CWE-787). An unprivileged local user can trigger an out-of-bounds access on kernel heap memory, potentially leading to privilege escalation.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
When semop(2) blocks waiting for a semaphore condition, it releases the per-set lock and sleeps. Upon waking, it checks the sequence number embedded in the semaphore set's IPC identifier to detect whether the set was removed while the caller was asleep. This sequence number is only 15 bits wide. If enough semaphore sets are created and destroyed in the same table slot while a caller is blocked, the counter wraps around, and semop(2) may falsely conclude that the original set still exists. The subsequent access to a semaphore within the set may then be out of bounds. An unprivileged local user can trigger an out-of-bounds access on kernel heap memory, potentially leading to privilege escalation.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| FreeBSD | FreeBSD | 15.1-RELEASE to before p4; 15.0-RELEASE to before p14; 14.5-RELEASE to before p1; 14.4-RELEASE to before p10 | p4, p14, p1, p10 | Patch available | CNA |
- FreeBSD VendorFreeBSD Affected 15.1-RELEASE to before p4; 15.0-RELEASE to before p14; 14.5-RELEASE to before p1; 14.4-RELEASE to before p10 Fixed in p4, p14, p1, p10 Patch available CNA
CPE configurations NVD · 29
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:o:freebsd:freebsd:14.4:-:*:*:*:*:*:* | 14.4 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:14.4:p1:*:*:*:*:*:* | 14.4 p1 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:14.4:p2:*:*:*:*:*:* | 14.4 p2 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:14.4:p3:*:*:*:*:*:* | 14.4 p3 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:14.4:p4:*:*:*:*:*:* | 14.4 p4 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:14.4:p5:*:*:*:*:*:* | 14.4 p5 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:14.4:p6:*:*:*:*:*:* | 14.4 p6 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:14.4:p7:*:*:*:*:*:* | 14.4 p7 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:14.4:p8:*:*:*:*:*:* | 14.4 p8 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:14.4:p9:*:*:*:*:*:* | 14.4 p9 | Vulnerable | FreeBSD |
- cpe:2.3:o:freebsd:freebsd:14.4:-:*:*:*:*:*:* Versions 14.4 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:14.4:p1:*:*:*:*:*:* Versions 14.4 p1 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:14.4:p2:*:*:*:*:*:* Versions 14.4 p2 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:14.4:p3:*:*:*:*:*:* Versions 14.4 p3 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:14.4:p4:*:*:*:*:*:* Versions 14.4 p4 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:14.4:p5:*:*:*:*:*:* Versions 14.4 p5 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:14.4:p6:*:*:*:*:*:* Versions 14.4 p6 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:14.4:p7:*:*:*:*:*:* Versions 14.4 p7 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:14.4:p8:*:*:*:*:*:* Versions 14.4 p8 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:14.4:p9:*:*:*:*:*:* Versions 14.4 p9 Vulnerable ·FreeBSD
Show 19 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:o:freebsd:freebsd:14.5:-:*:*:*:*:*:* | 14.5 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:-:*:*:*:*:*:* | 15.0 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p1:*:*:*:*:*:* | 15.0 p1 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p10:*:*:*:*:*:* | 15.0 p10 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p11:*:*:*:*:*:* | 15.0 p11 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p12:*:*:*:*:*:* | 15.0 p12 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p13:*:*:*:*:*:* | 15.0 p13 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p2:*:*:*:*:*:* | 15.0 p2 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p3:*:*:*:*:*:* | 15.0 p3 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p4:*:*:*:*:*:* | 15.0 p4 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p5:*:*:*:*:*:* | 15.0 p5 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p6:*:*:*:*:*:* | 15.0 p6 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p7:*:*:*:*:*:* | 15.0 p7 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p8:*:*:*:*:*:* | 15.0 p8 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.0:p9:*:*:*:*:*:* | 15.0 p9 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.1:-:*:*:*:*:*:* | 15.1 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.1:p1:*:*:*:*:*:* | 15.1 p1 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.1:p2:*:*:*:*:*:* | 15.1 p2 | Vulnerable | FreeBSD |
| cpe:2.3:o:freebsd:freebsd:15.1:p3:*:*:*:*:*:* | 15.1 p3 | Vulnerable | FreeBSD |
- cpe:2.3:o:freebsd:freebsd:14.5:-:*:*:*:*:*:* Versions 14.5 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:-:*:*:*:*:*:* Versions 15.0 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p1:*:*:*:*:*:* Versions 15.0 p1 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p10:*:*:*:*:*:* Versions 15.0 p10 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p11:*:*:*:*:*:* Versions 15.0 p11 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p12:*:*:*:*:*:* Versions 15.0 p12 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p13:*:*:*:*:*:* Versions 15.0 p13 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p2:*:*:*:*:*:* Versions 15.0 p2 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p3:*:*:*:*:*:* Versions 15.0 p3 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p4:*:*:*:*:*:* Versions 15.0 p4 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p5:*:*:*:*:*:* Versions 15.0 p5 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p6:*:*:*:*:*:* Versions 15.0 p6 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p7:*:*:*:*:*:* Versions 15.0 p7 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p8:*:*:*:*:*:* Versions 15.0 p8 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.0:p9:*:*:*:*:*:* Versions 15.0 p9 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.1:-:*:*:*:*:*:* Versions 15.1 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.1:p1:*:*:*:*:*:* Versions 15.1 p1 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.1:p2:*:*:*:*:*:* Versions 15.1 p2 Vulnerable ·FreeBSD
- cpe:2.3:o:freebsd:freebsd:15.1:p3:*:*:*:*:*:* Versions 15.1 p3 Vulnerable ·FreeBSD
Remediation
Apply the fix in FreeBSD p4 for 15.1-RELEASE, p14 for 15.0-RELEASE, p1 for 14.5-RELEASE, and p10 for 14.4-RELEASE.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
- Fix · CNA FreeBSD (FreeBSD) Fixed in p4, p14, p1, p10
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
FreeBSD p1, p10 and 2 more versions
3 records Highest priority Priority LOW 3 LOW
Other records, highest priority first
- TI-2026-74625 IPv6 UDP sendto bypasses jail loopback restriction in FreeBSDPriority LOW 38
- TI-2026-74624 FreeBSD kernel TLS receive path off-by-one causes remote kernel panicPriority LOW 28
Timeline
- 2026-10-15 Threatist record created from CVE-2026-58098
- 2026-10-16 CVSS score added · CISA ADP
- 2026-10-16 CISA SSVC decision points changed
References
More Freebsd vulnerabilities
- TI-2011-04182 Buffer overflow in libtelnet/encrypt.c in telnetd in FreeBSD 7.3 through 9.0, MIT… CVSS 2.0HIGH 10.0
- TI-2007-03684 Integer overflow in print-bgp.c in the BGP dissector in tcpdump 3.9.6 and earlier allows… CVSS 3.1CRITICAL 9.8
- TI-2002-00376 Integer overflow in xdr_array function in RPC servers for operating systems that use… CVSS 3.1CRITICAL 9.8
- TI-2024-05929 Openssh: regresshion - race condition in ssh allows rce/dos CVSS 3.1HIGH 8.1
- TI-2003-00437 Off-by-one error in the fb_realpath() function, as derived from the realpath function in… CVSS 3.1CRITICAL 9.8
- TI-2003-00642 The prescan function in Sendmail 8.12.9 allows remote attackers to execute arbitrary code… CVSS 2.0HIGH 10.0
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences