The GETALL and SETALL commands in semctl(2) recorded the number of semaphores in the target set, dropped the lock protecting the set, allocated a buffer sized for that count, and reacquired the lock. A sequence-number check was used to verify that the set had not been replaced in the interim, but the sequence number wraps after 0x8000 create/destroy cycles. By rapidly destroying and recreating semaphore sets at the same index, another process can cause the sequence number to wrap, allowing a set with a different number of semaphores to pass validation. The subsequent copy then reads or writes past the end of the allocated buffer.
An unprivileged local user can trigger out-of-bounds reads and writes on kernel heap memory, potentially leading to privilege escalation.
References
| Link | Resource |
|---|---|
| https://security.freebsd.org/advisories/FreeBSD-SA-26:54.sysvsem.asc | Vendor Advisory Mailing List |
Configurations
Configuration 1 (hide)
|
History
No history.
Information
Published : 2026-08-19 08:17
Updated : 2026-08-31 15:07
NVD link : CVE-2026-58087
Mitre link : CVE-2026-58087
CVE.ORG link : CVE-2026-58087
JSON object : View
Products Affected
freebsd
- freebsd
