漏洞概述 | |||
漏洞名稱 | Openfire身份認(rèn)證繞過(guò)漏洞 | ||
漏洞編號(hào) | QVD-2023-12196、CVE-2023-32315 | ||
公開(kāi)時(shí)間 | 2023-05-24 | 影響對(duì)象數(shù)量級(jí) | 萬(wàn)級(jí) |
奇安信評(píng)級(jí) | 高危 | CVSS 3.1分?jǐn)?shù) | 8.6 |
威脅類型 | 身份認(rèn)證繞過(guò) | 利用可能性 | 高 |
POC狀態(tài) | 已公開(kāi) | 在野利用狀態(tài) | 未發(fā)現(xiàn) |
EXP狀態(tài) | 未公開(kāi) | 技術(shù)細(xì)節(jié)狀態(tài) | 已公開(kāi) |
危害描述:未經(jīng)身份認(rèn)證的遠(yuǎn)程攻擊者可以構(gòu)造惡意請(qǐng)求利用該漏洞,成功利用此漏洞可以繞過(guò)身份認(rèn)證登錄管理界面。 |
(注:奇安信CERT的漏洞深度分析報(bào)告包含該漏洞的POC及技術(shù)細(xì)節(jié),訂閱方式見(jiàn)文末。)
01?漏洞詳情
影響組件
Openfire是免費(fèi)的、開(kāi)源的、基于可拓展通訊和表示協(xié)議(XMPP)、采用Java編程語(yǔ)言開(kāi)發(fā)的實(shí)時(shí)協(xié)作服務(wù)器。Openfire安裝和使用都非常簡(jiǎn)單,并利用Web進(jìn)行管理。單臺(tái)服務(wù)器甚至可支持上萬(wàn)并發(fā)用戶。
漏洞描述
近日,奇安信CERT監(jiān)測(cè)到Openfire 身份認(rèn)證繞過(guò)漏洞(CVE-2023-32315),由于Openfire的路徑名限制不恰當(dāng),未經(jīng)身份認(rèn)證的遠(yuǎn)程攻擊者可以構(gòu)造惡意請(qǐng)求利用該漏洞,成功利用此漏洞可以繞過(guò)身份認(rèn)證登錄管理界面。目前此漏洞的POC與技術(shù)細(xì)節(jié)已在互聯(lián)網(wǎng)上公開(kāi),漏洞的現(xiàn)實(shí)威脅進(jìn)一步上升。鑒于此漏洞影響較大,建議客戶盡快做好自查及防護(hù)。
02?影響范圍
影響版本
3.10.0 <= Openfire < 4.6.8
4.7.0 <= Openfire 4.7.x < 4.7.5
其他受影響組件
無(wú)
03?復(fù)現(xiàn)情況
目前,奇安信CERT已成功復(fù)現(xiàn)Openfire 身份認(rèn)證繞過(guò)漏洞(CVE-2023-32315),截圖如下:
04?處置建議
安全更新
升級(jí)版本至4.6.8或4.7.5及以上
https://github.com/igniterealtime/Openfire/releases
緩解措施
1.限制網(wǎng)絡(luò)訪問(wèn)
請(qǐng)勿將Openfire 管理控制臺(tái)暴露于互聯(lián)網(wǎng),使用網(wǎng)絡(luò)安全措施(如防火墻 、VPN)確保只有受信任的成員才能訪問(wèn)Openfire管理控制臺(tái)。
2.修改運(yùn)行時(shí)配置文件
找到Openfire的安裝目錄中的文件plugins/admin/webapp/WEB-INF/web.xml。在創(chuàng)建該文件的備份后,編輯原始文件。查找類似:AuthCheck的元素。
AuthCheck
org.jivesoftware.admin.AuthCheckFilter
excludes
login.jsp,index.jsp?logout=true,setup/index.jsp,setup/setup-*,.gif,.png,error-serverdown.jsp,loginToken.jsp
該元素內(nèi)的值是一個(gè)逗號(hào)分隔的值列表。從該列表中刪除所有(星號(hào))字符param-value*。保存文件,并重新啟動(dòng)Openfire以使更改生效。
請(qǐng)注意,不能保證此運(yùn)行時(shí)配置更改會(huì)持續(xù)存在。請(qǐng)確保監(jiān)視修復(fù)程序的存在。盡快升級(jí)到 Openfire 的安全版本。
此更改會(huì)導(dǎo)致Openfire基于Web的設(shè)置向?qū)o(wú)法正常運(yùn)行(可以通過(guò)恢復(fù)更改來(lái)恢復(fù)功能)。此向?qū)ǔH在初始安裝Openfire時(shí)使用。
3.將管理控制臺(tái)綁定到回環(huán)接口
Openfire管理控制臺(tái)是一個(gè)基于Web的應(yīng)用程序。默認(rèn)情況下,對(duì)應(yīng)的Web服務(wù)器會(huì)綁定到運(yùn)行它的主機(jī)的所有網(wǎng)絡(luò)接口。可以配置管理控制臺(tái)綁定到特定的網(wǎng)絡(luò)接口,防止它可以通過(guò)其他網(wǎng)絡(luò)接口被訪問(wèn)。通過(guò)將管理控制臺(tái)配置為綁定到本地回環(huán)接口,它只能被服務(wù)器本身上的用戶訪問(wèn),從而減少了攻擊的途徑。
可以使用”openfire.xml”配置文件將Openfire管理控制臺(tái)的Web服務(wù)器綁定到特定的網(wǎng)絡(luò)接口。在Openfire的安裝目錄中找到文件conf/openfire.xml。在創(chuàng)建該文件的備份后,編輯原始文件。
查找作為根元素的直接子元素的元素。添加一個(gè)新元素并命名為回環(huán)接口或接口地址的名稱。在測(cè)試環(huán)境中,將值設(shè)置為127.0.0.1都有效(在大多數(shù)Linux系統(tǒng)上使用值如lo,在macOS上使用值如lo lo0將產(chǎn)生相同的效果)。文件的結(jié)果片段將類似于此:openfire.xml
127.0.0.1
9090
9091
...
保存文件,然后重新啟動(dòng) Openfire,以使更改生效。
請(qǐng)注意,部分Openfire插件通過(guò)管理控制臺(tái)Web服務(wù)器公開(kāi)其部分或全部功能。例如,REST API插件通過(guò)此Web服務(wù)器提供其端點(diǎn)。將Web服務(wù)器綁定到特定網(wǎng)絡(luò)接口將影響此功能的可用性。
4.使用AuthFilterSanitizer插件
Ignite Realtime社區(qū)推出的插件AuthFilterSanitizer。該插件會(huì)定期刪除Openfire身份驗(yàn)證過(guò)濾器中容易被利用的條目,從而關(guān)閉潛在攻擊的途徑。請(qǐng)注意,該插件可能會(huì)干擾依賴于身份驗(yàn)證過(guò)濾器中易受利用條目的功能,這些條目可能由插件提供。
該插件可以從Openfire管理控制臺(tái)安裝,也可以從IgniteRealtime.org社區(qū)網(wǎng)站上的插件存檔頁(yè)面下載。https://www.igniterealtime.org/projects/openfire/plugin-archive.jsp?plugin=authfiltersanitizer
Snort 檢測(cè)方案
Snort是一個(gè)開(kāi)源的入侵檢測(cè)系統(tǒng),使用規(guī)則來(lái)檢測(cè)網(wǎng)絡(luò)流量中的惡意行為。用戶可參考以下Snort檢測(cè)規(guī)則,進(jìn)行Openfire 身份認(rèn)證繞過(guò)漏洞(CVE-2023-32315)的檢測(cè):
alert tcp any any -> any any (msg:”CVE-2023-32315 Openfire Xmppserver Admin Console Auth Bypass Attack”; http_uri:”/(?i)%u002e/”; sid:1000001; rev:1;)
05?參考資料
[1]https://github.com/advisories/GHSA-gw42-f939-fhvm
來(lái)源:奇安信 CERT