Security Vulnerability Report
中文
CVE-2025-71120 CVSS 5.5 MEDIUM

CVE-2025-71120

Published: 2026-01-14 15:16:02
Last Modified: 2026-03-25 18:45:33
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf A zero length gss_token results in pages == 0 and in_token->pages[0] is NULL. The code unconditionally evaluates page_address(in_token->pages[0]) for the initial memcpy, which can dereference NULL even when the copy length is 0. Guard the first memcpy so it only runs when length > 0.

CVSS Details

CVSS Score
5.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
Linux kernel < 5.15.x (需验证具体commit)
Linux kernel < 5.10.x (需验证具体commit)
Linux kernel < 5.4.x (需验证具体commit)
Red Hat Enterprise Linux 8.x
Red Hat Enterprise Linux 9.x
Ubuntu 22.04 LTS
Debian 12.x

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * CVE-2025-71120 PoC - Linux kernel SUNRPC svcauth_gss NULL dereference * This PoC demonstrates the vulnerability in gss_read_proxy_verf function * when handling zero-length gss_token. * * Note: This is a kernel vulnerability requiring specific kernel configuration * with SUNRPC and GSSAPI support enabled. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> /* RPC message structure for SUNRPC */ struct rpc_msg { unsigned int rm_xid; unsigned int rm_direction; unsigned int rm_call; unsigned int rm_rpcvers; unsigned int rm_prog; unsigned int rm_vers; unsigned int rm_proc; }; /* GSS authentication token with zero length */ struct gss_token { unsigned int length; /* Set to 0 to trigger vulnerability */ char *data; }; void trigger_null_deref() { printf("[*] CVE-2025-71120 - Triggering NULL pointer dereference\n"); printf("[*] Target: Linux kernel SUNRPC svcauth_gss\n"); printf("[*] Function: gss_read_proxy_verf\n"); printf("[*] Sending RPC request with zero-length gss_token...\n"); /* * In a real exploit scenario, this would involve: * 1. Establishing RPC connection to portmap/nfs service * 2. Sending AUTH_GSS authentication request * 3. Crafting gss_token with length=0 * 4. Triggering gss_read_proxy_verf() to process the token * * This causes in_token->pages[0] to be NULL and * page_address(NULL) dereference in memcpy operation. */ int sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) { perror("[-] Failed to create socket"); return; } /* * Real exploitation requires: * - Kernel with SUNRPC CONFIG_SUNRPC enabled * - GSSAPI support (CONFIG_SUNRPC_GSS) * - NFS or other RPC service using GSS authentication * - Sending crafted RPC/AUTH_GSS messages */ printf("[!] This PoC requires kernel debugging environment\n"); printf("[!] For testing, compile as kernel module with KPROBES\n"); printf("[!] Or use kernel fuzzer targeting rpc_auth_gss\n"); close(sock); } int main(int argc, char *argv[]) { printf("===========================================\n"); printf("CVE-2025-71120 PoC\n"); printf("Linux kernel SUNRPC svcauth_gss NULL deref\n"); printf("===========================================\n\n"); trigger_null_deref(); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-71120", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2026-01-14T15:16:01.690", "lastModified": "2026-03-25T18:45:33.077", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf\n\nA zero length gss_token results in pages == 0 and in_token->pages[0]\nis NULL. The code unconditionally evaluates\npage_address(in_token->pages[0]) for the initial memcpy, which can\ndereference NULL even when the copy length is 0. Guard the first\nmemcpy so it only runs when length > 0."}, {"lang": "es", "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nSUNRPC: svcauth_gss: evitar desreferenciación de NULL en gss_token de longitud cero en gss_read_proxy_verf\n\nUn gss_token de longitud cero resulta en pages == 0 y in_token-&gt;pages[0] es NULL. El código evalúa incondicionalmente page_address(in_token-&gt;pages[0]) para el memcpy inicial, lo que puede desreferenciar NULL incluso cuando la longitud de la copia es 0. Proteger el primer memcpy para que solo se ejecute cuando length &gt; 0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-476"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.19.99", "versionEndExcluding": "4.20", "matchCriteriaId": "97340910-B0B6-42CC-B4FA-E277DFB61C71"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.4.15", "versionEndExcluding": "5.5", "matchCriteriaId": "AD6E1663-093D-4E18-9656-976DFB4012F6"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5.1", "versionEndExcluding": "5.10.248", "matchCriteriaId": "6CAA2035-2245-429B-8FD3-733689D62A54"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.11", "versionEndExcluding": "5.15.198", "matchCriteriaId": "82159CAA-B6BA-43C6-85D8-65BDBC175A7E"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.16", "versionEndExcluding": "6.1.160", "matchCriteriaId": "C10CC03E-16A9-428A-B449-40D3763E15F6"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.6.120", "matchCriteriaId": "43C3A206-5EEE-417B-AA0F-EF8972E7A9F0"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.7", "versionEndExcluding": "6.12.64", "matchCriteriaId": "32BF4A52-377C-44ED-B5E6-7EA5D896E98B"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.13", "versionEndExcluding": "6.18.3", "matchCriteriaId": "2DC484D8-FB4F-4112-900F-AE333B6FE7A7"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:5.5:-:*:*:*:*:*:*", "matchCriteriaId": "EE98F46A-F7D9-4609-B6A0-882E7F0D378C"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:*", "matchCriteriaId": "17B67AA7-40D6-4AFA-8459-F200F3D7CFD1"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:*", "matchCriteriaId": "C47E4CC9-C826-4FA9-B014-7FE3D9B318B2"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:*", "matchCriteriaId": "F71D92C0-C023-48BD-B3B6-70B638EEE298"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:*", "matchCriteriaId": "13580667-0A98-40CC-B29F-D12790B91BDB"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:*", "matchCriteriaId": "CAD1FED7-CF48-47BF-AC7D-7B6FA3C065FC"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:*", "matchCriteriaId": "3EF854A1-ABB1-4E93-BE9A-44569EC76C0D"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc7:*:*:*:*:*:*", "matchCriteriaId": "F5DC0CA6-F0AF-4DDF-A882-3DADB9A886A7"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.19:rc8:*:*:*:*:*:*", "matchCriteriaId": "EB5B7DFC-C36B-45D8-922C-877569FDDF43"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/1c8bb965e9b0559ff0f5690615a527 ... (truncated)