Problem Description:
Each RPCSEC_GSS data packet is validated by a routine which
checks a signature in the packet. This routine copies a portion
of the packet into a stack buffer, but fails to ensure that the
buffer is sufficiently large, and a malicious client can trigger a
stack overflow. Notably, this does not require the client to
authenticate itself first.
Impact:
As kgssapi.ko's RPCSEC_GSS implementation is vulnerable, remote
code execution in the kernel is possible by an authenticated user
that is able to send packets to the kernel's NFS server while
kgssapi.ko is loaded into the kernel.
In userspace, applications which have librpcgss_sec loaded and run
an RPC server are vulnerable to remote code execution from any
client able to send it packets. We are not aware of any such
applications in the FreeBSD base system.