CVE-2026-6276CVE-2026-6276 是 libcurl 库中存在的一个高危安全漏洞。该漏洞的成因在于 libcurl 在复用连接句柄处理 HTTP 请求时,未能正确清除之前的上下文状态。具体而言,当开发者在同一个 easy handle 上第一次发起请求时设置了自定义的 `Host:` 头部,随后在第二次请求中未设置该头部,libcurl 会错误地保留并使用第一次请求中的过时信息。这种逻辑缺陷导致本应属于第一个主机的 Cookie 被错误地附加在发送给第二个主机的请求中,从而引发敏感信息泄露。攻击者可利用此缺陷在特定场景下窃取用户的会话 Cookie,进而可能接管用户账户,对数据机密性构成严重威胁。
该漏洞的核心机制在于 libcurl 内部对连接句柄和头部缓存的处理逻辑。当开发者复用同一个 easy handle 发起多个 HTTP 请求时,libcurl 内部状态机可能会保留某些上下文信息。在漏洞触发场景中,第一个请求显式通过 `CURLOPT_HTTPHEADER` 设置了 `Host` 头部,覆盖了默认从 URL 解析出的主机名,同时可能接收了服务器设置的 Cookie。当释放该头部设置并发起第二个请求到不同目标时,libcurl 未能正确重置与 Cookie 关联的主机校验逻辑。由于 Cookie 通常绑定到特定的 Domain 和 Path,libcurl 应当验证请求的目标主机是否与 Cookie 的属性匹配。然而,由于状态残留,libcurl 错误地认为第二次请求的目标仍然匹配前一个请求的 Cookie 属性,或者是直接将缓存的 Cookie 头部字段附加到了新的请求中,未进行严格的主机一致性校验。这导致跨域 Cookie 泄露。攻击者若能控制请求的流向或处于中间人位置,即可截获这些泄露的 Cookie,进而劫持用户会话。