Home / mailings FreeBSD Security Advisory FreeBSD-SA-26:08.rpcsec_gss
Posted on 26 March 2026
FreeBSD security notificat=============================================================================FreeBSD-SA-26:08.rpcsec_gss Security Advisory
The FreeBSD Project
Topic: Remote code execution via RPCSEC_GSS packet validation
Category: core
Module: rpcsec_gss
Announced: 2026-03-26
Credits: Nicholas Carlini using Claude, Anthropic
Affects: All supported versions of FreeBSD.
Corrected: 2026-03-26 01:25:23 UTC (stable/15, 15.0-STABLE)
2026-03-26 01:11:20 UTC (releng/15.0, 15.0-RELEASE-p5)
2026-03-26 01:28:47 UTC (stable/14, 14.4-STABLE)
2026-03-26 01:14:55 UTC (releng/14.4, 14.4-RELEASE-p1)
2026-03-26 01:16:01 UTC (releng/14.3, 14.3-RELEASE-p10)
2026-03-26 01:30:12 UTC (stable/13, 13.5-STABLE)
2026-03-26 01:34:10 UTC (releng/13.5, 13.5-RELEASE-p11)
CVE Name: CVE-2026-4747
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:https://security.FreeBSD.org/>.
I. Background
Generic Security Services (GSS) is an API which lets applications establish a
private, authenticated communication channel with a server, such as an NFC
server.
RPCSEC_GSS is a module which enables the use of GSS with Sun RPC (rpc(3))
servers. It is implemented in the kernel by the kgssapi.ko kernel module, and
used by the NFS server to enable Kerberos-based authentication and encryption
of traffic between the server and clients. In userspace it is implemented by
the librpcsec_gss library.
II. 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.
III. 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.
IV. Workaround
No workaround is available. Kernels that do not have kgssapi.ko loaded are not
vulnerable. In userspace, any daemon linked with librpcgss_sec and running an
RPC server is vulnerable.
V. Solution
Upgrade your vulnerable system to a supported FreeBSD stable or
release / security branch (releng) dated after the correction date.
Perform one of the following:
1) To update your vulnerable system installed from base system packages:
Systems running a 15.0-RELEASE version of FreeBSD on the amd64 or arm64
platforms, which were installed using base system packages, can be updated
via the pkg(8) utility:
# pkg upgrade -r FreeBSD-base
# shutdown -r +10min "Rebooting for a security update"
2) To update your vulnerable system installed from binary distribution sets:
Systems running a RELEASE version of FreeBSD on the amd64 or arm64 platforms,
or the i386 platform on FreeBSD 13, which were not installed using base
system packages, can be updated via the freebsd-update(8) utility:
# freebsd-update fetch
# freebsd-update install
# shutdown -r +10min "Rebooting for a security update"
3) To update your vulnerable system via a source code patch:
The following patches have been verified to apply to the applicable
FreeBSD release branches.
a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.
# fetch https://security.FreeBSD.org/patches/SA-26:08/rpcsec_gss.patch
# fetch https://security.FreeBSD.org/patches/SA-26:08/rpcsec_gss.patch.asc
# gpg --verify rpcsec_gss.patch.asc
b) Apply the patch. Execute the following commands as root:
# cd /usr/src
# patch < /path/to/patch
c) Recompile your kernel and the operating system as described in
<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and
<URL:https://www.FreeBSD.org/handbook/makeworld.html> and reboot the
system.
VI. Correction details
This issue is corrected as of the corresponding Git commit hash in the
following stable and release branches:
Branch/path Hash Revision
- -------------------------------------------------------------------------
stable/15/ 1b00fdc1f3cd stable/15-n282700
releng/15.0/ 4ec1b6213463 releng/15.0-n281013
stable/14/ e5ed09ffd592 stable/14-n273840
releng/14.4/ 7ea03a4238e8 releng/14.4-n273677
releng/14.3/ b6ce88ab9a5f releng/14.3-n271477
stable/13/ 99ec7f9b9e48 stable/13-n259823
releng/13.5/ c4f53a1adbd4 releng/13.5-n259207
- -------------------------------------------------------------------------
Run the following command to see which files were modified by a
particular commit:
# git show --stat <commit hash>
Or visit the following URL, replacing NNNNNN with the hash:
<URL:https://cgit.freebsd.org/src/commit/?id=NNNNNN>
To determine the commit count in a working tree (for comparison against
nNNNNNN in the table above), run:
# git rev-list --count --first-parent HEAD
VII. References
<URL:https://www.cve.org/CVERecord?id=CVE-2026-4747>
The latest revision of this advisory is available at
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-26:08.rpcsec_gss.asc>
