作者发现他们的静态站点正向任何请求者提供一个内部工程交接文档。该文件大小为150KB,包含一个在登录期间绕过支付的管理员查询字符串参数、一个允许账户被标记为已付款而未实际支付的已知模式漏洞描述、数据库标识符以及诸如 .claude/launch.json 和 GitHub 工作流文件之类的工具配置,在生产域上公开可访问。这是因为静态主机的构建输出目录被配置为仓库根目录,导致每个已提交的文件——包括点目录和文档——都被发布为公开 URL。
最初通过删除文件并重新部署,随后执行两次缓存清除的尝试未能消除该暴露。检查响应头发现 `cf-cache-status: DYNAMIC`,其 age 值持续增加(从 4,396 秒增至 67,735 秒),表明区域级缓存从未持有该文件;而是静态主机自身的资产/边缘层提供了过期副本。这一观察得到了验证:提供者的默认域名(pages.dev)提供了干净版本,而自定义域名继续提供过期文件,这证明清除工具和持有过期副本的层是两个不同的系统。
最终通过在边缘添加防火墙规则来封堵该泄漏,该规则在缓存查询之前生效并立即阻止匹配特定路径标记的请求(泄露文档的路径、.claude/ 和 .github/)。旋转文件中暴露的管理员参数几乎没有提供保护,因为该值已嵌入客户端源代码并在旋转后仍然可见。作者强调,真正的修复是关闭泄露文档中描述的服务器端模式漏洞,这使得管理员参数无论谁知道它都无效。
