SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of CheckHostSSRF)
# Security Advisory — SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of `CheckHostSSRF`) | Field | Value | |---|---| | **Disclosed by** | joysinleung (`joysinleung@gmail.com`) | | **Report date** | 2026-08-13 | | **Product** | SiYuan (思源笔记) — `siyuan-note/siyuan` | | **Go module** | `github.com/siyuan-note/siyuan/kernel` | | **Affected versions** | `<= 3.8.0` (latest release at report time; dynamically verified on v3.8.0) | | **Patched versions** | 3.8.1 | | **Component** | `kernel/util/httprequest.go` (`CheckHostSSRF`), `kernel/mcp/tools/http_request.go`, `kernel/util/webfetch.go`, `kernel/util/net.go` (`SSRFSafeDialer`) | | **Relationship to prior advisory** | **Incomplete-fix variant of GHSA-rg26-cg95-gq6p** (SSRF main-vector remediation). See §Relationship. | | **EPSS (exploitation probability)** | Low–Moderate. Requires the attacker to influence an AI Agent / MCP client into fetching an attacker-controlled domain (prompt-injection scenario documented by the tool itself). | | **KEV (CISA Known Exploited)** | No (not listed in CISA KEV at report time). | | **Default-config reachable** | **Yes** — exploitable under *both* `SafeMode` on and off; only requires the agent `http_request` / `web_fetch` tool to be reachable (default AI tooling). | --- ## Summary SiYuan's AI Agent tools `http_request` (`util.HTTPRequest`) and `web_fetch` (`util.WebFetch`) are the only SSRF gate for outbound requests from the kernel. That gate is `CheckHostSSRF`, which performs a **single
- Products
- github.com/siyuan-note/siyuan/kernel
- Affected versions
- Not specified
- Fixed versions
- 0.0.0-20260813142806-dd2778b70d02
- CVEs
- CVE-2026-82234
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 28 Oct 2026, 08:46 UTC · Revision 2
Source evidence
SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of CheckHostSSRF)
core-osv · Original sourcePublished 2 Oct 2026, 23:17 UTC
# Security Advisory — SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of `CheckHostSSRF`) | Field | Value | |---|---| | **Disclosed by** | joysinleung (`joysinleung@gmail.com`) | | **Report date** | 2026-08-13 | | **Product** | SiYuan (思源笔记) — `siyuan-note/siyuan` | | **Go module** | `github.com/siyuan-note/siyuan/kernel` | | **Affected versions** | `<= 3.8.0` (latest release at report time; dynamically verified on v3.8.0) | | **Patched versions** | 3.8.1 | | **Component** | `kernel/util/httprequest.go` (`CheckHostSSRF`), `kernel/mcp/tools/http_request.go`, `kernel/util/webfetch.go`, `kernel/util/net.go` (`SSRFSafeDialer`) | | **Relationship to prior advisory** | **Incomplete-fix variant of GHSA-rg26-cg95-gq6p** (SSRF main-vector remediation). See §Relationship. | | **EPSS (exploitation probability)** | Low–Moderate. Requires the attacker to influence an AI Agent / MCP client into fetching an attacker-controlled domain (prompt-injection scenario documented by the tool itself). | | **KEV (CISA Known Exploited)** | No (not listed in CISA KEV at report time). | | **Default-config reachable** | **Yes** — exploitable under *both* `SafeMode` on and off; only requires the agent `http_request` / `web_fetch` tool to be reachable (default AI tooling). | --- ## Summary SiYuan's AI Agent tools `http_request` (`util.HTTPRequest`) and `web_fetch` (`util.WebFetch`) are the only SSRF gate for outbound requests from the kernel. That gate is `CheckHostSSRF`, which performs a **single
osv:GHSA-x8gv-g2g3-65fj
github.com/siyuan-note/siyuan/kernel
Fixed versions: 0.0.0-20260813142806-dd2778b70d02
Complete source record
{
"id": "afa627ddfbc60dc1a8735ad8c801018151ac38f92cff6bcf20ddcb0c12315275",
"url": "https://osv.dev/vulnerability/GHSA-x8gv-g2g3-65fj",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of CheckHostSSRF)",
"summary": "# Security Advisory — SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of `CheckHostSSRF`) | Field | Value | |---|---| | **Disclosed by** | joysinleung (`joysinleung@gmail.com`) | | **Report date** | 2026-08-13 | | **Product** | SiYuan (思源笔记) — `siyuan-note/siyuan` | | **Go module** | `github.com/siyuan-note/siyuan/kernel` | | **Affected versions** | `<= 3.8.0` (latest release at report time; dynamically verified on v3.8.0) | | **Patched versions** | 3.8.1 | | **Component** | `kernel/util/httprequest.go` (`CheckHostSSRF`), `kernel/mcp/tools/http_request.go`, `kernel/util/webfetch.go`, `kernel/util/net.go` (`SSRFSafeDialer`) | | **Relationship to prior advisory** | **Incomplete-fix variant of GHSA-rg26-cg95-gq6p** (SSRF main-vector remediation). See §Relationship. | | **EPSS (exploitation probability)** | Low–Moderate. Requires the attacker to influence an AI Agent / MCP client into fetching an attacker-controlled domain (prompt-injection scenario documented by the tool itself). | | **KEV (CISA Known Exploited)** | No (not listed in CISA KEV at report time). | | **Default-config reachable** | **Yes** — exploitable under *both* `SafeMode` on and off; only requires the agent `http_request` / `web_fetch` tool to be reachable (default AI tooling). | --- ## Summary SiYuan's AI Agent tools `http_request` (`util.HTTPRequest`) and `web_fetch` (`util.WebFetch`) are the only SSRF gate for outbound requests from the kernel. That gate is `CheckHostSSRF`, which performs a **single ",
"evidence": "osv:GHSA-x8gv-g2g3-65fj",
"products": [
{
"name": {
"value": "github.com/siyuan-note/siyuan/kernel",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "0.0.0-20260813142806-dd2778b70d02",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
}
],
"severity": "high",
"structured": {
"id": "GHSA-x8gv-g2g3-65fj",
"aliases": [
"CVE-2026-82234",
"GHSA-x8gv-g2g3-65fj",
"GO-2026-6657"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N"
}
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "0.0.0-20260813142806-dd2778b70d02"
}
]
}
],
"package": {
"name": "github.com/siyuan-note/siyuan/kernel",
"purl": "pkg:golang/github.com/siyuan-note/siyuan/kernel",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-x8gv-g2g3-65fj/GHSA-x8gv-g2g3-65fj.json"
}
}
],
"modified": "2026-10-07T17:55:46.332710273Z",
"provider": "osv",
"references": [
"https://github.com/siyuan-note/siyuan/security/advisories/GHSA-x8gv-g2g3-65fj",
"https://github.com/siyuan-note/siyuan/commit/dd2778b70d020b15491ef7418f5f63214583cd63",
"https://github.com/siyuan-note/siyuan",
"https://github.com/siyuan-note/siyuan/releases/tag/v3.8.1"
],
"provider_metadata": {
"cwe_ids": [
"CWE-918"
],
"severity": "HIGH",
"github_reviewed": true,
"nvd_published_at": null,
"github_reviewed_at": "2026-10-02T23:17:16Z"
}
},
"related_cves": [
{
"value": "CVE-2026-82234",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": "/database_specific/severity"
},
"source_id": "core-osv",
"document_id": 97128,
"published_at": "2026-10-02T23:17:16+00:00"
}SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of CheckHostSSRF) in github.com/siyuan-note/siyuan/kernel
core-osv · Original sourcePublished 7 Oct 2026, 14:10 UTC
SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of CheckHostSSRF) in github.com/siyuan-note/siyuan/kernel
osv:GO-2026-6657
github.com/siyuan-note/siyuan/kernel
Fixed versions: 0.0.0-20260813142806-dd2778b70d02
Complete source record
{
"id": "563985a882901e14cf57de012e624f4c98fc780ae2e7158eabd3d9ae28a6d3da",
"url": "https://osv.dev/vulnerability/GO-2026-6657",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of CheckHostSSRF) in github.com/siyuan-note/siyuan/kernel",
"summary": "SiYuan Agent Tools SSRF via DNS-Rebinding TOCTOU (Bypass of CheckHostSSRF) in github.com/siyuan-note/siyuan/kernel",
"evidence": "osv:GO-2026-6657",
"products": [
{
"name": {
"value": "github.com/siyuan-note/siyuan/kernel",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "0.0.0-20260813142806-dd2778b70d02",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "GO-2026-6657",
"aliases": [
"CVE-2026-82234",
"GHSA-x8gv-g2g3-65fj",
"GO-2026-6657"
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "0.0.0-20260813142806-dd2778b70d02"
}
]
}
],
"package": {
"name": "github.com/siyuan-note/siyuan/kernel",
"purl": "pkg:golang/github.com/siyuan-note/siyuan/kernel",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://vuln.go.dev/ID/GO-2026-6657.json"
},
"ecosystem_specific": {}
}
],
"modified": "2026-10-07T17:55:46.332710273Z",
"provider": "osv",
"references": [
"https://github.com/siyuan-note/siyuan/security/advisories/GHSA-x8gv-g2g3-65fj",
"https://github.com/siyuan-note/siyuan/commit/dd2778b70d020b15491ef7418f5f63214583cd63",
"https://github.com/siyuan-note/siyuan/releases/tag/v3.8.1"
],
"provider_metadata": {
"url": "https://pkg.go.dev/vuln/GO-2026-6657",
"review_status": "UNREVIEWED"
}
},
"related_cves": [
{
"value": "CVE-2026-82234",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 97129,
"published_at": "2026-10-07T14:10:14+00:00"
}