FreeBSD Security Advisory FreeBSD-SA-26:08.rpcsec_gss
26 March, 2026
•
by security-advisories@freebsd.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
=============================================================================
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>
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEthUnfoEIffdcgYM7bljekB8AGu8FAmnEkWEACgkQbljekB8A
Gu/LsA/9EC3I0xFSAJpbHLVpV4dmCpzhMUn5CU3iJhXOsV4hWip6fJvjHmiRcVDC
luJ/udrLS6izmx4dmZBcEQMSOt2hXK/P/5JgVQCM0f3hXfkLFWGPnA1/wG4hSqjd
nsbHfExgqs4ToWhgfQDaEwgc5d9FQfnQUTk3noXal1FA6o10+9PAA5nmj74ZGtYC
6umspzzJNR8+6EaTftY8nb40DMAAyNMTBu3S2KikiuiqLSuMETyGEHS0ceMZzX0C
D8rWRlaXpNOyVrRPhEuVurF9SB9EghEB1K587Xm0cqpCLT8GsW5FeSkp4VD2Ir0v
7Ghu693vLbmVwm5pQUNr8cf7uO/kLg6Gce3FWlqYteRN+PeuOkx2DRAChm4QMEK2
8Xjix/bS3HT6GkRmHCtwS7IU8L1vw/kAt4uvSV5uyEzRbpGKEbrdZOXFUSjPrY3R
xHAKGosZaZKYJ4rveQOhsS1OoevN7ghhEJJ6PJf1wdYOSwNl41zq8R9LVqos4A+w
fJmIQwoSMPhT7E+XCjrsOrt5TuBHrv5O7871IFxk00rsgJN3W2vTw4epEwRiWpJm
mqv40zoarV4L4Gq3P4PAT8VaiWXTo44qyvu9LV+fnEArtlyfYPNLglC7NJKaeI1D
Ou89dG/+L1GeJlkIVbRj4DUfcpLO0yV1LG/KYvQqr4TCILaddzk=K+Bc
-----END PGP SIGNATURE-----