Apache Struts 2.x <= 2.5.20 多個弱點

critical Nessus Plugin ID 139607

概要

遠端主機上安裝的 Apache Struts 受到多個弱點影響。

說明

遠端主機上安裝的 Apache Struts 版本為 2.x 版,或為 2.5.20 及之前的版本。因此,會受到多個弱點影響:

- Apache Struts 架構在強制執行時,會對指派給特定標籤屬性 (如 id) 的屬性值執行雙重評估,因此可能在轉譯標籤的屬性時,傳遞將再次評估的值。透過特別建構的要求,這可導致遠端程式碼執行 (RCE)。此問題僅適用於在 Struts 標籤屬性內強制執行 OGNL 評估,以及要評估的運算式參照未經驗證的原始輸入 (攻擊者可透過建構對應要求直接修改此輸入) 時。範例:列出可用的員工。如果攻擊者能夠修改要求中的 skillName 屬性,從而在未經進一步驗證的情況下將原始 OGNL 運算式傳送至 skillName 內容,則在將標籤轉譯為要求的結果時,將會評估 skillName 屬性中所提供的 OGNL 運算式。重複評估的機會在於 Struts 2.0.0 以來的設計中,該工具在正確完成後將非常有用,尤其是僅參照給定運算式中經驗證的值。不過,參照運算式中未經驗證的使用者輸入時,可能會插入惡意程式碼。為了持續進行,Struts 架構加入了用於限制插入運算式影響的緩解措施,但 Struts 2.5.22 之前的版本將攻擊向量懸置在開放狀態,本報告已解決此問題。此問題與下列問題類似:S2-029 和 S2-036。 (CVE-2019-0230)

- 檔案上傳執行為透過 getter 洩漏檔案的動作時,攻擊者可能會操控要求,將上傳檔案的工作複本設定為唯讀。因此,檔案上的後續動作將會失敗並發生一個錯誤。也可能將 Servlet 容器的暫存目錄設為唯讀,如此後續的上傳動作就會失敗。在 Struts 2.5.22 之前的版本中,java.io.File 和 java.nio.File 類型的堆疊可存取值 (例如動作內容) 以及這些標準程式庫套件的其他類別未受到架構的適當保護,無法拒絕存取潛在有害的基礎內容。(CVE-2019-0233)

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

解決方案

升級至 Apache Struts 2.5.22 或更新版本,或採用廠商安全佈告欄中提及的因應措施。

另請參閱

https://cwiki.apache.org/confluence/display/WW/S2-059

https://cwiki.apache.org/confluence/display/WW/S2-060

Plugin 詳細資訊

嚴重性: Critical

ID: 139607

檔案名稱: struts_2_5_22.nasl

版本: 1.8

類型: local

代理程式: windows, macosx, unix

系列: Misc.

已發布: 2020/8/14

已更新: 2022/12/6

組態: 啟用徹底檢查

支援的感應器: Frictionless Assessment Agent, Nessus Agent, Nessus

風險資訊

VPR

風險因素: High

分數: 8.4

CVSS v2

風險因素: High

基本分數: 7.5

時間分數: 6.2

媒介: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS 評分資料來源: CVE-2019-0230

CVSS v3

風險因素: Critical

基本分數: 9.8

時間分數: 9.1

媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

時間媒介: CVSS:3.0/E:F/RL:O/RC:C

弱點資訊

CPE: cpe:/a:apache:struts

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2019/11/19

弱點發布日期: 2020/8/11

可惡意利用

Metasploit (Apache Struts 2 Forced Multi OGNL Evaluation)

參考資訊

CVE: CVE-2019-0230, CVE-2019-0233