• DevOps
  • jenkins暴露安全漏洞, 官网暂时未有最新镜像容器, 如何升级内置jenkins

创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。如果未按模板创建问题,管理员有权关闭问题。
确保帖子格式清晰易读,用 markdown code block 语法格式化代码块。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。

操作系统信息
虚拟机,Centos7 8C/32G

Kubernetes版本信息

v1.24.3

容器运行时

docker version:23.0.1

crictl version:1.6.18

nerdctl: 未安装

KubeSphere版本信息
v3.0.0。在线安装。使用kk安装。

问题是什么
描述: jenkins暴露安全漏洞, 官网暂时未有最新镜像容器, 如何升级内置jenkins

ps: jenkins需要更新至: 2.426.3, 但是最新的ks jenkins镜像的版本只有: 2.346.3

    1 个月 后

    MrChenxy 你好,暂时不支持单独升级 jenkins;

    对于这个漏洞问题,可以参考 CVE-2024-23897 SECURITY-3314-3315 禁用 jenkins-cli 工具以及 sshd 来解决,具体步骤如下:

    1. 进入执行脚本命令窗口

    默认 jenkins 使用 NodePort 暴露服务,端口为 30180.

    通过 URL 打开 Jenkins UI,用户名密码为 ks-console 相同的用户名密码。

    点击左上角 Jenkins 旁边的 小三角 → 系统管理 → 脚本命令行 ;

    2. 执行 disable cli 脚本

    // Disable CLI access over HTTP
    def removal = { lst ->
      lst.each { x -> if (x.getClass().getName()?.contains("CLIAction")) lst.remove(x) }
    }
    def j = jenkins.model.Jenkins.get();
    removal(j.getExtensionList(hudson.cli.CLIAction.class))
    removal(j.getExtensionList(hudson.ExtensionPoint.class))
    removal(j.getExtensionList(hudson.model.Action.class))
    removal(j.getExtensionList(hudson.model.ModelObject.class))
    removal(j.getExtensionList(hudson.model.RootAction.class))
    removal(j.getExtensionList(hudson.model.UnprotectedRootAction.class))
    removal(j.getExtensionList(java.lang.Object.class))
    removal(j.getExtensionList(org.kohsuke.stapler.StaplerProxy.class))
    removal(j.actions)
     
     
    // Disable CLI access over SSH Server Plugin
    if (j.getPlugin('sshd')) {
      hudson.ExtensionList.lookupSingleton(org.jenkinsci.main.modules.sshd.SSHD.class).setPort(-1)
    }
     
    println "Done!"

    如图,在上一步打开的脚本框里输入上面的脚本,然后点击右下角 运行 按钮,直到输出结果 Done!

    3. 确认脚本生效

    点击左上角 Jenkins 旁边的 小三角 → 系统管理 → Jenkins命令行接口

    如果出现如下图 404 Not Found 状态码就可以了: