CVE-2026-40910frp是一个快速反向代理。在版本0.43.0至0.68.0中,当使用routeByHTTPUser进行访问控制时,HTTP虚拟主机路由路径存在认证绕过漏洞。在代理式请求中,路由逻辑使用Proxy-Authorization头中的用户名来选择routeByHTTPUser后端,而访问控制检查则使用常规Authorization头中的凭据。因此,能够访问HTTP虚拟主机入口点并知道或猜测受保护的routeByHTTPUser值的攻击者,即使Proxy-Authorization密码不正确,也可能访问受httpUser/httpPassword保护的后端。该漏洞仅影响显式使用routeByHTTPUser的部署,已在0.68.1版本中修复。
该漏洞的根源在于frp在处理HTTP虚拟主机路由时的身份验证逻辑与路由选择逻辑存在不一致。当配置中启用了routeByHTTPUser功能时,系统本意是根据HTTP基本认证中的用户名将流量分发到不同的后端服务。然而,受影响的代码实现在处理请求头时发生了逻辑割裂:路由组件仅依据Proxy-Authorization头部中的用户名字段来决定将请求转发至哪个后端,而不验证该头部中的密码是否正确。与此同时,真正的访问控制检查组件却依赖于Authorization头部。攻击者利用这一差异,只需构造包含目标用户名(routeByHTTPUser值)和任意错误密码的Proxy-Authorization头部,即可欺骗路由组件将流量转发至受保护的后端。由于路由层已经进行了转发,且后续的认证检查逻辑未能正确拦截这种不匹配的请求,导致攻击者无需知道真实密码即可成功访问敏感资源。