CVE-2026-58087

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
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:freebsd:freebsd:14.4:-:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:14.4:p1:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:14.4:p2:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:14.4:p3:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:14.4:p4:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:14.4:p5:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:14.4:p6:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:14.4:p7:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:14.4:rc1:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:-:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p1:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p10:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p11:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p2:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p3:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p4:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p5:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p6:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p7:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p8:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.0:p9:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.1:-:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.1:p1:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.1:rc2:*:*:*:*:*:*
cpe:2.3:o:freebsd:freebsd:15.1:rc3-p1:*:*:*:*:*:*

History

27 Oct 2026, 12:10

Type Values Removed Values Added
Summary
  • (es) Los comandos GETALL y SETALL en semctl(2) registraron el número de semáforos en el conjunto objetivo, liberaron el bloqueo que protegía el conjunto, asignaron un búfer dimensionado para esa cantidad y volvieron a adquirir el bloqueo. Se utilizó una verificación de número de secuencia para verificar que el conjunto no había sido reemplazado en el ínterin, pero el número de secuencia se reinicia después de 0x8000 ciclos de creación/destrucción. Al destruir y recrear rápidamente conjuntos de semáforos en el mismo índice, otro proceso puede hacer que el número de secuencia se reinicie, permitiendo que un conjunto con un número diferente de semáforos pase la validación. La copia subsiguiente entonces lee o escribe más allá del final del búfer asignado. Un usuario local sin privilegios puede desencadenar lecturas y escrituras fuera de límites en la memoria del heap del kernel, lo que podría conducir a una escalada de privilegios.

Information

Published : 2026-08-19 08:17

Updated : 2026-10-27 12:10


NVD link : CVE-2026-58087

Mitre link : CVE-2026-58087

CVE.ORG link : CVE-2026-58087


JSON object : View

Products Affected

freebsd

  • freebsd
CWE
CWE-125

Out-of-bounds Read

CWE-191

Integer Underflow (Wrap or Wraparound)

CWE-787

Out-of-bounds Write