curl 8.22 修复公共后缀 Cookie 边界问题:代理工作流应如何验证

curl 项目于 2026 年 9 月 2 日发布 curl 8.22.0,并同步公开 CVE-2026-82209 安全公告。问题涉及启用了公共后缀列表支持的 libcurl 构建:公共后缀源设置的特定域 Cookie,可能在后续请求中被发送给该后缀下的另一个站点。

curl 项目将其评为低严重性,并说明攻击者不能随意植入该 Cookie:需要公共后缀顶点主动设置 Cookie,客户端随后还要请求攻击者控制的同级站点。受影响版本为 curl 7.46.0 至 8.21.0,curl 8.22.0 已包含修复。

代理线路本身不会产生这一客户端 Cookie 判断,但代理应用经常跨多个主机复用 libcurl 句柄、Cookie jar、重定向与认证会话。因此,Cookie 边界仍是获授权数据采集和代理工作流安全模型的一部分。

微缩互联网网络线路穿过清晰分隔的域名边界

修复的是什么

HTTP Cookie 的 Domain 属性决定客户端可向哪些主机回传 Cookie。公共后缀属于注册层级边界。客户端借助公共后缀列表,阻止边界站点设置可被无关注册者共享的 Cookie。

公告描述的是:当 Domain 明确等于本身就是公共后缀的源主机时,libcurl 未正确执行边界检查。此次修复恢复了预期的拒绝行为。

它并不是代理凭据泄露。代理认证头和目标站 Cookie 属于不同协议范围,但不安全的复用、重定向和日志记录都可能暴露秘密,因此回归测试必须把两者分开。

判断你的应用是否受影响

盘点所有使用 curl 或 libcurl 的位置,包括命令行任务、语言绑定、嵌入式代理、容器镜像、桌面工具和第三方设备。终端显示的版本不一定等于应用实际加载的库。

每个运行环境至少记录:

  • curl 与 libcurl 版本;
  • 是否启用公共后缀列表支持;
  • 适用时实际加载的 libpsl 版本;
  • 是否启用 Cookie;
  • 是否使用共享或持久 Cookie jar;
  • 哪些主机共用客户端句柄或会话;
  • 重定向是否可能跨越可注册域。

盘点中不得保存 Cookie 值、代理密码、认证头或个人数据。

选择升级、补丁或停用相关功能

curl 项目建议升级至 8.22.0、对维护中的构建应用官方补丁,或不使用 Cookie。应根据软件包与变更管理流程选择受支持的方案。

不要假设升级操作系统软件包就会自动更新静态链接应用或容器。必须重建实际制品、核对运行时版本,并在灰度通过前保留回滚镜像。

构建安全的 Cookie 隔离回归测试

只使用你控制的域名和子域名,不能在真实公共后缀基础设施上复现。

建立三个受控角色:

  1. 设置 Cookie 的源站;
  2. 同一可注册域内允许接收的同级站点;
  3. 永远不应接收 Cookie 的独立对照域。

测试夹具只设置无害标记 Cookie,并仅显示标记是否到达,而不输出其值。在旧构建和修复构建上运行相同步骤:

  1. 从空的内存 Cookie 存储开始;
  2. 通过计划使用的代理线路请求设置源;
  3. 仅跟随夹具定义的重定向;
  4. 请求允许的同级站点;
  5. 请求独立对照域;
  6. 确认哪些请求携带标记;
  7. 分别在连接复用和新客户端句柄下重复。

保持代理路由不变,避免把客户端安全变化误判为网络变化。如果应用会轮换出口,应为隔离测试固定一个获授权会话。

覆盖生产环境真正使用的边界

完整回归至少包括启用与禁用 Cookie、内存与文件 Cookie jar、直连与正常代理模式、同域与跨域重定向、单句柄与复用池、应用支持的 HTTP 版本、生产中的 IPv4 与 IPv6,以及真实任务采用的语言绑定。

通过条件不能只是“请求成功”,而应确认无害标记只出现在策略允许的位置,目标站永远收不到代理凭据,并且修复构建保持预期业务结果。

保护诊断资料

Cookie 测试可能产生敏感跟踪文件。使用合成值,脱敏 Cookie、Set-Cookie、Authorization 和 Proxy-Authorization,并限制保留时间。HAR 与 curl 详细输出在完成清理前都应视为秘密。

可参考代理诊断归档脱敏指南处理完整清单。上线期间需要隔离网络变量时,可使用代理与目标限流区分方法

用可测量灰度上线

先只迁移一小部分获授权任务,并比较有效业务结果率、夹具中的 Cookie 接受与拒绝、重定向和认证失败、p50 与 p95 完成时间、传输字节、重试率、代理会话连续性和非预期 Cookie jar 增长。

如果 Cookie 隔离失败、凭据进入日志,或业务结果超出容忍阈值,应停止灰度。安全更新仍需要运维验证,但恢复到不安全版本必须经过明确风险决策并部署补偿控制。

验证清单

  • 已盘点所有 curl 与嵌入式 libcurl 运行环境;
  • 已在运行时确认版本和公共后缀列表支持;
  • 已记录 Cookie、jar 持久化、句柄共享及重定向行为;
  • 已将 curl 8.22.0 或维护补丁部署到灰度;
  • 测试只使用受控域名和合成 Cookie;
  • 允许与禁止的 Cookie 范围均有明确断言;
  • 比较直连与代理路径时没有同时改变其他变量;
  • 日志和跟踪中没有 Cookie、令牌或代理凭据;
  • 业务成功率、延迟、重试与会话行为符合要求;
  • 最终制品与容器报告正确的修复版本。

常见问题

代理服务商需要修复 CVE-2026-82209 吗?

公告针对 curl 的客户端 Cookie 处理。服务商也可能运行嵌入 libcurl 的软件,但控制每个受影响客户端或服务的团队都必须盘点并更新自己的运行环境。

8.22.0 之前所有 curl 都受影响吗?

不是。公告列出的受影响范围为 curl 7.46.0 至 8.21.0,并强调公共后缀列表支持的相关性。应核对准确构建,不能只根据软件包名称推断。

禁用 Cookie 能消除相关路径吗?

curl 项目把“不使用 Cookie”列为缓解措施。许多认证或有状态流程仍需要 Cookie,因此升级或打补丁通常更持久。

应该在真实网站上扫描这种行为吗?

不应该。使用你拥有的受控夹具和域名。大范围外部扫描没有必要,也可能违反规则或法律。

合规与来源说明

只在获授权的系统、域名、账号和数据范围内运行代理与 Cookie 测试。遵守目标条款、速率限制、隐私义务、保留规则及访问控制。不得收集真实会话 Cookie,也不得利用该问题跨越域名边界。

内部研究来源:curl 项目《domain-scoped PSL domain cookie — CVE-2026-82209》,2026 年 9 月 2 日;curl 项目《Changes in 8.22.0》,2026 年 9 月 2 日。资料地址仅保存在内部运营记录中。