Apache Struts 中兩年前的嚴重漏洞重現(xiàn),官方發(fā)布補丁
Apache Software Foundation 發(fā)布了一個安全公告 S2-062,以解決 Struts 2.0.0 到 2.5.29 版本中存在的一個遠程代碼執(zhí)行漏洞;攻擊者可以利用此漏洞來控制受影響的系統(tǒng)。對此,美國網絡安全和基礎設施安全局 (CISA) 也發(fā)布公告敦促組織查看 Apache 的公告,并盡快升級到最新的 Struts 2 補丁版本。
該漏洞被跟蹤為 CVE-2021-31805,是由于 2020 年 CVE-2020-17530 (S2-061) 的不完整修復造成的。也就是說,這一漏洞早在 2020 年就已存在且當時被認為已修復,但事實證明問題并未完全得到解決。
在 2020 年,GitHub 的研究人員 Alvaro Munoz 和 Aeye 安全實驗室的 Masato Anzai 報告了 Struts 2 版本 2.0.0 - 2.5.25 在某些情況下存在一個 OGNL 注入漏洞,編號為 CVE-2020-17530,在 CVSS 嚴重性方面獲得了 9.8 分(滿分 10 分)。
“如果開發(fā)者使用 %{...} 語法進行強制 OGNL 評估,標簽的一些屬性仍然可以執(zhí)行雙重評估。對不信任的用戶輸入使用強制 OGNL 評估可能導致遠程代碼執(zhí)行和安全性能下降?!?/p>
對象圖導航語言 (Object-Graph Navigation Language,OGNL) 是一種開源的 Java 表達式語言,簡化了 Java 語言中的表達式范圍。它被集成在 Struts2 等框架中,作用是對數(shù)據(jù)進行訪問;擁有類型轉換、訪問對象方法、操作集合對象等功能。
盡管 Apache 在 Struts 2.5.26 中解決了 2020 年所報告的漏洞,但研究人員 Chris McCown 發(fā)現(xiàn),所應用的修復方案并不完整。他向 Apache 報告稱,“雙重評估”問題仍然可以在 Struts 版本 2.5.26 及更高版本中重現(xiàn)。
作為解決措施,Apache 方面建議開發(fā)人員避免基于不受信任的用戶輸入在標簽屬性中使用強制 OGNL 評估,和/或升級到 Struts 2.5.30 或更高版本,以檢查表達式評估是否不會導致雙重評估。并建議遵循安全指南以獲得最佳實踐。
本文轉自OSCHINA
本文標題:Apache Struts 中兩年前的嚴重漏洞重現(xiàn),官方發(fā)布補丁
本文地址:https://www.oschina.net/news/191310/apache-struts-bug-new-patch