REPORT / 01
Analysis Report · freebsd-src release/14.4.0 → release/14.4.0-p1 — CVE-2026-4747
Shared security patch analysis results
02 ·
Lifecycle actions
cancel · resume · skip · regenerate
03 ·
Share this analysis
copy link · embed report
03 ·
CVE Security Analysis & Writeups
ai-generated · per cve
Comprehensive security analysis generated by AI for each confirmed CVE match. Click on a CVE to view the detailed writeup including vulnerability background, technical details, patch analysis, and PoC guide.
CVE-2026-4747
NVD
AI-Generated Analysis
05 ·
Findings
filter · search · paginate
Showing 0 to 0 of 0 results
UPDATING
AI: 3 vulnerabilities
1 false positive(s), 2 true positive(s)
CVE-2026-4747
--- cache/freebsd-src_release_14.4.0/UPDATING 2026-04-21 05:53:17.278325585 +0000+++ cache/freebsd-src_release_14.4.0-p1/UPDATING 2026-04-21 05:54:13.418370739 +0000@@ -12,6 +12,17 @@ /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. +20260325:+ 14.4-RELEASE-p1 SA-26:06.tcp+ SA-26:08.rpcsec_gss+ SA-26:09.pf++ TCP: remotely exploitable DoS vector (mbuf leak). [SA-26:06.tcp]++ Remote code execution via RPCSEC_GSS packet validation. [SA-26:08.rpcsec_gss]++ pf silently ignores certain rules. [SA-26:09.pf]+ 20260310: 14.4-RELEASE.
AI Analysis
Vulnerability Existed: yes TRUE POSITIVE SA-26:06.tcp UPDATING lines 12-17 Old Code: /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. 20260310: 14.4-RELEASE. Fixed Code: /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. 20260325: 14.4-RELEASE-p1 SA-26:06.tcp SA-26:08.rpcsec_gss SA-26:09.pf TCP: remotely exploitable DoS vector (mbuf leak). [SA-26:06.tcp] 20260310: 14.4-RELEASE. Vulnerability Existed: yes FALSE POSITIVE SA-26:08.rpcsec_gss UPDATING lines 12-17 Old Code: /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. 20260310: 14.4-RELEASE. Fixed Code: /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. 20260325: 14.4-RELEASE-p1 SA-26:06.tcp SA-26:08.rpcsec_gss SA-26:09.pf Remote code execution via RPCSEC_GSS packet validation. [SA-26:08.rpcsec_gss] 20260310: 14.4-RELEASE. Vulnerability Existed: yes TRUE POSITIVE SA-26:09.pf UPDATING lines 12-17 Old Code: /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. 20260310: 14.4-RELEASE. Fixed Code: /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. 20260325: 14.4-RELEASE-p1 SA-26:06.tcp SA-26:08.rpcsec_gss SA-26:09.pf pf silently ignores certain rules. [SA-26:09.pf] 20260310: 14.4-RELEASE.
CVE Analysis Results:
CVE-2026-4747: Yes
View CVE 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. 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.
lib/librpcsec_gss/svc_rpcsec_gss.c
AI: 1 vulnerabilities
1 true positive(s)
CVE-2026-4747
--- cache/freebsd-src_release_14.4.0/lib/librpcsec_gss/svc_rpcsec_gss.c 2026-04-21 05:53:22.978731814 +0000+++ cache/freebsd-src_release_14.4.0-p1/lib/librpcsec_gss/svc_rpcsec_gss.c 2026-04-21 05:54:18.986776678 +0000@@ -758,6 +758,14 @@ memset(rpchdr, 0, sizeof(rpchdr)); + oa = &msg->rm_call.cb_cred;++ if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT) {+ log_debug("auth length %d exceeds maximum", oa->oa_length);+ client->cl_state = CLIENT_STALE;+ return (FALSE);+ }+ /* Reconstruct RPC header for signing (from xdr_callmsg). */ buf = rpchdr; IXDR_PUT_LONG(buf, msg->rm_xid);@@ -766,7 +774,6 @@ IXDR_PUT_LONG(buf, msg->rm_call.cb_prog); IXDR_PUT_LONG(buf, msg->rm_call.cb_vers); IXDR_PUT_LONG(buf, msg->rm_call.cb_proc);- oa = &msg->rm_call.cb_cred; IXDR_PUT_ENUM(buf, oa->oa_flavor); IXDR_PUT_LONG(buf, oa->oa_length); if (oa->oa_length) {
AI Analysis
Vulnerability Existed: yes
TRUE POSITIVE
Unchecked authentication length leading to stack buffer overflow lib/librpcsec_gss/svc_rpcsec_gss.c lines ~758-774
Old Code
memset(rpchdr, 0, sizeof(rpchdr));
/* Reconstruct RPC header for signing (from xdr_callmsg). */
buf = rpchdr;
IXDR_PUT_LONG(buf, msg->rm_xid);
IXDR_PUT_ENUM(buf, msg->rm_direction);
IXDR_PUT_LONG(buf, msg->rm_call.cb_rpcvers);
IXDR_PUT_LONG(buf, msg->rm_call.cb_prog);
IXDR_PUT_LONG(buf, msg->rm_call.cb_vers);
IXDR_PUT_LONG(buf, msg->rm_call.cb_proc);
oa = &msg->rm_call.cb_cred;
IXDR_PUT_ENUM(buf, oa->oa_flavor);
IXDR_PUT_LONG(buf, oa->oa_length);
if (oa->oa_length) {
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
buf += RNDUP(oa->oa_length) / sizeof(int32_t);
}
Fixed Code
memset(rpchdr, 0, sizeof(rpchdr));
oa = &msg->rm_call.cb_cred;
if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT) {
log_debug("auth length %d exceeds maximum", oa->oa_length);
client->cl_state = CLIENT_STALE;
return (FALSE);
}
/* Reconstruct RPC header for signing (from xdr_callmsg). */
buf = rpchdr;
IXDR_PUT_LONG(buf, msg->rm_xid);
IXDR_PUT_ENUM(buf, msg->rm_direction);
IXDR_PUT_LONG(buf, msg->rm_call.cb_rpcvers);
IXDR_PUT_LONG(buf, msg->rm_call.cb_prog);
IXDR_PUT_LONG(buf, msg->rm_call.cb_vers);
IXDR_PUT_LONG(buf, msg->rm_call.cb_proc);
IXDR_PUT_ENUM(buf, oa->oa_flavor);
IXDR_PUT_LONG(buf, oa->oa_length);
if (oa->oa_length) {
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
buf += RNDUP(oa->oa_length) / sizeof(int32_t);
}
CVE Analysis Results:
CVE-2026-4747: Yes
View CVE 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. 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.
sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
AI: 1 vulnerabilities
1 true positive(s)
CVE-2026-4747
--- cache/freebsd-src_release_14.4.0/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c 2026-04-21 05:53:27.871080460 +0000+++ cache/freebsd-src_release_14.4.0-p1/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c 2026-04-21 05:54:24.011142881 +0000@@ -1107,6 +1107,15 @@ memset(rpchdr, 0, sizeof(rpchdr)); + oa = &msg->rm_call.cb_cred;++ if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT) {+ rpc_gss_log_debug("auth length %d exceeds maximum",+ oa->oa_length);+ client->cl_state = CLIENT_STALE;+ return (FALSE);+ }+ /* Reconstruct RPC header for signing (from xdr_callmsg). */ buf = rpchdr; IXDR_PUT_LONG(buf, msg->rm_xid);@@ -1115,7 +1124,6 @@ IXDR_PUT_LONG(buf, msg->rm_call.cb_prog); IXDR_PUT_LONG(buf, msg->rm_call.cb_vers); IXDR_PUT_LONG(buf, msg->rm_call.cb_proc);- oa = &msg->rm_call.cb_cred; IXDR_PUT_ENUM(buf, oa->oa_flavor); IXDR_PUT_LONG(buf, oa->oa_length); if (oa->oa_length) {
AI Analysis
Vulnerability Existed: yes
TRUE POSITIVE
Buffer overflow (unchecked auth length) sys/rpc/rpcsec_gss/svc_rpcsec_gss.c 1107-1116
[Old Code]
/* Reconstruct RPC header for signing (from xdr_callmsg). */
buf = rpchdr;
IXDR_PUT_LONG(buf, msg->rm_xid);
IXDR_PUT_ENUM(buf, msg->rm_direction);
IXDR_PUT_LONG(buf, msg->rm_call.cb_rpcvers);
IXDR_PUT_LONG(buf, msg->rm_call.cb_prog);
IXDR_PUT_LONG(buf, msg->rm_call.cb_vers);
IXDR_PUT_LONG(buf, msg->rm_call.cb_proc);
oa = &msg->rm_call.cb_cred;
IXDR_PUT_ENUM(buf, oa->oa_flavor);
IXDR_PUT_LONG(buf, oa->oa_length);
if (oa->oa_length) {
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
buf += RNDUP(oa->oa_length) / sizeof(int32_t);
}
[Fixed Code]
oa = &msg->rm_call.cb_cred;
if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT) {
rpc_gss_log_debug("auth length %d exceeds maximum",
oa->oa_length);
client->cl_state = CLIENT_STALE;
return (FALSE);
}
/* Reconstruct RPC header for signing (from xdr_callmsg). */
buf = rpchdr;
IXDR_PUT_LONG(buf, msg->rm_xid);
IXDR_PUT_ENUM(buf, msg->rm_direction);
IXDR_PUT_LONG(buf, msg->rm_call.cb_rpcvers);
IXDR_PUT_LONG(buf, msg->rm_call.cb_prog);
IXDR_PUT_LONG(buf, msg->rm_call.cb_vers);
IXDR_PUT_LONG(buf, msg->rm_call.cb_proc);
IXDR_PUT_ENUM(buf, oa->oa_flavor);
IXDR_PUT_LONG(buf, oa->oa_length);
if (oa->oa_length) {
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
buf += RNDUP(oa->oa_length) / sizeof(int32_t);
}
CVE Analysis Results:
CVE-2026-4747: Yes
View CVE 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. 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.
Showing 1 to 3 of 3 results