Apache Struts 中兩年前的嚴(yán)重漏洞重現(xiàn),官方發(fā)布補(bǔ)丁
Apache Software Foundation 發(fā)布了一個(gè)安全公告 S2-062,以解決 Struts 2.0.0 到 2.5.29 版本中存在的一個(gè)遠(yuǎn)程代碼執(zhí)行漏洞;攻擊者可以利用此漏洞來(lái)控制受影響的系統(tǒng)。對(duì)此,美國(guó)網(wǎng)絡(luò)安全和基礎(chǔ)設(shè)施安全局 (CISA) 也發(fā)布公告敦促組織查看 Apache 的公告,并盡快升級(jí)到最新的 Struts 2 補(bǔ)丁版本。
該漏洞被跟蹤為 CVE-2021-31805,是由于 2020 年 CVE-2020-17530 (S2-061) 的不完整修復(fù)造成的。也就是說(shuō),這一漏洞早在 2020 年就已存在且當(dāng)時(shí)被認(rèn)為已修復(fù),但事實(shí)證明問(wèn)題并未完全得到解決。

在 2020 年,GitHub 的研究人員 Alvaro Munoz 和 Aeye 安全實(shí)驗(yàn)室的 Masato Anzai 報(bào)告了 Struts 2 版本 2.0.0 - 2.5.25 在某些情況下存在一個(gè) OGNL 注入漏洞,編號(hào)為 CVE-2020-17530,在 CVSS 嚴(yán)重性方面獲得了 9.8 分(滿分 10 分)。
“如果開(kāi)發(fā)者使用 %{...} 語(yǔ)法進(jìn)行強(qiáng)制 OGNL 評(píng)估,標(biāo)簽的一些屬性仍然可以執(zhí)行雙重評(píng)估。對(duì)不信任的用戶輸入使用強(qiáng)制 OGNL 評(píng)估可能導(dǎo)致遠(yuǎn)程代碼執(zhí)行和安全性能下降。”
對(duì)象圖導(dǎo)航語(yǔ)言 (Object-Graph Navigation Language,OGNL) 是一種開(kāi)源的 Java 表達(dá)式語(yǔ)言,簡(jiǎn)化了 Java 語(yǔ)言中的表達(dá)式范圍。它被集成在 Struts2 等框架中,作用是對(duì)數(shù)據(jù)進(jìn)行訪問(wèn);擁有類型轉(zhuǎn)換、訪問(wèn)對(duì)象方法、操作集合對(duì)象等功能。
盡管 Apache 在 Struts 2.5.26 中解決了 2020 年所報(bào)告的漏洞,但研究人員 Chris McCown 發(fā)現(xiàn),所應(yīng)用的修復(fù)方案并不完整。他向 Apache 報(bào)告稱,“雙重評(píng)估”問(wèn)題仍然可以在 Struts 版本 2.5.26 及更高版本中重現(xiàn)。
作為解決措施,Apache 方面建議開(kāi)發(fā)人員避免基于不受信任的用戶輸入在標(biāo)簽屬性中使用強(qiáng)制 OGNL 評(píng)估,和/或升級(jí)到 Struts 2.5.30 或更高版本,以檢查表達(dá)式評(píng)估是否不會(huì)導(dǎo)致雙重評(píng)估。并建議遵循安全指南以獲得最佳實(shí)踐。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:Apache Struts 中兩年前的嚴(yán)重漏洞重現(xiàn),官方發(fā)布補(bǔ)丁
本文地址:https://www.oschina.net/news/191310/apache-struts-bug-new-patch





















