Bug: SSRF guard blocks ALL external URLs when using local proxy (Clash/Tunnel)
Issue Description
When OpenClaw is configured with a local proxy (e.g., Clash on port 7890), the SSRF guard blocks nearly ALL external URL fetches, making core functionality unusable.
Root cause: Clash's fake-IP DNS returns private IP addresses (198.18.x.x or 127.0.0.1) for ALL hostnames. OpenClaw's SSRF security check rejects these as "Blocked hostname: private/internal/special-use IP address".
Affected Channels & Tools
-
Telegram media downloads — Users cannot send screenshots
-
WeChat connectivity — WeChat channel cannot poll for updates
- Error:
[openclaw-weixin] weixin getUpdates error: fetch failed
-
web_fetch / url-fetch tool — BROKEN
- 1,600+ blocked fetches in a single day
- Affects ALL web research, content extraction, knowledge base building
- Blocked: zhihu.com, xiaohongshu.com, youtube.com, github.com, etc.
-
wechat-search skill — Cannot search WeChat articles
-
agent-reach skill — Cannot fetch external platform content
Environment
- OpenClaw: 2026.4.5
- Proxy: Clash (ClashX/ClashMac) on localhost:7890
- Proxy mode: enhanced-mode: fake-ip (default Clash DNS)
Attempted Fixes (All Failed)
channels.telegram.network.dangerouslyAllowPrivateNetwork: true — No effect
channels.telegram.network.allowedHostnames: ["*.telegram.org"] — No effect
channels.telegram.network.hostnameAllowlist: ["*.telegram.org"] — No effect
- Adding
127.0.0.1 to hostnameAllowlist — No effect
- Clash fake-ip-filter:
+.telegram.org — No effect
Why This Affects ALL Proxy Users
Any user running a VPN/proxy with fake-IP DNS (Clash, Surge, Stash, etc.) will hit this. This is extremely common in China where direct international connections are unavailable.
Suggested Fixes
Option 1 (simplest): Trust loopback proxy for all requests
When a request is explicitly routed through a configured proxy, the SSRF guard should not apply. The proxy is already a trusted gateway.
Option 2: Add safe hostnames to default allowlist
api.telegram.org, cdn.telegram.org, mp.weixin.qq.com, etc.
Option 3: Bypass SSRF for proxied HTTPS requests
Trust the proxy to handle DNS correctly for explicitly proxied requests.
Impact
| Feature |
Severity |
| Web research (web_fetch) |
CRITICAL |
| Night learning mode |
CRITICAL |
| WeChat connectivity |
HIGH |
| Telegram screenshots |
HIGH |
This makes OpenClaw effectively unusable for its core knowledge-work automation use case.
Bug: SSRF guard blocks ALL external URLs when using local proxy (Clash/Tunnel)
Issue Description
When OpenClaw is configured with a local proxy (e.g., Clash on port 7890), the SSRF guard blocks nearly ALL external URL fetches, making core functionality unusable.
Root cause: Clash's fake-IP DNS returns private IP addresses (198.18.x.x or 127.0.0.1) for ALL hostnames. OpenClaw's SSRF security check rejects these as "Blocked hostname: private/internal/special-use IP address".
Affected Channels & Tools
Telegram media downloads — Users cannot send screenshots
[security] blocked URL fetch target=https://api.telegram.org/file/... reason=Blocked hostname (not in allowlist): 127.0.0.1WeChat connectivity — WeChat channel cannot poll for updates
[openclaw-weixin] weixin getUpdates error: fetch failedweb_fetch / url-fetch tool — BROKEN
wechat-search skill — Cannot search WeChat articles
agent-reach skill — Cannot fetch external platform content
Environment
Attempted Fixes (All Failed)
channels.telegram.network.dangerouslyAllowPrivateNetwork: true— No effectchannels.telegram.network.allowedHostnames: ["*.telegram.org"]— No effectchannels.telegram.network.hostnameAllowlist: ["*.telegram.org"]— No effect127.0.0.1to hostnameAllowlist — No effect+.telegram.org— No effectWhy This Affects ALL Proxy Users
Any user running a VPN/proxy with fake-IP DNS (Clash, Surge, Stash, etc.) will hit this. This is extremely common in China where direct international connections are unavailable.
Suggested Fixes
Option 1 (simplest): Trust loopback proxy for all requests
When a request is explicitly routed through a configured proxy, the SSRF guard should not apply. The proxy is already a trusted gateway.
Option 2: Add safe hostnames to default allowlist
api.telegram.org, cdn.telegram.org, mp.weixin.qq.com, etc.
Option 3: Bypass SSRF for proxied HTTPS requests
Trust the proxy to handle DNS correctly for explicitly proxied requests.
Impact
This makes OpenClaw effectively unusable for its core knowledge-work automation use case.