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版本。
还没有评论,来说两句吧...