Jenkins 插件多个漏洞(2022 年 2 月 15 日)

high Nessus 插件 ID 162138

简介

远程 Web 服务器主机上运行的应用程序受到多个漏洞影响

描述

根据其自我报告的版本号,远程 Web 服务器上运行的相应版本的 Jenkins 插件受到多种漏洞的影响:

- 执行控制器上 SCM 检出的多个与管道相关的插件,在某些上下文中,将相同的工作区目录重用于不同 SCM 的检出。管道:Groovy 插件 2648.va9433432b33c 及更早版本在读取管道的脚本文件(通常为 Jenkinsfile)时,对不同的 SCM 使用相同的检出目录。管道:Shared Groovy Libraries 552.vd9cc05b8a2e1 及更早版本对管道库的不同 SCM 使用相同的检出目录。管道:Multibranch 706.vd43c65dec013 及更早版本对 readTrusted 步骤的不同 SCM 使用相同的检出目录。这允许具有项目/配置权限的攻击者通过构建的 SCM 内容在控制器上调用任意 OS 命令。已更新受影响的插件以解决以下问题:管道:Groovy 插件 2656.vf7a_e7b_75a_457 在读取管道的脚本文件(通常为 Jenkinsfile)时,对每个 SCM 使用不同的检出目录。管道:共享 Groovy 库 561.va_ce0de3c2d69 对管道库的每个 SCM 使用不同的检出目录。管道:Multibranch 707.v71c3f0a_6ccdb_ 针对 readTrusted 步骤的每个 SCM 使用不同的检出目录。 (CVE-2022-25173、CVE-2022-25174、CVE-2022-25175)

- 多个与管道相关的插件跟随符号链接或不限制路径名称,导致任意文件读取漏洞:管道:Groovy 插件 2648.va9433432b33c 及更低版本在读取管道的脚本文件(通常为 Jenkinsfile)(最初报告为 SECURITY-2595)时,跟随指向已配置 SCM 签出目录之外位置的符号链接。管道:使用 libraryResource 步骤(最初报告为 SECURITY-2479)时,Shared Groovy 库 552.vd9cc05b8a2e1 及更低版本遵循指向预期 Pipeline 库外部位置的符号链接。
管道:Shared Groovy 库 552.vd9cc05b8a2e1 及更低版本不限制传递给 libraryResource 步骤(最初报告为 SECURITY-2476)的资源名称。管道:当使用 readTrusted 步骤(最初报告为 SECURITY-2491)读取文件时,Multibranch 706.vd43c65dec013 及更低版本遵循指向已配置 SCM 签出目录之外位置的符号链接。
这允许攻击者配置管道以读取 Jenkins 控制器文件系统上的任意文件。已更新受影响的插件以解决以下问题:管道:Groovy 插件 2656.vf7a_e7b_75a_457 检查到 Pipelines 的脚本文件在已配置的 SCM 的检出目录中。管道:Shared Groovy Libraries 561.va_ce0de3c2d69 检查到由 libraryResource 步骤检索的任何资源包含在预期的管道库中。管道:
Multibranch 707.v71c3f0a_6ccdb_ 检查到 readTrusted 检索的文件在已配置的 SCM 的检出目录内。 (CVE-2022-25176、CVE-2022-25177、CVE-2022-25178、CVE-2022-25179)

- 管道:Groovy 插件 2648.va9433432b33c 及更早版本在重放版本中包含原始版本的密码参数。这允许具有运行/重放权限的攻击者获取传递给之前版本管道的密码参数值。管道:Groovy 插件 2656.vf7a_e7b_75a_457 不允许重放包含密码参数的版本。 (CVE-2022-25180)

- 管道:已弃用的 Groovy Libraries 插件 552.vd9cc05b8a2e1 及更早版本对所有具有相同名称的管道库的检出内容使用相同的工作空间目录,无论使用的 SCM 和库配置的来源为何。如果已存在全局管道库,这将允许具有项目/配置权限的攻击者通过构建的 SCM 内容在 Jenkins 控制器 JVM 的上下文中执行任意代码。管道:已弃用的 Groovy 库 561.va_ce0de3c2d69 对管道库的每个 SCM 使用不同的检出目录。(CVE-2022-25181)

