Home

Description

A file descriptor can be closed while a thread is blocked in a poll(2) or select(2) call waiting for that descriptor. Because the blocked thread does not hold a reference to the underlying object, this closure may result in the object being freed while the thread remains blocked. In this situation, the kernel must remove the blocked thread from the per-object wait queue prior to freeing the object. In the case of some file descriptor types, the kernel failed to unlink blocked threads from the object before freeing it. When the blocked thread is subsequently woken, it accesses memory that has already been freed resulting in a use-after-free vulnerability. The use-after-free vulnerability may be triggered by an unprivileged local user and can be exploited to obtain superuser privileges.

PUBLISHED Reserved 2026-05-11 | Published 2026-05-21 | Updated 2026-05-22 | Assigner freebsd

Problem types

CWE-416: Use After Free

Product status

Default status
unknown

15.0-RELEASE (release) before p9
affected

14.4-RELEASE (release) before p5
affected

14.3-RELEASE (release) before p14
affected

Credits

75Acol, Lexpl0it, fcgboy, and robinzeng2015 finder

Ryan at Calif.io finder

References

security.freebsd.org/advisories/FreeBSD-SA-26:19.file.asc vendor-advisory

cve.org (CVE-2026-45251)

nvd.nist.gov (CVE-2026-45251)

Download JSON