V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Akiio
V2EX  ›  信息安全

Clash 远程命令执行漏洞,有主机上线!

  •  1
     
  •   Akiio · 165 天前 · 7101 次点击
    这是一个创建于 165 天前的主题,其中的信息可能已经有所发展或是发生改变。
    42 条回复    2022-07-19 03:50:47 +08:00
    butanediol2d
        1
    butanediol2d  
       165 天前   ❤️ 11
    这是 Clash for Windows 的漏洞,不是 Clash 的漏洞。
    yiXu
        2
    yiXu  
       165 天前
    最新版已修复,而且漏洞应该只在 0.19.8
    yiXu
        3
    yiXu  
       165 天前
    重新验证了下,0.19.5 可复现 issue 调用计算器。。。
    IceBay
        4
    IceBay  
       165 天前
    自己搭的看了之后选择无视
    Jooooooooo
        5
    Jooooooooo  
       165 天前
    这种漏洞有没有什么办法尽可能避免呢...

    一个 name 明明就是展示字符串, 居然还能执行命令.
    WeiYuanStudio
        6
    WeiYuanStudio  
       165 天前   ❤️ 1
    佩服,订阅可以投毒了
    gadfly3173
        7
    gadfly3173  
       165 天前   ❤️ 1
    @Jooooooooo #5
    1. 外部输入尽量走 escape ,比如 vue 自带的模板标签{{}}
    2. browserwindow 启用 sandbox

    显然作者偷懒,两个都没做
    noyle
        8
    noyle  
       165 天前
    https://github.com/Fndroid/clash_for_windows_pkg/issues/2710#issuecomment-1050689930

    教辅:屑是一个新时代的贬义词,指一个人或事物很垃圾,很废物。
    via https://baike.baidu.com/item/%E5%B1%91/55729420
    Jooooooooo
        9
    Jooooooooo  
       165 天前
    @gadfly3173 不太懂这个. 不过难道没有纯 string 这种结构吗?
    gadfly3173
        10
    gadfly3173  
       165 天前
    @Jooooooooo #9 理论上对于 html 和 js 来说,精心构造的字符串插入页面可以绕过作者本身预期的行为,毕竟是运行时的语言。类似的就是 sql 注入。因此需要对用户输入进行转义。当然转义也可能有某些未被发现的边界情况,不过要绕过这种已经很困难了。
    fndroid
        11
    fndroid  
       165 天前   ❤️ 6
    @gadfly3173

    接受批评,但这个问题和沙盒无关,因为用 img 加载了 twitter emoji 没用 textContent 处理,确实是我的问题
    Jooooooooo
        12
    Jooooooooo  
       165 天前
    @gadfly3173 至少我知道的, 在 java 里的 mybatis 框架中, 就有纯 string 这种概念, 拿到的串只有字符含义, 没有任何执行含义, 不可能发生注入.

    类似这里, 本身就是个 name, 完全没有执行代码的业务可能, 赋予一个传啥展示啥的 string 含义也合理吧(我理解语言框架层面也应该去支持类似的逻辑功能)
    gadfly3173
        13
    gadfly3173  
       165 天前
    @fndroid #11 启用 sandbox 的话应该是可以避免 child_process 的调用的吧,至少可以减少影响
    gadfly3173
        14
    gadfly3173  
       165 天前
    @Jooooooooo #12 是的 这些都是有解决方案的,当然和 mybatis 的#{}一样,都需要去手动处理
    cozof
        15
    cozof  
       165 天前 via iPhone
    这标题,梦回灰鸽子。
    Akiio
        16
    Akiio  
    OP
       165 天前
    @butanediol2d 哈哈哈哈,标题党不嫌事大。
    @cozof 确实,可以一键上线了
    mxT52CRuqR6o5
        17
    mxT52CRuqR6o5  
       165 天前
    @gadfly3173
    要是我自用的 electron 项目肯定不开 sandbox ,启用 sandbox 开发起来麻烦的不是一点半点,要是有 electron 的 node 模块一体化调用框架就好了
    gadfly3173
        18
    gadfly3173  
       165 天前 via Android
    @mxT52CRuqR6o5 阿这,官方推荐还是渲染进程和主进程各干各的,不给渲染进程直接操作 node 的权利。这样也比较有分层的感觉,javaboy 还挺喜欢
    d5
        19
    d5  
       165 天前   ❤️ 1
    梦回 灰鸽子 +1
    wangyu17455
        20
    wangyu17455  
       165 天前
    然而我是直接用 clash 核心的 23333
    iPhone12
        21
    iPhone12  
       165 天前
    梦回红尘网安
    yanqiyu
        22
    yanqiyu  
       165 天前 via Android
    @Jooooooooo electron 开沙盒
    yeqizhang
        23
    yeqizhang  
       165 天前
    刚刚我的 15.1 复现可调起计算器,已经更新到最新了。还好逛了 v2 看到了爆漏洞....
    x86
        24
    x86  
       165 天前
    有主机上线请注意
    zhou00
        25
    zhou00  
       165 天前
    0.19.5 复现了,谢谢提醒,已更新最新版本
    ignor
        26
    ignor  
       165 天前 via Android
    机场拿这个漏洞攻击用户相当于是砸自己招牌了吧…
    mxT52CRuqR6o5
        27
    mxT52CRuqR6o5  
       165 天前 via Android
    @ignor 机场没理由攻击,公共转换服务可是有的
    Buges
        28
    Buges  
       165 天前 via Android   ❤️ 1
    @ignor 这算啥,留日志减刑,一言不合把用户出道的也大有人在。
    CallMeReznov
        29
    CallMeReznov  
       165 天前
    用的 clash.net................
    Love4Taylor
        30
    Love4Taylor  
       165 天前
    @ignor ( oneman )机场遍地是,这还真说不好。
    HFX3389
        31
    HFX3389  
       165 天前
    Clash for windows 好像是不开源的
    xrzxrzxrz
        32
    xrzxrzxrz  
       165 天前
    专门试了个老版本,0.13.6 ,也有漏洞..
    MoeMoesakura
        33
    MoeMoesakura  
       165 天前
    @ignor 上次 nyanpass 的历史,,,
    wh1sper1023
        34
    wh1sper1023  
       164 天前
    @Jooooooooo 因为他相当于是显示 html ,可以执行 js 代码。如果没有正确的转义或者开启沙箱的话,就可以直接用 js 执行系统命令
    titanlpy
        35
    titanlpy  
       164 天前
    问题不大,机场不至于自砸招牌
    JohnSmith
        36
    JohnSmith  
       164 天前
    @titanlpy #35 我偷摸着扫一遍你的加密货币,转走了都不知道是谁干的
    rpish
        37
    rpish  
       163 天前
    magicdawn
        38
    magicdawn  
       163 天前
    一个不开源的软件这么多 star, 离谱
    mxT52CRuqR6o5
        39
    mxT52CRuqR6o5  
       160 天前
    @gadfly3173
    就比如我想展示一个本地文件的内容,如果可以直接用 node 模块,直接 require 个 fs 几行搞定(当然安全性就低了)
    开 sandbox 的话就得两边建好几个文件,声明 ipc 通信,把东西传来穿去,想一下就感觉很麻烦
    像字节有开源个前端框架 modern.js ,其中有个 [一体化 BFF 方案] 特性,前端代码里可以直接 import 后端代码里写的 api 函数,框架自动转成 http 请求
    所以我就想如果有基于 electron 的框架也能做到类似的事情就好了( render process 直接 import main process 的代码,自动转换成 ipc 通信)
    dragonQueen
        40
    dragonQueen  
       157 天前
    @magicdawn 在 release 页面,我看有 source code 的下载项
    magicdawn
        41
    magicdawn  
       156 天前
    @dragonQueen #40 原来开源是这么玩的
    cxy2244186975
        42
    cxy2244186975  
       22 天前 via Android
    梦回黑客防线
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4283 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 01:52 · PVG 09:52 · LAX 18:52 · JFK 21:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.