github.com/Fndroid/clash_for_windows_pkg/issues/2710
详细看 issue

这是 Clash for Windows 的漏洞,不是 Clash 的漏洞。

最新版已修复,而且漏洞应该只在 0.19.8

重新验证了下,0.19.5 可复现 issue 调用计算器。。。

自己搭的看了之后选择无视

这种漏洞有没有什么办法尽可能避免呢...

一个 name 明明就是展示字符串, 居然还能执行命令.

佩服,订阅可以投毒了

#5

  1. 外部输入尽量走 escape ,比如 vue 自带的模板标签{{}}
  2. browserwindow 启用 sandbox

显然作者偷懒,两个都没做

github.com/Fndroid/clash_for_windows_pkg/issues/2710#issuecomment-1050689930

教辅:屑是一个新时代的贬义词,指一个人或事物很垃圾,很废物。
via baike.baidu.com/item/%E5%B1%91/55729420

不太懂这个. 不过难道没有纯 string 这种结构吗?

#9 理论上对于 html 和 js 来说,精心构造的字符串插入页面可以绕过作者本身预期的行为,毕竟是运行时的语言。类似的就是 sql 注入。因此需要对用户输入进行转义。当然转义也可能有某些未被发现的边界情况,不过要绕过这种已经很困难了。

接受批评,但这个问题和沙盒无关,因为用 img 加载了 twitter emoji 没用 textContent 处理,确实是我的问题

至少我知道的, 在 java 里的 mybatis 框架中, 就有纯 string 这种概念, 拿到的串只有字符含义, 没有任何执行含义, 不可能发生注入.
类似这里, 本身就是个 name, 完全没有执行代码的业务可能, 赋予一个传啥展示啥的 string 含义也合理吧(我理解语言框架层面也应该去支持类似的逻辑功能)

#11 启用 sandbox 的话应该是可以避免 child_process 的调用的吧,至少可以减少影响

#12 是的 这些都是有解决方案的,当然和 mybatis 的#{}一样,都需要去手动处理

这标题,梦回灰鸽子。

哈哈哈哈,标题党不嫌事大。
确实,可以一键上线了

要是我自用的 electron 项目肯定不开 sandbox ,启用 sandbox 开发起来麻烦的不是一点半点,要是有 electron 的 node 模块一体化调用框架就好了

阿这,官方推荐还是渲染进程和主进程各干各的,不给渲染进程直接操作 node 的权利。这样也比较有分层的感觉,javaboy 还挺喜欢

梦回 灰鸽子 +1

然而我是直接用 clash 核心的 23333

梦回红尘网安

electron 开沙盒

刚刚我的 15.1 复现可调起计算器,已经更新到最新了。还好逛了 v2 看到了爆漏洞....

有主机上线请注意

0.19.5 复现了,谢谢提醒,已更新最新版本

机场拿这个漏洞攻击用户相当于是砸自己招牌了吧…

机场没理由攻击,公共转换服务可是有的

这算啥,留日志减刑,一言不合把用户出道的也大有人在。

用的 clash.net................

( oneman )机场遍地是,这还真说不好。

Clash for windows 好像是不开源的

专门试了个老版本,0.13.6 ,也有漏洞..

上次 nyanpass 的历史,,,

因为他相当于是显示 html ,可以执行 js 代码。如果没有正确的转义或者开启沙箱的话,就可以直接用 js 执行系统命令

问题不大,机场不至于自砸招牌

#35 我偷摸着扫一遍你的加密货币,转走了都不知道是谁干的

github.com/Fndroid/clash_for_windows_pkg/releases
两天前修复了

一个不开源的软件这么多 star, 离谱