IPBUF安全漏洞报告
English
CVE-2026-6019 CVSS 6.1 中危

CVE-2026-6019 Python http.cookies跨站脚本漏洞

披露日期: 2026-04-22

漏洞信息

漏洞编号
CVE-2026-6019
漏洞类型
跨站脚本攻击 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Python (CPython)

相关标签

XSSPythonCVE-2026-6019http.cookiesScript InjectionClient-side

漏洞概述

Python标准库中的`http.cookies.Morsel.js_output()`方法存在安全漏洞。该方法用于生成JavaScript代码片段以设置Cookie,但仅对双引号进行了转义,未能正确过滤HTML解析器敏感序列`</script>`。攻击者可通过构造包含恶意`</script>`标签的Cookie值,闭合原有的脚本标签并注入任意JavaScript代码。这可能导致存储型XSS攻击,窃取用户敏感信息或执行未经授权的操作。

技术细节

该漏洞位于Python的`http.cookies`模块中,具体涉及`Morsel`类的`js_output()`方法。其设计目的是在HTML页面中通过JavaScript动态设置Cookie。生成的代码格式通常为`<script>document.cookie="name=value";</script>`。方法内部仅针对JavaScript字符串上下文中的双引号(`"`)进行了转义处理,防止闭合字符串,但忽略了HTML解析器的行为。在HTML中,`<script>`标签的内容在遇到`</script>`序列时会立即结束,无论JavaScript字符串是否闭合。攻击者可以利用这一逻辑漏洞,精心构造包含`</script>`序列的Cookie值。当服务器通过`js_output()`输出该Cookie时,攻击者提供的序列会闭合原本的脚本标签,从而允许攻击者注入任意HTML或JavaScript代码。这种攻击方式绕过了常规的JS字符串转义机制,属于典型的上下文混淆漏洞。利用此漏洞,攻击者可实施存储型XSS攻击,窃取会话令牌、修改页面内容或重定向用户。

攻击链分析

STEP 1
1. 攻击准备
攻击者构造包含`</script>`序列的恶意Cookie值。
STEP 2
2. 注入载荷
攻击者通过某种方式(如HTTP响应头设置)将恶意Cookie值注入到目标系统中。
STEP 3
3. 触发漏洞
受害者访问使用了`http.cookies.Morsel.js_output()`方法的页面。
STEP 4
4. 代码执行
浏览器解析HTML时,遇到恶意注入的`</script>`标签,提前结束脚本块,并执行攻击者注入的后续JavaScript代码。
STEP 5
5. 达成目的
恶意JavaScript在受害者浏览器中运行,可能导致Cookie窃取、会话劫持或其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import http.cookies # Simulate a vulnerable scenario # An attacker controls the value of a cookie, injecting the closing script tag malicious_value = "safe_value</script><script>alert('XSS discovered');//" C = http.cookies.SimpleCookie() C["user_id"] = malicious_value # The application uses js_output() to render the cookie setting script vulnerable_output = C["user_id"].js_output() print("Generated JavaScript output:") print(vulnerable_output) # Explanation: # The output will be: <script>document.cookie = "user_id=safe_value</script><script>alert('XSS discovered');//"; # The browser sees the first </script> and closes the script block, # then executes the injected alert() as a new script tag.

影响范围

Python (请参考GitHub提交记录确认具体受影响版本)

防御指南

临时缓解措施
建议对Cookie值进行Base64编码,以防止包含特殊字符导致的脚本注入,直到官方补丁应用完毕。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表