Jenkins Plugins 多個安全漏洞風險通告

發布時間 2020-02-14

漏洞編號和級別


CVE編號:CVE-2020-2116,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2020-2117,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2020-2109,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2020-2110,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2020-2121,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2020-2123,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2020-2120,危險級別:高危,CVSS分值:官方未評定

CVE編號:CVE-2020-2115,危險級別:高危,CVSS分值:官方未評定


影響版本


Applatix Plugin <= 1.1,Azure AD Plugin <= 1.1.2,BMC Release Package and Deployment Plugin <= 1.1,Brakeman Plugin <= 0.12,Debian Package Builder Plugin <= 1.6.11,DigitalOcean Plugin <= 1.1,Dynamic Extended Choice Parameter Plugin <= 1.0.1,Eagle Tester Plugin <= 1.0.9,ECX Copy Data Management Plugin <= 1.9,FitNesse Plugin <= 1.30,Git Parameter Plugin <= 0.9.11,Google Kubernetes Engine Plugin <= 0.8.0,Harvest SCM Plugin <= 0.5.1,NUnit Plugin <= 0.25,Parasoft Environment Manager Plugin <= 2.14,Pipeline GitHub Notify Step Plugin <= 1.0.4,Pipeline: Groovy Plugin <= 2.78,RadarGun Plugin <= 1.7,S3 publisher Plugin <= 0.11.4,Script Security Plugin <= 1.69,Subversion Plugin <= 2.13.0


漏洞概述


CloudBees Jenkins(Hudson Labs)是美國CloudBees公司的一套基于Java開發的持續集成工具。該產品主要用于監控持續的軟件版本發布/測試項目和一些定時執行的任務。


近日,Jenkins發布官方安全通告,Jenkins部分插件存在多個漏洞,涉及到如下安全問題:沙箱繞過,XSS漏洞,純文本格式傳輸,XXE,CSRF,缺少權限檢查,枚舉憑據ID,RCE,XSS,純文本格式存儲密碼,其中高危漏洞概述如下:


Pipeline GitHub Notify Step插件中的CSRF漏洞和缺少權限檢查允許捕獲憑據,CVE-2020-2116 (CSRF)/CVE-2020-2117(缺少權限檢查)


Pipeline GitHub Notify Step Plugin 1.0.4和更早版本不對實現表單驗證的方法執行權限檢查。這允許對Jenkins具有全面/讀取訪問權限的用戶使用通過另一種方法獲得的攻擊者指定的憑據id連接到攻擊者指定的URL,從而捕獲Jenkins中存儲的憑據。


此外,表單驗證方法不需要POST請求,從而導致CSRF漏洞。


通過管道中的默認方法參數表達式繞過沙盒:Groovy插件,CVE-2020-2109


管道中的沙盒保護:Groovy插件2.78及更早版本可以通過CPS轉換方法中的默認參數表達式來規避。這使得攻擊者能夠指定并運行沙盒管道,以便在Jenkins主JVM的上下文中執行任意代碼。


Script Security插件中的沙盒繞過漏洞,CVE-2020-2110


Script Security插件1.69及更早版本中的沙盒保護可以在腳本編譯階段通過將AST轉換注釋(如@Grab)應用于導入或在其他注釋中使用它們來規避。這會影響腳本執行(通常從其他插件(如管道)調用)以及提供沙盒腳本驗證的HTTP端點。

具有全局/讀取權限的用戶可以利用此漏洞繞過沙盒保護,并在Jenkins主機上執行任意代碼。


Google Kubernetes Engine插件中的RCE漏洞,CVE-2020-2121


Google Kubernetes Engine插件0.8.0和更早版本沒有配置其YAML解析器來防止任意類型的實例化。這導致一個遠程代碼執行漏洞,用戶可以利用該漏洞向Google Kubernetes Engine插件的構建步驟提供YAML輸入文件。


RadarGun插件中的RCE漏洞,CVE-2020-2123


RadarGun插件1.7及更早版本沒有配置其YAML解析器以防止任意類型的實例化。這會導致遠程代碼執行漏洞被能夠配置RadarGun插件的生成步驟的用戶利用。


FitNesse插件中的XXE漏洞,CVE-2020-2120


FitNesse插件1.30及更早版本沒有配置XML解析器以防止XML外部實體(XXE)攻擊。


這允許用戶控制其后期生成步驟的輸入文件,讓Jenkins解析一個精心編制的文件,該文件使用外部實體從Jenkins主機提取機密、服務器端請求偽造或拒絕服務攻擊。


NUnit插件中的XXE漏洞,CVE-2020-2115


NUnit插件0.25及更早版本沒有配置XML解析器以防止XML外部實體(XXE)攻擊。


這允許用戶控制其后期生成步驟的輸入文件,讓Jenkins解析一個精心編制的文件,該文件使用外部實體從Jenkins主機提取機密、服務器端請求偽造或拒絕服務攻擊。


漏洞驗證


暫無POC/EXP。


修復建議


目前部分插件已更新,獲取鏈接:https://jenkins.io/security/advisory/2020-02-12/。請及時更新插件到如下版本:


Azure AD Plugin 更新至 1.2.0

Brakeman Plugin 更新至 0.13

FitNesse Plugin 更新至 1.31

Git Parameter Plugin 更新至 0.9.12

Google Kubernetes Engine Plugin 更新至 0.8.1

NUnit Plugin 更新至 0.26

Pipeline GitHub Notify Step Plugin 更新至 1.0.5

Pipeline: Groovy Plugin 更新至 2.79

RadarGun Plugin 更新至 1.8

S3 publisher Plugin 更新至 0.11.5

Script Security Plugin 更新至 1.70

Subversion Plugin 更新至 2.13.1


以下插件暫未修復:


Applatix Plugin

BMC Release Package and Deployment Plugin

Debian Package Builder Plugin

DigitalOcean Plugin

Dynamic Extended Choice Parameter Plugin

Eagle Tester Plugin

ECX Copy Data Management Plugin

Harvest SCM Plugin

Parasoft Environment Manager Plugin


參考鏈接


https://jenkins.io/security/advisory/2020-02-12/