漏洞总结 漏洞概述 Bluebubbles(一个iMessage服务器实现)在处理Webhook请求时存在逻辑缺陷。之前的实现未能正确识别位于受信任代理(Trusted Proxies,如Nginx、HAProxy等)后的客户端真实IP地址。这导致攻击者可以通过伪造IP地址(Spoofing)绕过基于IP的速率限制(Rate Limiting),从而对Webhook端点发起暴力破解攻击(Brute-force attack),尝试猜测认证凭据。 影响范围 所有部署了Bluebubbles并启用了Webhook功能的服务实例,特别是那些部署在反向代理服务器(如Nginx, Apache, HAProxy等)之后的实例。 修复方案 1. 新增代理IP识别逻辑:引入了 函数来收集受信任的代理IP列表,以及 函数,根据代理配置正确解析请求头(如 )中的真实IP。 2. 引入IP回退机制:增加了 逻辑,确保在无法获取代理IP时能回退到直接连接IP。 3. 强化速率限制键:在 函数中,使用解析出的 和 组合成唯一的 。 4. 应用限流策略:将 传递给 ,确保每个客户端IP的认证尝试次数受到 的严格限制,防止暴力破解。 5. 隔离认证桶:确保来自不同代理后端的客户端被隔离在不同的认证桶(auth buckets)中,防止跨代理攻击。 POC/测试代码 以下是截图中包含的测试代码,用于验证修复后的限流逻辑和代理IP识别逻辑: