FreeBSD VuXML: Documenting security issues in FreeBSD and the FreeBSD Ports Collection

FreeBSD -- Heap out-of-bounds access in semctl(2)

Affected packages
15.1 <= FreeBSD-kernel < 15.1_2
15.0 <= FreeBSD-kernel < 15.0_12
14.4 <= FreeBSD-kernel < 14.4_8

Details

VuXML ID aa5f956e-8bb8-11f1-a6ab-bc241121aa0a
Discovery 2026-07-29
Entry 2026-07-30

Problem Description:

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.

Impact:

An unprivileged local user can trigger out-of-bounds reads and writes on kernel heap memory, potentially leading to privilege escalation.

References

CVE Name CVE-2026-58087
FreeBSD Advisory SA-26:54.sysvsem