CVE-2025-665081Panel是一款开源的基于Web的Linux服务器管理面板。在2.0.14及以下版本中,Gin框架使用了默认配置将所有IP地址信任为代理(TrustedProxies = 0.0.0.0/0),这允许任何客户端伪造X-Forwarded-For头。由于所有基于IP的访问控制(包括AllowIPs、API白名单、localhost检查等)都依赖ClientIP()函数获取客户端真实IP,攻击者可以通过简单发送X-Forwarded-For: 127.0.0.1或任意白名单IP地址来绕过这些安全控制。该漏洞使得所有基于IP的安全控制机制完全失效,攻击者可以伪装成受信任的IP地址访问敏感资源或API端点。此问题已在2.0.14版本中修复。
漏洞根源在于Gin框架的默认信任代理配置。当Gin收到请求时,会检查X-Forwarded-For、X-Real-IP等HTTP头字段来获取客户端真实IP。在默认配置下(TrustedProxies = 0.0.0.0/0),Gin会信任所有请求中的这些头部信息。1Panel的所有安全模块使用ClientIP()方法获取客户端地址,该方法会解析X-Forwarded-For头。攻击者只需在HTTP请求中添加X-Forwarded-For: 127.0.0.1即可绕过localhost限制,或使用X-Forwarded-For: 允许的白名单IP绕过IP白名单控制。修复方案为将TrustedProxies设置为具体的可信代理IP列表,或使用gin.SetTrustedProxies()方法明确指定信任的代理服务器地址。