curl 8.22 修复公共后缀 Cookie 作用域:代理采集器审计指南

明亮的互联网域名岛屿将 Cookie 标记限制在清晰边界内

curl 项目于 2026 年 9 月 2 日随 curl 8.22.0 发布 CVE-2026-82209。官方公告描述了一个低严重度的 Cookie 作用域问题,影响启用 Public Suffix List 支持的 curl 与 libcurl。

在公告描述的特殊场景中,本身属于公共后缀的源站返回 Set-Cookie,且 Domain 明确等于该后缀。受影响版本可能没有把 Cookie 收紧为仅主机 Cookie,而是保存为通配域作用域。客户端随后请求或重定向到同一公共后缀下的兄弟子域时,就可能发送该 Cookie。

官方说明攻击者不能自行种下初始 Cookie;必须由公共后缀顶点签发,并且客户端随后访问攻击者控制的兄弟域。代理采集器仍应重视,因为长期工作进程经常组合自动重定向、持久 Cookie Jar 和多个互不相关的目标。

确认影响范围

只有以下条件同时成立或无法排除时,才视为可能受影响:

  1. 运行 curl 或 libcurl 7.46.0 至 8.21.0;
  2. 构建启用了 libpsl;
  3. 工作流接收并复用 Cookie;
  4. 可能访问同一公共后缀下的兄弟域或跟随相关重定向;
  5. 这些请求共享 Cookie 状态。

7.46.0 之前和 8.22.0 及之后版本不在公告的影响范围。命令行 curl 使用 Cookie 时也可能涉及,并非只影响嵌入式 libcurl。

盘点 Cookie 状态

为每个采集或验证工作进程记录:

应用构建版本
实际加载的curl版本
是否启用libpsl
是否启用Cookie引擎
Cookie Jar作用域
重定向策略
目标租户
代理会话别名
工作区域

不得记录 Cookie 值、代理密码、Token 或客户身份。审计需要配置与作用域证据,不需要秘密数据。

同时检查内存 Cookie 和文件 Cookie。进程可能启动时加载旧 Jar、跨任务共享 Jar,或把文件写到后续工作进程会复用的共享存储。容器替换并不能清除共享卷中的状态。

按官方顺序修复

  1. 升级 curl 和 libcurl 至 8.22.0;
  2. 为现有版本应用官方补丁;
  3. 暂时无法完成前两项时,避免使用 Cookie。

必须验证进程实际加载的库。主机上的 curl 命令已经更新,不代表 SDK 或服务使用相同 libcurl。发布后应排空或重启长期进程,并再次确认运行时版本。

建立隔离回归测试

只使用自有或获授权的域名与 DNS 区域。使用无敏感性的标记 Cookie,执行:

  1. 从全新隔离 Cookie Jar 开始;
  2. 确认客户端的 curl 版本与 libpsl 能力;
  3. 让受控顶点返回边界场景的 Domain 属性;
  4. 不显示 Cookie 值,仅检查保存的作用域元数据;
  5. 用同一工作进程请求受控兄弟主机;
  6. 断言兄弟主机没有收到标记;
  7. 通过 HTTP 重定向重复测试;
  8. 在连接复用和进程重启后重复测试;
  9. 对比受影响实验构建与 curl 8.22.0。

通过条件是 Cookie 被限制为仅主机范围。HTTP 返回成功、代理隧道建立或重定向完成,都不能证明边界正确。

分离 Cookie 身份与代理身份

轮换 IP 不会清除应用 Cookie,保持住宅代理粘性会话也不代表不同用户、站点或租户可以共享 Cookie Jar。

分区键应包含已授权浏览器或任务身份及目标信任边界。不能只用代理出口 IP 作为 Cookie Jar 键:两个任务可以复用同一出口却必须隔离状态,一个任务也可以轮换出口并保留自己的合法会话。

边界必须采用的隔离
不同客户或租户独立 Jar 与存储路径
无关的可注册域除非明确需要,否则独立 Jar
并行工作进程不共享无所有权控制的可写 Jar
重试或代理轮换只保留目标任务身份
跳转到新信任边界阻止、复核或使用干净上下文

审计重定向与重放

记录原始主机、每个重定向目标、可注册域变化和是否附带 Cookie。仅记录 Cookie 名称别名或数量,不记录值。

限制重定向深度,拒绝意外的协议或信任边界变化。不要针对可疑跳转不断轮换代理重试,这会扩大暴露并掩盖原始路径。

Cookie 文件也要限制权限、明确所有者、设置短保留期,并按批准流程清理。法规或内部要求适用时,应加密敏感存储。

发布检查清单

  • [ ] 已确认运行时 curl 或 libcurl 版本。
  • [ ] 已确认每个构建的 libpsl 能力。
  • [ ] 已盘点 Cookie 引擎、文件和共享存储。
  • [ ] 已安全记录重定向与目标边界变化。
  • [ ] 已部署 curl 8.22.0 或官方补丁。
  • [ ] 长期工作进程已加载修复后的库。
  • [ ] 受控兄弟域测试证明 Cookie 被限制。
  • [ ] 内存与文件 Jar 均已测试。
  • [ ] Cookie Jar 按任务或租户隔离。
  • [ ] 不以代理出口 IP 作为唯一分区键。
  • [ ] 日志与测试夹具不含真实 Cookie 或凭据。
  • [ ] 可疑跳转不会触发无限重试。

相关 98IP 内容包括代理凭据轮换指南住宅代理会话粘性测试curl 8.22 信任缓存审计

常见问题

curl 处理的所有 Cookie 都会暴露吗?

不会。公告涉及特定公共后缀边界场景。应核对版本、libpsl、Cookie 使用方式、域名行为和后续兄弟域请求。

更换代理 IP 能缓解问题吗?

不能。问题发生在客户端 Cookie 作用域。IP 轮换只改变网络路径,不会修复或删除过宽 Cookie。

禁用自动重定向就够了吗?

不一定。后续显式请求兄弟域也可能携带 Cookie。升级或打补丁仍是主要修复方式。

回归测试应使用生产 Cookie 吗?

不应。使用授权实验环境中的无害标记即可验证作用域,无需真实认证材料。

合规说明

只测试自有或获授权的域名、账号与代理资源。把 Cookie 作为凭据保护,减少留存,遵守目标条款与隐私要求;未经许可不得访问兄弟域或用户会话。

内部资料说明:curl 项目《domain-scoped PSL domain cookie》,CVE-2026-82209,2026 年 9 月 2 日;curl 8.22.0 变更日志,2026 年 9 月 2 日。