CVE-2026-4747FreeBSD系统的RPCSEC_GSS实现中存在严重的栈缓冲区溢出漏洞。该漏洞源于验证数据包签名的例程在将数据复制到栈缓冲区时,未正确检查缓冲区大小。攻击者无需预先认证即可发送特制数据包触发溢出。在内核层面,这可能导致经过认证的用户实现内核级远程代码执行;在用户空间,相关RPC服务应用也可能面临RCE风险。
该漏洞位于FreeBSD内核的kgssapi.ko模块及用户空间librpcgss_sec库的RPCSEC_GSS数据处理逻辑中。具体而言,负责验证RPCSEC_GSS数据包签名的例程在执行过程中,会将数据包的一部分内容直接复制到栈上的固定大小缓冲区。由于代码缺乏必要的边界检查,当数据包长度超过缓冲区容量时,就会发生栈溢出。攻击者可以通过精心构造恶意数据包来覆盖栈上的返回地址,从而劫持控制流。虽然触发溢出本身不强制要求客户端认证,但在内核空间利用该漏洞进行远程代码执行通常需要拥有合法的用户凭证并能够访问NFS服务。一旦利用成功,攻击者可获取内核权限或用户空间应用的执行权限。