REPORT / 01

Analysis Report · freebsd-src release/14.4.0 → release/14.4.0-p1 — CVE-2026-4747

Shared security patch analysis results

mode patchdiff ai copilot oswe-vscode-prime
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
Use quotes for exact: "SQL injection" · Operators: hello AND bye, admin OR root, -error, NOT warning
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