GitHub Advisoryadvisory · Go
GHSA-7cqv-qcq2-r765 1Panel IP Access Control Bypass via Untrusted X-Forwarded-For Headers
MEDIUM
Official page ↗
- Aliases
- CVE-2025-66508
- Ecosystem
- Go
- Packages
- github.com/1Panel-dev/1Panel, github.com/1Panel-dev/1Panel/agent
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
- Weaknesses
- CWE-290
- Reviewed
- 2025-12-08
Affected packages
• Go github.com/1Panel-dev/1Panel: < 2.0.14 → fixed in 2.0.14
• Go github.com/1Panel-dev/1Panel/agent: < 0.0.0-20251201063338-94f7d78cc976 → fixed in 0.0.0-20251201063338-94f7d78cc976
Description
Summary
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/ip_limit.go, core/utils/security/security.go).
• API IP whitelist (core/middleware/api_auth.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.
Related
Alias · CVE (1)
- CVE-2025-66508 1Panel is an open-source, web-based control panel for Linux server management. vulnerability
Weakness · CWE (1)
- CWE-290 Authentication Bypass by Spoofing weakness