警惕!9.8分漏洞來(lái)襲,Cacti命令執(zhí)行漏洞風(fēng)險(xiǎn)通告
近日,亞信安全CERT監(jiān)控到Cacti存在命令執(zhí)行漏洞(CVE-2022-46169),漏洞細(xì)節(jié)已公開(kāi)。該漏洞存在于remote_agent.php文件中,無(wú)需身份驗(yàn)證即可訪(fǎng)問(wèn)此文件,攻擊者可通過(guò)設(shè)置網(wǎng)絡(luò)頭HTTP_變量繞過(guò)身份驗(yàn)證,觸發(fā)polldata功能,當(dāng)get_nfilter_request_var()函數(shù)檢索的參數(shù)$poller_id滿(mǎn)足特定條件時(shí),可觸發(fā)proc_open()函數(shù),從而導(dǎo)致命令執(zhí)行。此命令注入漏洞允許未經(jīng)身份驗(yàn)證的用戶(hù)在構(gòu)造惡意請(qǐng)求的情況下執(zhí)行任意命令。
對(duì)此,目前廠(chǎng)商已發(fā)布修復(fù)補(bǔ)丁,但暫未發(fā)布版本更新。鑒于該漏洞受影響面較大,亞信安全CERT建議使用Cacti的用戶(hù)及時(shí)關(guān)注官方更新,參照官方修復(fù)方案盡快采取相關(guān)措施,做好資產(chǎn)自查以及預(yù)防工作,以免遭受黑客攻擊。
Cacti是一套基于PHP,MySQL,SNMP及RRDTool開(kāi)發(fā)的開(kāi)源網(wǎng)絡(luò)流量監(jiān)測(cè)圖形分析工具,提供了非常強(qiáng)大的數(shù)據(jù)和用戶(hù)管理功能。
漏洞編號(hào)和等級(jí)
CVE-2022-46169
CVSS3.1 9.8分
漏洞狀態(tài)
漏洞細(xì)節(jié) 已公開(kāi)
PoC 暫無(wú)
EXP 暫無(wú)
在野利用 未知
受影響版本
Cacti = 1.2.22
修復(fù)建議
臨時(shí)緩解措施
1. 禁止lib/functions.php文件中的get_client_addr函數(shù)返回任意IP地址來(lái)防止授權(quán)繞過(guò),設(shè)置不遵循HTTP_... $_SERVER變量。若無(wú)法修改,應(yīng)禁止偽造運(yùn)行Cacti的服務(wù)器的IP地址。
2. 對(duì)remote_agent.php文件進(jìn)行修改以防止命令注入,變量$poller_id應(yīng)該是一個(gè)整數(shù),因此應(yīng)該通過(guò)函數(shù)get_filter_request_var代替get_nfilter_request_var進(jìn)行檢索:
function poll_for_data() { // ... $poller_id = get_filter_request_var('poller_id'); // ...}3. 為了進(jìn)一步加強(qiáng)對(duì)命令注入的防御,$poller_id參數(shù)應(yīng)該在傳遞給proc_open之前使用escapeshellarg進(jìn)行轉(zhuǎn)義:
function poll_for_data() { // ... $cactiphp = proc_open(read_config_option('path_php_binary') . ' -q ' . $config['base_path'] . '/script_server.php realtime ' . escapeshellarg($poller_id), $cactides, $pipes); // ...}安全補(bǔ)丁修復(fù)
目前Cacti官方已發(fā)布安全補(bǔ)丁,建議受影響用戶(hù)盡快安裝修復(fù)補(bǔ)丁。
1.2.x版本補(bǔ)?。?/p>
1.3.x版本補(bǔ)?。?/p>
對(duì)于在PHP < 7.0下運(yùn)行的1.2.x實(shí)例,還需要進(jìn)一步更改: