一、Nexus3簡介
Sonatype Nexus Repository 3 通常簡稱為Nexus3,它是Sonatype公司出品的倉庫管理軟件,有開源和付費兩個版本。Nexus3是DevOps制品倉庫技術選型中的常客,對于開源版本的Nexus3具有以下優點:
- 可擴展性。Nexus3支持許多不同的倉庫類型,包括Maven、NPM、Docker和Yum等。
- 安全性。Nexus3提供多種安全措施保護倉庫,如用戶身份驗證、訪問控制和SSL加密。
- 易用性。Nexus3提供了一套功能豐富的儀表板,用戶可以輕松地管理您的倉庫內容、配置和權限。
這里需要注意的是,后續的內容都是基于3.38.0-01開源版本的Nexus3展開的。
二、Nexus3安裝目錄
Nexus3安裝比較簡單,在sonatype官方網站的文檔中有詳細的介紹,這里就不再贅述了。因為后面涉及的安全漏洞都是對Nexus3安裝目錄的操作,所以需要對Nexus3安裝目錄有一定的了解,下面就介紹下Nexus3安裝目錄。
- bin/。該目錄包含nexus啟動腳本和啟動相關的配置文件。
- etc/。該目錄包含配置文件。
- lib/。該目錄包含關于Apache Karaf的二進制庫文件。
- public/。該目錄包含應用的公共資源。
- system/。該目錄包含Nexus3應用的所有的組件和插件。
為了后面更好的看Nexus3服務日志信息,這里需要知道Nexus3服務日志默認在../sonatype-work/nexus3/log目錄下,重點關注該目錄下的nexus.log文件的內容,它是Nexus3服務的最重要的日志。
三、Nexus3漏洞修復操作流程
1、漏洞簡介
| 漏洞名稱 | Apache Commons FileUpload 拒絕服務漏洞(CVE-2023-24998) |
|
漏洞類型 |
拒絕服務連接 |
| 危險程度 | 高危 |
| 漏洞描述 |
Apache Commons FileUpload 包可以提供強大的、高性能的、文件上傳能力。 Apache Commons FileUpload 存在安全漏洞,由于1.5 版本之前的Commons FileUpload對處理的請求部分的數量沒有限制,攻擊者有可能通過惡意上傳或一系列上傳觸發 DoS。 |
| 修復建議 |
將 Commons FileUpload 升級到 1.5 及以上版本 |
| 修復影響 |
服務重啟 |
2、查看漏洞包路徑和被引用文件
在安裝目錄nexus-3.38.0-01下,執行如下命令:
grep –r “commons-fileupload” ./system/
可以看到該漏洞包所在路徑為:
./system/commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar
引用該漏洞包的文件有:
- ./system/com/sonatype/nexus/assemblies/nexus-pro-feature/3.38.1-01/nexus-pro-feature-3.38.1-01-features.xml
- ./system/com/sonatype/nexus/assemblies/nexus-oss-feature/3.38.1-01/nexus-oss-feature-3.38.1-01-features.xml
- ./system/org/sonatype/nexus/assemblies/nexus-core-feature/3.38.1-01/nexus-core-feature-3.38.1-01-features.xml
- ./system/org/sonatype/nexus/assemblies/nexus-base-feature/3.38.1-01/nexus-base-feature-3.38.1-01-features.xml
3、升級依賴包和修改被應用文件
根據修復建議,需要將commons-fileupload包的版本升級到1.5及以上,那么這里選擇升級到1.5版本
在./system/commons-fileupload/commons-fileupload/目錄下創建“1.5”目錄,然后將commons-fileupload-1.5.jar拷貝到該目錄下,最后修改上一步中引用了commons-fileupload包1.4版本的那4個文件中的版本號,改為1.5。
需要注意的是做升級的過程中,請停止Nexus3服務!
4、重啟Nexus3和驗證
做完包升級的工作后,重啟Nexus3,然后查看日志有無報錯,驗證Nexus3功能是否正常。如果都沒有問題,那么安全漏洞修復就成功了。