Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-53435 — 一名攻击性安全研究员 + 一个AI vs. 一个最新的n-day:在一个周五晚上构建了CVE-2026-53435的首个公开PoC。内含原始8小时20分钟日志。 | Kitploit
工具/GitHubGitHub/amesianx/cve-2026-53435
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育二进制利用
GitHubamesianx/cve-2026-53435

CVE-2026-53435

一名攻击性安全研究员 + 一个AI vs. 一个最新的n-day:在一个周五晚上构建了CVE-2026-53435的首个公开PoC。内含原始8小时20分钟日志。

查看仓库
112163个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-53435 — Jenkins 反序列化 → 任意文件读取(PoC)

CVE-2026-53435 的首个公开概念验证,在仅有安全公告、没有任何 PoC 公开发布时构建。 仅凭一行模糊的公告,在一个周五晚上耗时 约 8.5 小时 重建——不是通过手动编写利用代码,而是通过 引导 AI 遍历死胡同、转向和验证,直到获得可运行的攻击链。

CVE-2026-53435 PoC 读取 Jenkins 控制器的 /etc/passwd

PoC 读取控制器上的 /etc/passwd——确认任意文件读取。

CVECVE-2026-53435(Jenkins SECURITY-3707)
类型不安全反序列化(通过 config.xml 绕过 ClassFilter)
影响(本 PoC)已认证用户在控制器上任意文件读取
受影响版本Jenkins weekly ≤ 2.567, LTS ≤ 2.555.2
修复版本Jenkins weekly 2.568, LTS 2.555.3
公告https://www.jenkins.io/security/advisory/2026-06-10/(发布于 2026-06-10)
撰写时的状态没有公开 PoC 存在(GitHub PoC 仓库:0)

为什么有这个仓库

这是一个展示 过程 而非仅展示成果的实验。

多年来,进攻性研究人员的产出仅仅是一个成品 exploit——那 8 小时的错误方向被丢弃了。这个仓库保留了那些错误方向。一份完整、经过轻度编辑的人机协作记录(从公告到工作 PoC)作为附录包含在内。

它的论点刻意 不是 "AI 完成了这一切。" 那 8 小时正是 AI 并未完成的证据。AI 从未一次性生成整个攻击链。真正推动工作的是领域专业知识——知道公告背后隐藏着一个反序列化接收点,知道应该在 Jenkins 核心 类型而非插件中查找,知道未打补丁的 DescribableList 不会强制其元素类型,以及知道如何 验证 一个声明而非盲目相信。研究人员的价值并未消失;它从 编写 exploit 转移到了 引导、剪枝和验证。

这个转变才是值得记录的东西。


漏洞(根本原因)

Jenkins 使用自定义的 ClassFilter 保护反序列化,该过滤器仅允许 Jenkins 核心或插件中定义的类型。CVE-2026-53435 的漏洞在于这 还不够:能够 POST 一个 config.xml 的攻击者可以让 Jenkins 将 任意核心/插件类型反序列化到从未期望该类型的上下文中,然后通过 Stapler 路由通过 HTTP 访问该对象。

这个 PoC 将一个 hudson.Plugin$DummyImpl(Jenkins 核心类型,因此通过位置白名单)植入到 ListView 的 <properties> 列表中——一个 DescribableList<ViewProperty>,在补丁前不强制其元素类型。植入的对象带有 baseResourceURL=file:/。然后,将 HTTP 请求路由到它,就可以直接从控制器的文件系统中提供文件。

通用的 ysoserial 链在这里 不可行——gadget 必须是 Jenkins/插件驻留类型才能通过过滤器。这个约束是整个游戏的关键。


范围与负责任披露

  • 此 PoC 仅演示 任意文件读取 的影响。
  • 公告还描述了通过相同原语实现的 用户冒充 和 脚本控制台 RCE。这些链在研究期间已达成,但此处 有意保留:CVE 仅在发布前几天才被修补,而一键式 RCE 主要会助长针对未修补实例的大规模利用。文件读取足以证明影响。
  • 该漏洞 已被修补。所有测试均在作者自己机器上的 本地隔离实验室(见下文)中进行。未触及任何外部或第三方系统。

仅对你拥有或明确授权测试的系统使用。


证明:在有漏洞版本上有效,在已修补版本上失效

该 exploit 针对两个配置相同的容器运行——有漏洞的 2.555.2 和已修补的 2.555.3——以确认它利用了 这个 CVE 而非其他不相关的文件读取原语:

2.555.2(有漏洞)2.555.3(已修补)
createViewHTTP 200HTTP 200
存储的 <properties><hudson.Plugin_-DummyImpl/> — 存活<properties/> — 被清除
触发 → /etc/passwdroot:x:0:0:... — 读取成功空 — 被阻止

已修补的版本接受请求,但修复 在反序列化时拒绝了植入的类型,因此 properties 列表返回空,没有可路由的内容。失败点正好落在公告描述的机制上——这使得它成为 CVE-2026-53435 的真正 PoC。


使用方法

python3 exploit_cve_2026_53435_v2.py <base_url> <user> <pass> <remote_file> [view_name]

# 示例(针对你自己的实验室):
python3 exploit_cve_2026_53435_v2.py http://127.0.0.1:8080 <user> <pass> /etc/passwd
  • base_url — 目标的 http://host:port(纯 HTTP;除非实例实际终止 TLS,否则不要添加 https 前缀)。
  • 需要一个具有 POST view config.xml 权限(View/Configure)以及 Overall/Read 权限的账户。

搭建实验室

docker compose -f lab/docker-compose.yml up -d
#   有漏洞版本:  http://127.0.0.1:8080   (Jenkins LTS 2.555.2)
#   已修补版本:  http://127.0.0.1:8081   (Jenkins LTS 2.555.3, 阴性对照)

实验室通过 Groovy 初始化脚本配置了仅限本地的用户数据库,以便可以在没有外部 IdP 的情况下演练已认证的低权限路径。


时间线——一个周五晚上,约 8.5 小时

2026-06-12(周五) 15:00 → 23:23   约 8 小时 20 分钟

  15:00–15:12   搭建实验室(docker:有漏洞 2.555.2 / 已修补 2.555.3)+ 初步侦察
  15:12–21:00   反序列化接收点与 gadget 分析
                  (Commons-Collections 绕过尝试失败 → 从 properties 转向 actions 再转回)
  21:00–22:30   ClassFilter 分析 + 重新寻找 gadget,仅限于核心类型
  22:30–23:00   工作 PoC(v1 → v2)+ 差异验证(有漏洞 vs 已修补)

其中大部分时间花在 分析 上,而非输入。Exploit 本身在最后约 30 分钟内完成——一旦正确的接收点和 gadget 被确定下来。


构建方式

使用 Claude Code(Anthropic)构建,由作者交互式驱动:

  • 主要模型: Claude Opus 4.8(Claude Max)
  • 部分模型: Claude Fable 5(Mythos 级)

完整的、经过轻度编辑的工作记录位于 transcript/——保持原始状态,包括死胡同。(仅做了轻度编辑以缓和语气并掩盖本地网络细节;未删除任何技术内容。)


免责声明

仅用于授权的安全测试、研究和教育。作者和贡献者对滥用不承担任何责任。目标漏洞已被修补——请更新至 Jenkins LTS 2.555.3 / weekly 2.568 或更高版本。

下载工具