CVE-2020-8417:WP Code Snippets CSRF RCE漏洞
1月23日,wordfence威脅情報團隊在WordPress Code Snippets插件中發現了一個漏洞,有超過20萬網站安裝了該插件。攻擊者利用該插件可以以管理員名義偽造請求,並在有漏洞的站點上注入可執行代碼。該漏洞CVE編號為CVE-2020-8417,是一個CSRF到RCE漏洞,CVSS 評分為8.8,影響 2.13.3及以下版本。1月24日,研究人員將該漏洞細節報告給了插件開發者,插件開發人員1天後就發布了補丁。
缺乏CSRF保護
Code Snippets是一個很容易和方便使用的插件,用戶利用該插件可以在WordPress站點上添加代碼在無需導航到站點底層代碼的情況下定製化站點功能。因此利用該插件可以啟用和禁用code snippet功能來測試添加新代碼到WordPress站點。
插件開發者用WordPress 「nonces」保護了插件的所有終端。但沒有對該插件的import函數進行CSRF保護。由於缺乏保護,攻擊者就可以偽造惡意請求來誘使管理員感染站點。該請求會執行一個動作,發送請求到網站,然後攻擊者的惡意代碼就會被注入和執行。通過遠程代碼執行,就可以利用漏洞。攻擊者還可以在站點上創建一個新的管理員賬戶,竊取敏感信息,感染站點用戶等等。
繞過默認保護機制
Code snippets在默認的import中是禁用的。要啟用導入的code snippets必須進行其他的動作。研究人員分析發現好像並沒有導入的code snippets會引發站點上的CSRF執行,除非管理員啟用了該代碼。但研究人員發現這種保護機制可能會被繞過使得代碼在導入時就被啟用。
攻擊者可以在含有代碼導入細節的JSON數據中注入一個值為1的"active" flag,這樣導入的代碼在導入時就啟用了。這使得一個小的問題變得很嚴重,攻擊者可以注入惡意代碼並將其激活,任何訪問該站點的用戶都可以執行代碼。
{"generator":"Code Snippets v2.13.3","date_created":"2020-01-23 16:56","snippets":
[{"name":"PoC","scope":"global","code":"MALICIOUS CODE HERE","priority":"1","active":"1"}]}
目前,開發者已經修復了該問題,代碼在導入時會被禁用。
PoC
研究人員創建一個漏洞利用的PoC,如下所示:
https://www.youtube.com/embed/tuGog329Ayg
總結
該漏洞是一個高危安全漏洞,可能會引發站點被攻擊者接管、信息泄露等問題,因此研究人員建議用戶儘快更新到最新的2.14.0版本。
本文參考自:https://www.wordfence.com/blog/2020/01/high-severity-csrf-to-rce-vulnerability-patched-in-code-snippets-plugin/