- 管道:已弃用的 Groovy 库插件 552.vd9cc05b8a2e1 及更早版本使用管道库的名称创建没有规范化或审查的目录。如果已配置全局管道库,这将允许具有项目/配置权限的攻击者使用特制的库名称在 Jenkins 控制器 JVM 的上下文中执行任意代码。管道:已弃用的 Groovy 库插件 561.va_ce0de3c2d69 在创建库目录时审查管道库的名称。 (CVE-2022-25182)

- 管道:已弃用的 Groovy 库插件 552.vd9cc05b8a2e1 及更早版本使用管道库的名称创建没有审查的缓存目录。如果存在已配置使用缓存的全局管道库,这将允许具有项目/配置权限的攻击者使用特制的库名称在 Jenkins 控制器 JVM 的上下文中执行任意代码。管道:已弃用的 Groovy 库插件 561.va_ce0de3c2d69 在创建库缓存目录时审查管道库的名称。 (CVE-2022-25183)

- 管道:Build Step Plugin 2.15 及更早版本在使用 Pipeline Snippet Generator 生成管道脚本时显示密码参数默认值。这允许具有项目/读取权限的攻击者从作业中检索默认密码参数值。管道:Build Step Plugin 2.15.1 修订生成的管道脚本中的密码参数。 (CVE-2022-25184)

- Generic Webhook Trigger Plugin 1.81 及更早版本未转义 Webhook 的版本原因。这会导致攻击者利用 Webhook 触发构建的存储型跨站脚本 (XSS) 漏洞。Generic Webhook Trigger Plugin 1.82 在 UI 上显示时转义版本原因。注意:此漏洞仅在 Jenkins 2.314 及更早版本、 LTS 2.303.1 及更早版本中可利用。
请参阅 LTS 升级指南。 (CVE-2022-25185)

- HashiCorp Vault Plugin 3.8.0 及更早版本实施的功能允许代理进程检索要在代理上使用的任何 Vault 密钥。这允许攻击者能够控制代理进程以获取攻击者指定的路径和密钥的 Vault 密钥。允许代理进程捕获 Vault 密钥的功能不能再用于 HashiCorp Vault Plugin 336.v182c0fbaaeb7。 (CVE-2022-25186)

- Support Core Plugin 具有编辑支持捆绑包中潜在敏感信息的功能。
Support Core Plugin 2.79 及更早版本未编辑支持捆绑包中的某些敏感信息。
任何有权访问该捆绑包的人都可以查看此敏感信息。Support Core Plugin 2.79.1 添加相关值将被编辑的关键词列表。此列表存储在 $JENKINS_HOME/support 中的 security-stop-words.txt 文件中,可对其进行修改以针对应编辑的值添加其他关键词。 (CVE-2022-25187)

- Fortify Plugin 20.2.34 及更早版本未审查其用于写入版本目录内的文件的 appName 和 appVersion 参数。这允许具有项目/配置权限的攻击者在 Jenkins 控制器文件系统上用攻击者无法控制的内容写入或覆盖 .xml 文件。Fortify Plugin 20.2.35 在确定结果文件名时审查其管道步骤的 appName 和 appVersion 参数。 (CVE-2022-25188)

- Custom Checkbox Parameter Plugin 1.1 及更早版本未转义自定义复选框参数的参数名称。这会导致具有项目/配置权限的攻击者可利用存储型跨站脚本 (XSS) 漏洞。Custom Checkbox Parameter Plugin 1.2 未转义自定义复选框参数的参数名称。(CVE-2022-25189)

- Conjur Secrets Plugin 1.0.11 及更早版本未在 HTTP 端点中执行权限检查。这将允许具有全局/读取权限的攻击者枚举存储在 Jenkins 中凭据的凭据 ID。这些可用作攻击的一部分,以使用其他漏洞捕获凭据。Conju secrets Plugin 1.0.12 中的凭据 ID 枚举需要全局/管理员权限。
(CVE-2022-25190)

- Agent Server Parameter Plugin 1.0 及更早版本未转义代理服务器参数的参数名称。
这会导致具有项目/配置权限的攻击者可利用存储型跨站脚本 (XSS) 漏洞。Agent Server Parameter Plugin 1.1 及更早版本转义代理服务器参数的参数名称。(CVE-2022-25191)

