CVE-2026-45250FreeBSD操作系统的setcred系统调用存在严重的安全漏洞。由于在检查调用者权限之前,未验证用户提供的补充组列表长度便直接将其复制到固定大小的内核栈缓冲区,导致栈缓冲区溢出。本地低权限用户可利用此漏洞在内核上下文中执行任意代码,从而实现权限提升。
该漏洞源于FreeBSD内核中`setcred(2)`系统调用的实现缺陷。正常情况下,该调用仅限特权用户使用,但在实现过程中,内核首先将用户态传入的补充组列表复制到内核栈上的固定大小缓冲区中,而此时尚未对调用者的权限级别进行验证。由于缺乏对输入数据长度的边界检查,当提供的列表长度超过缓冲区容量时,就会发生栈缓冲区溢出。攻击者无需任何特殊权限即可触发该溢出。通过精心构造的恶意输入,攻击者可以覆盖内核栈上的返回地址或关键数据结构,从而在内核上下文中执行任意代码,最终从低权限用户提升至root权限,完全控制系统。