Medium, CVSS 6.5GoPublished
1Panel IP Access Control Bypass via Untrusted X-Forwarded-For Headers
CVE-2025-66508 · GHSA-7cqv-qcq2-r765
- Affected
- Go github.com/1Panel-dev/1Panel/agent < 0.0.0-20251201063338-94f7d78cc976
- Fixed in
- 0.0.0-20251201063338-94f7d78cc976· Vendor fix available
- Issue
- The server trusts all reverse-proxy headers by default, so any remote client can spoof X-Forwarded-For to bypass IP-based protections (AllowIPs, API IP whitelist, “localhost-only” checks). All IP-based access control becomes ineffective. Details - Gin is created with defaults (gin.Default()), which sets TrustedProxies = 0.0.0.0/0 and uses X-Forwarded-For/X-Real-IP to compute ClientIP(). - IP-based controls rely on ClientIP(): - AllowIPs / BindDomain (core/middleware/iplimit.go, core/utils/security/security.go). - API IP whitelist (core/middleware/apiauth.go). - "localhost-only" checks that depend on ClientIP(). - Because no trusted-proxy range is enforced, any client can send X-Forwarded-For: 127.0.0.1 (or a whitelisted IP) and be treated as coming from that address. Impact All IP-based access control is rendered ineffective: remote clients can masquerade as localhost or any whitelisted IP, defeating AllowIPs, API IP whitelists, and “localhost-only” protections.
Recommended action: Upgrade to 0.0.0-20251201063338-94f7d78cc976 (pre-release) or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.