- Snow Commander Plugin 2.0 及更早版本不在实现表单验证的方法中执行权限检查。- 这将导致具有全局/读取权限的攻击者可使用通过其他方法获取的攻击者指定凭据 ID,连接到攻击者指定的 Web 服务器,从而捕获 Jenkins 中存储的凭据。此外,这些表单验证方法不需要 POST 请求,从而导致跨站请求伪造 (CSRF) 漏洞。Snow Commander Plugin 2.0 需要受影响的表单验证方法的 POST 请求和全局/管理员权限。 (CVE-2022-25192、CVE-2022-25193)

- autonomiq Plugin 1.15 及更早版本未在 HTTP 端点中执行权限检查。这将允许具有全局/读取权限的攻击者使用攻击者指定的用户名和密码连接到攻击者指定的 URL。此外,此 HTTP 端点不需要 POST 请求,从而导致跨站请求伪造 (CSRF) 漏洞。 autonomiq Plugin 1.16 需要此 HTTP 端点的 POST 请求和全局/管理员权限。 (CVE-2022-25194、CVE-2022-25195)

- GitLab Authentication Plugin 1.13 及更低版本在身份验证进程启动时将 HTTP 引用标头记录为 URL 查询参数,并在用户完成登录时将用户重定向到该 URL。这将允许具有 Jenkins 访问权限的攻击者构建一个 URL,在用户登录后将其重定向到攻击者指定的 URL。注意:此问题是由 SECURITY-796 的不完整补丁造成的。在发布此公告时,尚无修复方法。(CVE-2022-25196)

- HashiCorp Vault Plugin 336.v182c0fbaaeb7 及更早版本实施的功能允许代理进程读取 Jenkins 控制器文件系统上的任意文件。这将允许攻击者控制代理进程,以读取 Jenkins 控制器文件系统上的任意文件。注意:此漏洞仅在 Jenkins 2.318 及更早版本、 LTS 2.303.2 及更早版本中可利用。请参阅 LTS 升级指南。在发布此公告时,尚无修复方法。(CVE-2022-25197)

- SCP publisher Plugin 1.8 及更早版本不在实现表单验证的方法中执行权限检查。这将允许具有全局/读取权限的攻击者使用攻击者指定的用户名和密码连接到攻击者指定的 SSH 服务器。此外,该表单验证方法不需要 POST 请求,从而导致跨站请求伪造 (CSRF) 漏洞。在发布此公告时,尚无修复方法。(CVE-2022-25198、CVE-2022-25199)

- Checkmarx Plugin 2022.1.2 及更早版本在多个 HTTP 端点中未执行权限检查。- 这将导致具有全局/读取权限的攻击者可使用通过其他方法获取的攻击者指定凭据 ID,连接到攻击者指定的 Web 服务器,从而捕获 Jenkins 中存储的凭据。此外,这些 HTTP 端点不需要 POST 请求,从而导致跨站请求伪造 (CSRF) 漏洞。在发布此公告时,尚无修复方法。
(CVE-2022-25200、CVE-2022-25201)

-promoted Builds (Simple) Plugin 1.9 及更早版本未转义自定义升级级别的名称。这会导致具有全局/管理员权限的攻击者可利用存储型跨站脚本 (XSS) 漏洞。在发布此公告时,尚无修复方法。(CVE-2022-25202)

- Team Views Plugin 0.9.0 及更早版本不转义团队名称。这会导致具有全局/读取权限的攻击者可利用存储型跨站脚本 (XSS) 漏洞。在发布此公告时,尚无修复方法。(CVE-2022-25203)

- Doktor 插件 0.4.1 及更早版本实现的功能允许代理进程将控制器上的文件呈现为 Markdown 或 Asciidoc。此外,错误消息可让攻击者控制代理进程,以确定是否存在具有给定名称的文件。在发布此公告时,尚无修复方法。(CVE-2022-25204)

- dbCharts Plugin 0.5.2 及更早版本不在实现表单验证的方法中执行权限检查。这将允许具有全局/读取权限的攻击者使用攻击者指定的凭据通过 JDBC 连接到攻击者指定的数据库。此外,此方法允许攻击者通过错误消息确定 Jenkins 控制器的类路径上是否有类。
此外,该表单验证方法不需要 POST 请求,从而导致跨站请求伪造 (CSRF) 漏洞。在发布此公告时,尚无修复方法。
(CVE-2022-25205、CVE-2022-25206)

