Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with remote-download privilege
-
DeliveryCraft SrcUri with NAT64/6to4/Teredo IPv4-in-IPv6 wrapper
-
ExploitSubmit RemoteDownloadTask.createDownloadTask
-
ExecutionGuard misclassifies wrapper as public IP
-
PersistServer fetches internal/metadata endpoint
-
ImpactExfiltrate cloud credentials and internal responses
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated Cloudreve account (prior to 4.18.0) that has been granted remote-download access, since the sink is SrcUri in RemoteDownloadTask.createDownloadTask. The attacker must supply the target as an IPv4-in-IPv6 transition form - NAT64 well-known prefix 64:ff9b::/96, 6to4 2002::/16, Teredo 2001:0000::/32, or the deprecated IPv4-compatible ::a.b.c.d - wrapping a loopback, private, link-local, or cloud-metadata IPv4. Exploitation is LIMITED by: (1) required authentication plus remote-download privilege (PR:L); (2) IPv4-mapped ::ffff:a.b.c.d forms are already blocked because Go's net.IP.To4 normalizes them, so that vector does not work; (3) the fetch host's network must actually route the chosen transition form to the embedded IPv4, making cloud/NAT64/dual-stack deployments the realistic targets. High-value impact (instance credential theft) applies specifically to cloud-hosted instances exposing a metadata service. |
| Impact | This is a moderate, credible SSRF (CWE-918) whose real-world risk is meaningfully bounded by its prerequisites rather than by raw score. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N = 6.5 Medium) is internally consistent with the description: network-reachable, low complexity, but requiring an authenticated account that holds remote-download privilege (PR:L). C:H is justified because the primary payoff is reading internal service responses and cloud instance metadata credentials (e.g., 169.254.169.254), while I:N/A:N are correct since the flaw only reads. No EPSS score, KEV listing, or public POC was provided, so exploitation status is 'no public exploit identified at time of analysis' - this is not a confirmed-in-the-wild issue. The counterweight to the medium score is that the bug is a specific and elegant filter-bypass: the guard already blocked IPv4-mapped ::ffff: forms, and the fix (commit 1c5cad6d) shows the attacker must know to use NAT64, 6to4, Teredo, or IPv4-compatible IPv6 wrappers, AND the fetch must be performed on a host whose network stack actually routes those transition forms to the embedded IPv4 (NAT64 gateways, dual-stack cloud hosts). Net: a real, patch-worthy issue most dangerous on cloud-hosted Cloudreve instances with instance-metadata exposure, but gated behind authentication and a non-trivial address-encoding trick rather than a spray-and-pray internet threat. |
| Exploit ScenarioDerived | An authenticated user who has been granted remote-download rights on a cloud-hosted Cloudreve instance submits a download task with SrcUri set to a URL whose host is an IPv4-in-IPv6 wrapper such as http://[64:ff9b::a9fe:a9fe]/latest/meta-data/ (NAT64-encoding 169.254.169.254). The SSRF guard classifies the outer IPv6 address as public, the server fetches it, and the metadata-service response - including cloud instance credentials - is exposed back to the attacker. No public POC or KEV entry exists, and the low CVSS complexity is offset by the required remote-download privilege and a network path that routes the transition form. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Server-side request forgery in Cloudreve prior to 4.18.0 allows an authenticated user with remote-download privileges to bypass the ValidateExternalURL guard and make the server fetch loopback, private, link-local, or cloud-metadata IPv4 addresses that are wrapped inside IPv4-in-IPv6 transition forms - NAT64 64:ff9b::/96, 6to4 2002::/16, Teredo 2001:0000::/32, or the deprecated IPv4-compatible ::a.b.c.d - because the guard classifies the wrapper rather than the address actually reached. The vulnerability is reachable through SrcUri in RemoteDownloadTask.createDownloadTask and requires authentication (CVSS PR:L), so it is not remotely exploitable by an anonymous attacker; exploitation also depends on the fetch host's network actually routing the chosen transition form to the embedded IPv4, making NAT64, dual-stack, and cloud-hosted deployments the realistic targets. Where a cloud metadata service is reachable, a successful request can return internal service responses and expose instance credentials; no public exploit code has been identified at time of analysis, and the issue is fixed in version 4.18.0.
RemediationAI
Vendor-released patch: upgrade Cloudreve to 4.18.0 or later, which adds the effectiveIP() normalization step that decodes NAT64 64:ff9b::/96, 6to4 2002::/16, Teredo 2001:0000::/32, and IPv4-compatible ::a.b.c.d forms before the SSRF class check; see the release notes at https://github.com/cloudreve/cloudreve/releases/tag/4.18.0, the fix commit at https://github.com/cloudreve/cloudreve/commit/1c5cad6dec7ec3037c6479e3a26a3909995d16a2, and the advisory at https://github.com/cloudreve/cloudreve/security/advisories/GHSA-jvh5-97xg-v99f. If you cannot upgrade immediately, the highest-value compensating control is to revoke the remote-download privilege from untrusted or non-administrative accounts, since the sink requires both authentication and remote-download access - the trade-off is loss of that feature for those users. Enforce outbound egress filtering from the Cloudreve host that denies traffic to loopback, RFC1918, link-local, and especially 169.254.169.254/169.254.0.0/16 and other metadata ranges, and block outbound connections to the IPv6 transition prefixes (64:ff9b::/96, 2002::/16, 2001:0000::/32 and other 2001::/32 space) if they are not operationally required; the trade-off is that legitimate remote-download and federation targets reached through those ranges will also fail. On AWS, enforce IMDSv2 with a low hop limit and a restricted token, and apply equivalent metadata hardening on other providers, so that even a successful SSRF yields a non-replayable or unusable response. Finally, network-level monitoring of requests to internal and metadata addresses originating from the Cloudreve process can detect attempted exploitation of unpatched instances.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Cloudreve is a self-hosted file management and sharing system written in Go, and the affected code is its outbound-request SSRF guard in pkg/request/ssrf.go (CWE-918, Server-Side Request Forgery). The guard resolves a user-supplied URL and passes each resolved address to checkIP/checkIPWithAllowlist, which relies on Go's net.IP classifiers such as IsLoopback, IsPrivate, and IsLinkLocalUnicast. Those built-ins inspect only the outer address form, so an IPv6 address that merely embeds a disallowed IPv4 target is treated as an ordinary public IPv6 address. The fix introduces an effectiveIP() normalizer that unwraps IPv4-in-IPv6 transition encodings to the IPv4 address the packet ultimately reaches before the allowlist and class checks run. It handles the NAT64 well-known prefix 64:ff9b::/96 (RFC 6052 §2.1), where the IPv4 address occupies the final 32 bits; 6to4 2002::/16 (RFC 3056), where bytes 2-5 carry the embedded IPv4; Teredo 2001:0000::/32 (RFC 4380), where the client IPv4 is the last 32 bits XORed with 0xff; and IPv4-compatible ::a.b.c.d (RFC 4291 §2.5.5.1, deprecated), skipping :: and ::1 so unspecified and loopback IPv6 are still caught by the outer classifier. Notably, IPv4-mapped ::ffff:a.b.c.d addresses were never bypassable because Go's net.IP.To4 already converts that form, which is why the advisory calls out the other transition forms specifically. The repository is identified in the CPE data as cpe:2.3:a:cloudreve:cloudreve:*:*:*:*:*:*:*:*.
Know when Cloudreve gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Network-reachable low-complexity SSRF requiring an authenticated remote-download account (PR:L); confidentiality-only via internal/metadata disclosure, no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Cloudreve is a self-hosted file management and sharing system. Prior to 4.18.0, the ValidateExternalURL server-side request forgery guard in pkg/request/ssrf.go passes resolved addresses to checkIP without decoding NAT64, IPv4-compatible, and 6to4 IPv4-in-IPv6 transition forms. An authenticated user with remote-download access can provide SrcUri through RemoteDownloadTask.createDownloadTask so a wrapper embedding a loopback, private, link-local, or cloud metadata IPv4 address is classified as public and fetched, exposing internal service responses and cloud instance credentials. IPv4-mapped IPv6 addresses remain blocked because Go converts that form with net.IP.To4. This issue is fixed in version 4.18.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Concurrent upload-session requests in Cloudreve prior to 4.18.0 allow an authenticated user holding Files.Write permissi
Cloudreve versions v1.0.0 through v3.5.3 are vulnerable to Stored Cross-Site Scripting (XSS), via the file upload functi
Privilege escalation via OAuth scope enforcement bypass affects Cloudreve self-hosted file management versions 4.12.0 th
Path traversal via improper authorization in Cloudreve's WebDAV handler lets a scoped WebDAV account escape its configur
Revoked, expired, or download-limit-exhausted Cloudreve shares can still be mined for signed file URLs for up to 300 sec
Server-Side Request Forgery in Cloudreve's remote download workflow (versions prior to 4.16.1) enables authenticated use
Cloudreve before 4.17.0 applies only the Admin.Read OAuth scope to the admin node test endpoints (POST /api/v4/admin/nod
Cloudreve instances running versions prior to 4.18.0 fail to enforce write-scope authorization on two admin tool routes,
Path traversal in Cloudreve before 4.16.1 lets an authenticated user write downloaded files outside the destination dire
EUVD-2026-84527
GHSA-jvh5-97xg-v99f
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB