Jenkins 外掛程式多個弱點 (2022 年 2 月 15 日)

high Nessus Plugin ID 162138

概要

遠端 Web 伺服器上執行的應用程式受到多個弱點的影響

說明

根據其自我報告的版本號碼,遠端 Web 伺服器上執行的 Jenkins 外掛程式版本受到多個弱點影響:

- 在某些內容中,執行控制器上 SCM 簽出的 Multiple Pipeline 相關外掛程式會針對不同 SCM 的簽出重複使用相同的工作區目錄。Pipeline:Groovy Plugin 2648.va9433432b33c 和更舊版本在讀取 Pipelines 的指令碼檔案 (通常是 Jenkinsfile) 時,會針對不同的 SCM 使用相同的簽出目錄。Pipeline:Shared Groovy Libraries 552.vd9cc05b8a2e1 和更舊版本會針對 Pipeline 程式庫的不同 SCM 使用相同的簽出目錄。Pipeline:Multibranch 706.vd43c65dec013 和更舊版本會針對 readTrusted 步驟的不同 SCM 使用相同的簽出目錄。這會讓具有 Item/Configure 權限的攻擊者可透過建構的 SCM 內容在控制器上叫用任意 OS 命令。受影響的外掛程式已更新,以解決這些問題:Pipeline:Groovy Plugin 2656.vf7a_e7b_75a_457 和更舊版本在讀取 Pipelines 的指令碼檔案 (通常是 Jenkinsfile) 時,會針對每個 SCM 使用不同的簽出目錄。Pipeline:Shared Groovy Libraries 561.va_ce0de3c2d69 會針對 Pipeline 程式庫的每個 SCM 使用不同的簽出目錄。Pipeline:Multibranch 707.v71c3f0a_6ccdb_ 會針對 readTrusted 步驟的每個 SCM 使用不同的簽出目錄。(CVE-2022-25173、CVE-2022-25174、CVE-2022-25175)

- Multiple Pipeline 相關外掛程式遵循符號連結或不限制路徑名稱,進而導致任意檔案讀取弱點:Pipeline:Groovy Plugin 2648.va9433432b33c 和更舊版本在讀取 Pipelines 的指令碼檔案 (通常是 Jenkinsfile) 時,會遵循已設定 SCM 簽出目錄以外位置的符號連結 (原本報告為 SECURITY-2595)。Pipeline:使用 libraryResource 步驟時,Shared Groovy Libraries 552.vd9cc05b8a2e1 和更舊版本會遵循預期的 Pipeline 程式庫以外位置的符號連結 (原本報告為 SECURITY-2479)。
Pipeline:Shared Groovy Libraries 552.vd9cc05b8a2e1 和更舊版本不會限制傳遞至 libraryResource 步驟的資源名稱 (原本報告為 SECURITY-2476)。Pipeline:使用 readTrusted 步驟讀取檔案時,Multibranch 706.vd43c65dec013 和更舊版本會遵循已設定 SCM 簽出目錄以外位置的符號連結 (原本報告為 SECURITY-2491)。
這會讓攻擊者可以將 Pipelines 設定為讀取 Jenkins 控制器檔案系統上的任意檔案。受影響的外掛程式已更新,以解決這些問題:Pipeline:Groovy Plugin 2656.vf7a_e7b_75a_457 會檢查 Pipelines 的指令碼檔案是否在已設定的 SCM 簽出目錄內。Pipeline:Shared Groovy Libraries 561.va_ce0de3c2d69 會檢查 libraryResource 步驟擷取的任何資源是否包含在預期的 Pipeline 程式庫中。Pipeline:
Multibranch 707.v71c3f0a_6ccdb_ 會檢查 readTrusted 擷取的檔案是否在已設定的 SCM 簽出目錄內。(CVE-2022-25176、CVE-2022-25177、CVE-2022-25178、CVE-2022-25179)

- Pipeline:Groovy Plugin 2648.va9433432b33c 和更舊版本會在重播版本中包含原始版本的密碼參數。這會讓具有 Run/Replay 權限的攻擊者可取得傳遞至 Pipeline 先前版本的密碼參數值。Pipeline:Groovy Plugin 2656.vf7a_e7b_75a_457 不允許重播包含密碼參數的版本。(CVE-2022-25180)

- Pipeline:Deprecated Groovy Libraries Plugin 552.vd9cc05b8a2e1 和更舊版本會針對所有同名的 Pipeline 程式庫簽出使用相同的工作區目錄,無論所使用的 SCM 和程式庫組態的來源為何。如果已存在全域 Pipeline 程式庫,這會讓具有 Item/Configure 權限的攻擊者透過建構的 SCM 內容,在 Jenkins 控制器 JVM 的內容中執行任意程式碼。Pipeline:Deprecated Groovy Libraries Plugin 561.va_ce0de3c2d69 會針對 Pipeline 程式庫的每個 SCM 使用不同的簽出目錄。(CVE-2022-25181)

- Pipeline:Deprecated Groovy Libraries Plugin 552.vd9cc05b8a2e1 和更舊版本會使用 Pipeline 程式庫的名稱,在沒有標準化或清理的情況下建立目錄。如果已設定全域 Pipeline 程式庫,這會讓具有 Item/Configure 權限的攻擊者使用特別建構的程式庫名稱,在 Jenkins 控制器 JVM 的內容中執行任意程式碼。Pipeline:Deprecated Groovy Libraries Plugin 561.va_ce0de3c2d69 在建立程式庫目錄時會清理 Pipeline 程式庫的名稱。(CVE-2022-25182)

- Pipeline:Deprecated Groovy Libraries Plugin 552.vd9cc05b8a2e1 和更舊版本會使用 Pipeline 程式庫的名稱,在沒有任何清理的情況下建立快取目錄。如果已存在設定為使用快取的全域 Pipeline 程式庫,這會讓具有 Item/Configure 權限的攻擊者使用特別建構的程式庫名稱,在 Jenkins 控制器 JVM 的內容中執行任意程式碼。Pipeline:Deprecated Groovy Libraries Plugin 561.va_ce0de3c2d69 在建立程式庫快取目錄時會清理 Pipeline 程式庫的名稱。(CVE-2022-25183)

- Pipeline:使用 Pipeline Snippet Generator 產生管道指令碼時,Build Step Plugin 2.15 和更舊版本會洩漏密碼參數預設值。這會讓具有 Item/Read 權限的攻擊者從工作擷取預設的密碼參數值。Pipeline:Build Step Plugin 2.15.1 會遮蓋產生的管道指令碼中的密碼參數。(CVE-2022-25184)

- Generic Webhook Trigger Plugin 1.81 和更舊版本不會逸出 webhook 的版本原因。這會導致攻擊者利用已儲存的跨網站指令碼 (XSS) 弱點,使用 webhook 觸發版本。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 和更舊版本不會清理其 Pipeline 步驟的 appName 和 appVersion 參數,這些參數用於寫入版本目錄內的檔案。這會讓具有 Item/Configure 權限的攻擊者在 Jenkins 控制器檔案系統上,以攻擊者無法控制的內容寫入或覆寫 .xml 檔案。Fortify Plugin 20.2.35 在確定產生的檔案名稱時,會清理其 Pipeline 步驟的 appName 和 appVersion 參數。(CVE-2022-25188)

- Custom Checkbox Parameter Plugin 1.1 和更舊版本不會逸出自訂核取方塊參數的參數名稱。這會導致具有 Item/Configure 權限的攻擊者利用已儲存的跨網站指令碼 (XSS) 弱點。Custom Checkbox Parameter Plugin 1.2 會逸出自訂核取方塊參數的參數名稱。(CVE-2022-25189)

- Conjur Secrets Plugin 1.0.11 和更舊版本不會在 HTTP 端點中執行權限檢查。這會讓具有 Overall/Read 權限的攻擊者列舉 Jenkins 中已儲存憑證的憑證 ID。這些弱點可作為攻擊的一部分,利用另一個弱點來擷取憑證。Conjur Secrets Plugin 1.0.12 中的憑證 ID 列舉需要 Overall/Administer 權限。
(CVE-2022-25190)

- Agent Server Parameter Plugin 1.0 和更舊版本不會逸出代理伺服器參數的參數名稱。
這會導致具有 Item/Configure 權限的攻擊者利用已儲存的跨網站指令碼 (XSS) 弱點。Agent Server Parameter Plugin 1.1 會逸出代理伺服器參數的參數名稱。(CVE-2022-25191)

- Snow Commander Plugin 2.0 和更舊版本不會在實作表單驗證的方法中執行權限檢查。這會讓具有 Overall/Read 權限的攻擊者使用透過另一種方法取得的攻擊者指定憑證 ID,連線至攻擊者指定的 Webserver,進而擷取儲存在 Jenkins 中的憑證。此外,這些表單驗證方法不需要 POST 要求,進而導致跨網站要求偽造 (CSRF) 弱點。Snow Commander Plugin 2.0 需要受影響的表單驗證方法的 POST 要求和 Overall/Administer 權限。(CVE-2022-25192、CVE-2022-25193)

- autonomiq Plugin 1.15 和更舊版本不會在 HTTP 端點中執行權限檢查。這會讓具有 Overall/Read 權限的攻擊者使用攻擊者指定的使用者名稱和密碼,連線至攻擊者指定的 URL。此外,此 HTTP 端點不需要 POST 要求,進而導致跨網站要求偽造 (CSRF) 弱點。autonomiq Plugin 1.16 需要此 HTTP 端點的 POST 要求和 Overall/Administer 權限。(CVE-2022-25194、CVE-2022-25195)

- GitLab Authentication Plugin 1.13 和更舊版本會在驗證程序啟動時,將 HTTP Referer 標頭記錄為 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)

