CVE-2026-45251FreeBSD内核中存在一个严重的释放后重用(UAF)漏洞。当文件描述符在某个线程被阻塞在poll(2)或select(2)调用中等待该描述符时被关闭,由于被阻塞的线程未持有对底层对象的引用,内核在释放对象前未能正确从等待队列中移除该线程。这导致线程被唤醒时访问已释放的内存,引发内核崩溃或代码执行。本地低权限用户可利用此漏洞将权限提升至超级用户,对系统机密性、完整性和可用性造成严重影响。
该漏洞源于FreeBSD内核在处理多线程文件描述符操作时的竞态条件。当线程A调用poll(2)或select(2)阻塞等待文件描述符事件时,线程B关闭了该描述符。此时,内核在释放底层文件对象时,未将线程A从对象的等待队列中移除。由于线程A不再持有对对象的引用计数,对象被立即释放。当线程A随后被唤醒(如因超时或事件触发),它会尝试访问已释放的内存地址,触发Use-After-Free。攻击者可利用此漏洞,通过精心构造的内存布局覆盖内核关键数据结构或执行任意内核代码,从而获得root权限。该漏洞攻击向量为本地,攻击复杂度低,且无需用户交互。