- Chef Sinatra Plugin 1.20 及更早版本不在实现表单验证的方法中执行权限检查。这可让具有全局/读取权限的攻击者让 Jenkins 向攻击者控制的 URL 发送 HTTP 请求,并将其解析为 XML。由于该插件未配置其 XML 解析器以防止 XML 外部实体 (XXE) 攻击,因此攻击者可让 Jenkins 解析一个特制的 XML 响应,该响应使用外部实体从 Jenkins 控制器或服务器端请求伪造中提取密钥。此外,该表单验证方法不需要 POST 请求,从而导致跨站请求伪造 (CSRF) 漏洞。在发布此公告时,尚无修复方法。
(CVE-2022-25207、CVE-2022-25208、CVE-2022-25209)

- Convertigo Mobile Platform Plugin 1.1 及更早版本使用静态字段存储作业配置信息。这允许具有项目/配置权限的攻击者捕获将配置的作业的密码。在发布此公告时,尚无修复方法。(CVE-2022-25210)

- SWAMP Plugin 1.2.6 及更早版本不在实现表单验证的方法中执行权限检查。- 这将导致具有全局/读取权限的攻击者可使用通过其他方法获取的攻击者指定凭据 ID,连接到攻击者指定的 URL,从而捕获 Jenkins 中存储的凭据。此外,该表单验证方法不需要 POST 请求,从而导致跨站请求伪造 (CSRF) 漏洞。在发布此公告时,尚无修复方法。
(CVE-2022-25211、CVE-2022-25212)

请注意,Nessus 尚未测试这些问题,而是只依靠应用程序自我报告的版本号来判断。

解决方案

将 Jenkins 插件更新到以下版本:
- Agent Server Parameter Plugin 至 1.1 版或更高版本
- autonomiq 插件至 1.16 版或更高版本
- Conju secrets Plugin 至 1.0.12 版或更高版本
- Custom Checkbox Parameter Plugin 至 1.2 版或更高版本
- Fortify 插件至 20.2.35 版或更高版本
- Generic Webhook Trigger 1.82 或更高版本
- HashiCorp Vault Plugin 至 336 版或更高版本
- 管道:Build Step Plugin 至版本 2.15.1 或更高版本
- 管道:弃用的 Groovy Libraries Plugin 至 561 版或更高版本
- 管道:Groovy Plugin 至 2656 版或更高版本
- 管道:Multibranch Plugin 至 707 版或更新版本
- Snow Commander 插件至 2.0 版或更高版本
-Support Core Plugin 至 2.79.1 版或更高版本

有关更多详细信息,请参阅供应商公告。

另见

https://jenkins.io/security/advisory/2022-02-15

插件详情

严重性: High

ID: 162138

文件名: jenkins_security_advisory_2022-02-15_plugins.nasl

版本: 1.4

类型: combined

代理: windows, macosx, unix

系列: CGI abuses

发布时间: 2022/6/13

最近更新时间: 2023/7/28

支持的传感器: Nessus Agent, Nessus

风险信息

VPR

风险因素: Medium

分数: 5.9

CVSS v2

风险因素: Medium

基本分数: 6.8

时间分数: 5

矢量: CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P

CVSS 分数来源: CVE-2022-25212

CVSS v3

风险因素: High

基本分数: 8.8

时间分数: 7.7

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:U/RL:O/RC:C

漏洞信息

CPE: cpe:/a:cloudbees:jenkins, cpe:/a:jenkins:jenkins

必需的 KB 项: installed_sw/Jenkins

易利用性: No known exploits are available

补丁发布日期: 2022/2/15

漏洞发布日期: 2022/2/15

参考资料信息

CVE: CVE-2022-25173, CVE-2022-25174, CVE-2022-25175, CVE-2022-25176, CVE-2022-25177, CVE-2022-25178, CVE-2022-25179, CVE-2022-25180, CVE-2022-25181, CVE-2022-25182, CVE-2022-25183, CVE-2022-25184, CVE-2022-25185, CVE-2022-25186, CVE-2022-25187, CVE-2022-25188, CVE-2022-25189, CVE-2022-25190, CVE-2022-25191, CVE-2022-25192, CVE-2022-25193, CVE-2022-25194, CVE-2022-25195, CVE-2022-25196, CVE-2022-25197, CVE-2022-25198, CVE-2022-25199, CVE-2022-25200, CVE-2022-25201, CVE-2022-25202, CVE-2022-25203, CVE-2022-25204, CVE-2022-25205, CVE-2022-25206, CVE-2022-25207, CVE-2022-25208, CVE-2022-25209, CVE-2022-25210, CVE-2022-25211, CVE-2022-25212