- Snow publisher Plugin 1.8 和更舊版本不會在實作表單驗證的方法中執行權限檢查。這會讓具有 Overall/Read 權限的攻擊者使用攻擊者指定的使用者名稱和密碼,連線至攻擊者指定的 SSH 伺服器。此外,這項表單驗證方法不需要 POST 要求,進而導致跨網站要求偽造 (CSRF) 弱點。截至本公告發佈時,尚無修正。(CVE-2022-25198、CVE-2022-25199)

- Checkmarx Plugin 2022.1.2 和更舊版本不會在多個 HTTP 端點中執行權限檢查。這會讓具有 Overall/Read 權限的攻擊者使用透過另一種方法取得的攻擊者指定憑證 ID,連線至攻擊者指定的 Webserver,進而擷取儲存在 Jenkins 中的憑證。此外,這些 HTTP 端點不需要 POST 要求,進而導致跨網站要求偽造 (CSRF) 弱點。截至本公告發佈時,尚無修正。
(CVE-2022-25200、CVE-2022-25201)

- Promoted Builds (Simple) Plugin 1.9 和更舊版本不會逸出自訂升級層級的名稱。這會導致具有 Overall/Administer 權限的攻擊者利用已儲存的跨網站指令碼 (XSS) 弱點。截至本公告發佈時,尚無修正。(CVE-2022-25202)

- Team Views Plugin 0.9.0 和更舊版本不會逸出團隊名稱。這會導致具有 Overall/Read 權限的攻擊者利用已儲存的跨網站指令碼 (XSS) 弱點。截至本公告發佈時,尚無修正。(CVE-2022-25203)

- Doktor Plugin 0.4.1 和更舊版本會實作允許代理程式處理程序將控制器上的檔案轉譯為 Markdown 或 Asciidoc 的功能。此外,錯誤訊息會讓攻擊者能夠控制代理程式處理程序,進而判斷具有指定名稱的檔案是否存在。截至本公告發佈時,尚無修正。(CVE-2022-25204)

- dbCharts Plugin 0.5.2 和更舊版本不會在實作表單驗證的方法中執行權限檢查。這會讓具有 Overall/Read 權限的攻擊者使用攻擊者指定的憑證,透過 JDBC 連線至攻擊者指定的資料庫。此外,此方法可讓攻擊者透過錯誤訊息判斷 Jenkins 控制器的類別路徑上是否有可用的類別。
此外,這項表單驗證方法不需要 POST 要求,進而導致跨網站要求偽造 (CSRF) 弱點。截至本公告發佈時,尚無修正。
(CVE-2022-25205、CVE-2022-25206)

- Chef Sinatra Plugin 1.20 和更舊版本不會在實作表單驗證的方法中執行權限檢查。這會讓具有 Overall/Read 權限的攻擊者讓 Jenkins 將 HTTP 要求傳送至攻擊者控制的 URL,並使其將回應剖析為 XML。由於外掛程式並未設定其 XML 剖析器防止 XML 外部實體 (XXE) 攻擊,因此攻擊者可讓 Jenkins 剖析建構的 XML 回應,該回應會使用外部實體從 Jenkins 控制器或伺服器端要求偽造擷取密碼。此外,這項表單驗證方法不需要 POST 要求,進而導致跨網站要求偽造 (CSRF) 弱點。截至本公告發佈時,尚無修正。
(CVE-2022-25207、CVE-2022-25208、CVE-2022-25209)

- Convertigo Mobile Platform Plugin 1.1 和更舊版本會使用靜態欄位來儲存工作組態資訊。這會讓具有 Item/Configure 權限的攻擊者擷取將被設定的工作的密碼。截至本公告發佈時,尚無修正。(CVE-2022-25210)

- SWAMP Plugin 1.2.6 和更舊版本不會在實作表單驗證的方法中執行權限檢查。這會讓具有 Overall/Read 權限的攻擊者使用透過另一種方法取得的攻擊者指定憑證 ID,連線至攻擊者指定的 URL,進而擷取儲存在 Jenkins 中的憑證。此外,這項表單驗證方法不需要 POST 要求,進而導致跨網站要求偽造 (CSRF) 弱點。截至本公告發佈時,尚無修正。
(CVE-2022-25211、CVE-2022-25212)

請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼。

解決方案

將 Jenkins 外掛程式更新至下列版本:
- Agent Server Parameter Plugin 1.1 或以上版本
- autonomiq Plugin 1.16 或以上版本
- Conju Secrets Plugin 1.0.12 或以上版本
- Custom Checkbox Parameter Plugin 1.2 或以上版本
- Fortify Plugin 20.2.35 或以上版本
- Generic Webhook Trigger Plugin 1.82 或以上版本
- HashiCorp Vault Plugin 336 或以上版本
- Pipeline:Build Step Plugin 2.15.1 或以上版本
- Pipeline:Deprecated Groovy Libraries Plugin 561 或以上版本
- Pipeline:Groovy Plugin 2656 或以上版本
- Pipeline:Multibranch Plugin 707 或以上版本
- Snow Commander Plugin 2.0 或以上版本
- Support Core Plugin 2.79.1 或以上版本

請參閱供應商公告以取得詳細資料。

另請參閱

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

Plugin 詳細資訊

嚴重性: 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