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

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

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

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

工具目录

分类

查看所有分类
Loading categories
SECURITY-218 — 禁用 Jenkins CLI/Remoting 子系统,作为针对未认证远程代码执行漏洞 SECURITY-218 和 SECURITY-360 的缓解措施,可在运行时或通过初始化脚本应用。 | Kitploit
工具/GitHubGitHub/jenkinsci-cert/security-218
防御工具漏洞分析脚本与自动化配置审计事件响应Archived
GitHubjenkinsci-cert/security-218

SECURITY-218

禁用 Jenkins CLI/Remoting 子系统,作为针对未认证远程代码执行漏洞 SECURITY-218 和 SECURITY-360 的缓解措施,可在运行时或通过初始化脚本应用。

查看仓库
2059年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

此缓解措施自 Jenkins 2.54 和 Jenkins LTS 2.46.2 起已过时。 如果你全新安装了 2.54+/LTS 2.46.2+ 版本的 Jenkins,基于 Remoting 的 CLI 默认即被禁用。 如果你安装的是旧版 Jenkins 并升级到 2.54+ 或 LTS 2.46.2+, 管理监控器会提示你 前往 Configure Global Security 并禁用基于 Remoting 的 CLI。 无论哪种情况,以下变通方案均无必要。

或者,如果你使用的是 Jenkins 2.32+ 或 2.19.3+ (如 2016 年 11 月 16 日安全公告 所述), 但版本低于 2.54,你可以直接使用启动参数:-Djenkins.CLI.disabled=true

针对通过 CLI 进行的未认证远程代码执行的缓解措施

注意:此脚本最初发布于 2015 年 11 月,用于修复 SECURITY-218 零日漏洞。它也可用作针对 SECURITY-360 零日漏洞(发布于 2016 年 11 月)的变通方案。

此脚本 可用于关闭 Jenkins 的 CLI 子系统,以保护 Jenkins 免受已知漏洞的影响。

从 Groovy 脚本控制台(/script)运行时,它会在无需重启的情况下关闭正在运行的 Jenkins 的 CLI 子系统。

当放置在 $JENKINS_HOME/init.groovy.d/cli-shutdown.groovy 中时,它可以确保主节点重启后保护依然生效。

要检查缓解措施是否成功应用,请使用 cli.jar 运行 java -jar cli.jar -s $JENKINS_URL,并确保你得到类似如下的 EOFException:

root@kitploit:~
java.io.EOFException
	at java.io.DataInputStream.readFully(DataInputStream.java:197)
	at java.io.DataInputStream.readUTF(DataInputStream.java:609)
	at java.io.DataInputStream.readUTF(DataInputStream.java:564)
	at hudson.cli.CLI.connectViaCliPort(CLI.java:232)
	at hudson.cli.CLI.<init>(CLI.java:128)
	at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:72)
	at hudson.cli.CLI._main(CLI.java:479)
	at hudson.cli.CLI.main(CLI.java:390)
	Suppressed: java.io.IOException: https://ci.jenkins-ci.org/cli doesn't look like Jenkins
		at hudson.cli.FullDuplexHttpStream.<init>(FullDuplexHttpStream.java:81)
		at hudson.cli.CLI.connectViaHttp(CLI.java:158)
		at hudson.cli.CLI.<init>(CLI.java:132)
		... 3 more

常见问题

如何解读此脚本的输出?

输出没有任何有用的含义,因此请忽略输出。请参阅上文了解如何验证缓解措施已生效。为安全起见,如果你重启了 Jenkins,请再次执行验证。

这会影响 REST API 吗?

不会。

此脚本修复的是什么漏洞?

该脚本最初于 2015 年 11 月开发,作为 SECURITY-218 零日远程代码执行漏洞的变通方案。包含修复的版本已于 2015 年 11 月 11 日发布。

2016 年 11 月 11 日,另一个零日远程代码执行漏洞(SECURITY-360)利用了类似的技术,而此变通方案同样有效。

下载工具