CVE-2026-45251 PUBLISHED

Kernel use-after-free via file descriptor syscalls

Assigner: freebsd
Reserved: 11.05.2026 Published: 21.05.2026 Updated: 21.05.2026

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.

Product Status

Vendor FreeBSD
Product FreeBSD
Versions Default: unknown
  • affected from 15.0-RELEASE to p9 (excl.)
  • affected from 14.4-RELEASE to p5 (excl.)
  • affected from 14.3-RELEASE to p14 (excl.)

Credits

  • 75Acol, Lexpl0it, fcgboy, and robinzeng2015 finder
  • Ryan at Calif.io finder

References

Problem Types

  • CWE-416: Use After Free CWE