AnandJogawade/CVE-2026-48849-Roundcube-Webmail-Stored-XSS
GitHub: AnandJogawade/CVE-2026-48849-Roundcube-Webmail-Stored-XSS
该仓库记录了 Roundcube Webmail 中 CVE-2026-48849 存储型 XSS、HTML 注入与 CSS 注入漏洞的概念验证,展示如何通过邮件主题字段在会话恢复时自动触发恶意代码执行。
Stars: 1 | Forks: 0
# CVE-2026-48849 - Roundcube Webmail 中的存储型 XSS、HTML 注入与 CSS 注入
## 概述
本仓库包含 **CVE-2026-48849** 的概念验证(PoC),这是 Roundcube Webmail 中存在的一个存储型跨站脚本攻击(XSS)、HTML 注入以及 CSS 注入漏洞。
该漏洞允许攻击者通过邮件主题字段注入恶意 HTML、CSS 和 JavaScript,这些内容会存储在草稿/会话恢复数据中,并在用户重新登录并恢复会话时自动执行。
## 漏洞详情
| 字段 | 值 |
|---------|---------|
| CVE | CVE-2026-48849 |
| 产品 | Roundcube Webmail |
| 漏洞类型 | 存储型 XSS / HTML 注入 / CSS 注入 |
| 受影响版本 | 1.6.16 之前的 1.6.x,1.7.1 之前的 1.7.x |
| 修复版本 | 1.6.16, 1.7.1 |
| 发现/报告者 | [Anand Jogawade (zazy)](https://roundcube.net/news/2026/05/24/security-updates-1.6.16-and-1.7.1) |
## 影响
成功利用该漏洞可能导致:
- 在已认证用户的上下文中执行任意 JavaScript
- HTML 内容注入
- 基于 CSS 的 UI 操控和视觉篡改
- 在 webmail 界面内进行钓鱼式覆盖
- DOM 操控
- 重定向至攻击者控制的网站
- 存储的 payload 会持续存在,直到草稿/会话数据被删除
该漏洞的一个显著特点是,payload 会在登录后的会话恢复过程中自动执行,无需用户进行额外的交互。
## 复现步骤
1. 登录 Roundcube Webmail
2. 点击 **Compose**。
3. 将 payload 插入 **Subject** 字段中。
4. 触发任意后台操作(例如,添加图片附件),捕获请求并将其发送到 Repeater。
5. 首先发送原始请求并渲染响应(它将显示图片)。
6. 然后在 Repeater 中修改或删除 roundcube_sessauth cookie 以使会话失效,发送请求并渲染响应(它将显示主登录页面)。
7. 通过发送带有有效(原始)cookie 的相同请求来确认会话已过期,并检查响应是否为 200 OK(它仍将显示主登录页面)。
8. 查看 Roundcube 撰写邮件区域的右上角,它将显示一条消息“Your session is invalid or expired”。
9. 然后重新加载页面(它将跳转回登录页面)。
10. 使用相同的凭据再次登录。
11. XSS 会自动触发弹窗,并出现带有 CSS 注入和 HTML 注入的恢复消息弹窗。
## 概念验证
```
'">