#security
CVE-2024-7262 & CVE-2024-7263
WPS 搞的 1.5 click RCE,ver12.2.0.17119 之前
WPS 有一个很棒棒的功能叫做“轻办公”,原理就是在文档里塞进去一个自定义scheme的链接 ksoqing:// 来拉起指定的exe去下载白名单域名地址的dll并执行。
但是因为未知的原因,有一个神奇的 JSCefServicePath 参数可以用来执行本地已有的任意dll。这样攻击者就只剩下如何事先获得可预测的地址了。然后金山自己弄了套幽默的缓存机制让攻击者有事先可预测的本地地址来引用下载的dll(自己下了啥东西也不检查)。这样就达成了 1.5 click RCE。
金山就开始修嘛,新加入的检查有
1. 检查参数里有没有 JSCefServicePath (大小写敏感),如果有,把它忽略并且拉起正确的 jscefservice.dll
2. 检查要执行的dll有没有签名。
看起来好像没事了? It's not done yet!
攻击者可以传进来 -JSCEFServicePath=<ATTACKER_CONTROLLED> 导致可以忽略掉第一个检查,然后 ksojscore.dll 拿参数的时候会忽略大小写,造成攻击者可以绕过第一个检查。
而且,第一个检查漏掉了另外一个路径 CefPluginPathU8jscefservice.dll 会试图加载 <CefPluginPathU8>/libcef.dll ,而且不检查签名。这样第二个检查也被绕过了。

点评:金山WPS开发组有点让人流汗了。从远端下载一个dll并且直接执行,这么高危的功能防御措施却做的如此简单……。

credits: @quiccat
原始报告
 
 
Back to Top
OKHK