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

OpenSSH 爆高危漏洞 CVE-2024-6387

  •  
  •   frencis107 · 5 天前 · 16343 次点击
    131 条回复    2024-07-06 08:21:44 +08:00
    1  2  
    gwy15
        101
    gwy15  
       4 天前
    群晖还是 8.2p1 = =
    hellolinuxer
        102
    hellolinuxer  
       4 天前
    ubuntu22.04

    apt-get update
    apt-get install openssh-server=1:8.9p1-3ubuntu0.10 -y
    systemctl restart ssh.service
    youtoshell
        103
    youtoshell  
       4 天前 via Android
    debian 11 还是 8.4p1
    LingXingYue
        104
    LingXingYue  
       4 天前 via Android
    @cat 现在软件源好像已经更新了
    LingXingYue
        105
    LingXingYue  
       4 天前 via Android
    @yyzh 挺好,不过感觉还是稍微慢了点..
    我研究自己编译安装的时候都已经看到 github 上有可以攻击别人的项目了...
    手快的说不定都已经攻击完别人了
    kebamt
        106
    kebamt  
       4 天前 via iPad
    昨天 gcp 发邮件了,立马更新缝上漏洞了
    youyoumarco
        107
    youyoumarco  
       3 天前
    弱弱的问一下,用证书登录的受影响不
    cheng6563
        108
    cheng6563  
       3 天前
    主要影响的 32 位系统,64 位没有验证,似乎攻击难度会更高。
    vishun
        109
    vishun  
       3 天前
    @hellolinuxer #102 8.9 不是还在漏洞范围内吗?
    cnbatch
        110
    cnbatch  
       3 天前
    @acess https://www.wiz.io/blog/cve-2024-6387-critical-rce-openssh
    https://sploitus.com/exploit?id=1CF00BB8-B891-5347-A2DC-2C6A6BFF7C99
    已经有人分析过了,造成这次爆漏洞,是因为 glibc 的 free()属于 async-signal-unsafe 函数,只要其他系统的 free()不是这样搞就不怕。
    这就是为什么 OpenBSD 本身没事。像是 Windows 和 macos 、FreeBSD 之类的应该也不会有事。异步 free 其实不算罕见。FreeBSD 那边也不觉得这个漏洞会影响到自己,但还是先升级了版本再研究。
    p0w1r2takuya
        111
    p0w1r2takuya  
       3 天前
    想问一下,有大佬把这个漏洞复现成功的吗
    lolizeppelin
        113
    lolizeppelin  
       3 天前
    你们这些 ubuntu ,连 dep 包都不会打么?
    proxytoworld
        114
    proxytoworld  
       3 天前
    @cnbatch 主要是 syslog 函数,漏洞没有直接调用 malloc 和 free ,而是通过 syslog 通过很长的调用链调用到这两个异步不安全函数。
    Wyearn
        115
    Wyearn  
       3 天前
    漏洞利用难度比较高吧,很难利用
    EvilYZ
        116
    EvilYZ  
       3 天前
    ubuntu 可以不管,有 unattended-upgrade 自动修复
    toby1902
        117
    toby1902  
       3 天前
    cnbatch
        118
    cnbatch  
       3 天前
    @proxytoworld 准确地说,是 glibc 的 malloc 、free 函数并非异步安全。

    我多次明确写出 glibc 就是这个缘故,祸根来自于 glibc
    tool2dx
        119
    tool2dx  
       3 天前
    @cnbatch openssh 写法也有问题。哪里有 socket 120 秒登录超时,只依赖 SIGALRM 信号量,而不依赖计时器的。要知道有些平台,比如安卓,根本没有提供 SIGALRM ,也就永远不会超时。。

    我去看了一眼 dropbear ,人家同样是做 sshd 的,就老老实实判断

    time_t now = time(NULL);

    if (now - ses.connect_time >= AUTH_TIMEOUT)
    dropbear_close("Timeout before auth");

    整花活没前途。
    proxytoworld
        120
    proxytoworld  
       3 天前
    @cnbatch 确实是 mallo 、free 的问题,但如果 SIGALRM 触发的时候不调用 syslog ,也就不存在这个漏洞了,修复也是这样做的,把 syslog 调用删了
    proxytoworld
        121
    proxytoworld  
       3 天前
    也算是 glbc 的问题,syslog 不是异步安全的,openbsd 上面自己实现了异步安全的 syslog
    @cnbatch
    Garphy
        122
    Garphy  
       3 天前
    这个包出漏洞是真的凶
    cnbatch
        123
    cnbatch  
       3 天前
    @tool2dx 这个“花活”算不算花那要看系统吧。在 openbsd 就不算花了。大家都忘了一个前提,openssh 原本只是 openbsd 的内置组件,只不过顺手放出来给其他系统拿来用。

    他们做开发做测试的时候必然优先考虑 openbsd 自家的规则。至于同样的写法在其他平台会出现什么怪事,或者冲突,或者 openbsd 属于正常的代码到了别的平台属于不规范的代码,应该都是能跑就行,没出事就不管,出事了再说。就像现在这样。
    majula
        124
    majula  
       3 天前
    @cnbatch #118

    也不能算是 glibc 的锅。glibc 的文档里明确指出 free() 是 AS-Unsafe 的: https://sourceware.org/glibc/manual/2.39/html_node/Freeing-after-Malloc.html

    而且 POSIX 也没有要求 free() 必须是 async-signal-safe 的。有这个要求的函数列举在这里: https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html

    如果一定说是谁的过失,那只能是“将 OpenSSH 移植到 Linux”或者“认为 OpenSSH 在 Linux 上可用”的人,没有充分意识到(或者从测试用例中感知到)不同 libc 实现的差异,从而导致了兼容性缺陷

    ----

    就好比某用户从二道贩子手里买了个进口家电,只支持 110V 交流电,但是二道贩子自己给改装了个国标插头,用户直接插到 220V 市电上,引发了安全事故。这时候用户是应该谴责电网( glibc ),还是原厂家( OpenSSH ),还是二道贩子(移植者)呢?

    当然还是那句话,开源软件是 provided as is, without any warranty 的,用户应当为自己的安全负责。真出了安全事故,不管是 glibc 还是 OpenSSH 还是任何一个 Linux 发行版的负责人都没有义务补偿他。

    That's the price you have to pay for freedom.
    zx900930
        125
    zx900930  
       3 天前
    @cnbatch
    OpenBSD 没事因为用的 signal(SIGALRM, handler)调用的是重写过的 syslog_r()而不是 syslog()。
    但是 FreeBSD 可是完全在影响范围内的、7 月 1 日发布的 13.3-RELEASE-p4 才修复了这个漏洞
    https://www.freebsd.org/security/advisories/FreeBSD-SA-24:04.openssh.asc

    还有这个漏洞不是什么没事,原文改进算法以后只要花
    6-8 小时获得 32 位 debian 12.5 的 root shell
    预估不到一个星期就能获得 64 位 Rocky Linux 9 的 root shell
    论严重程度堪比当年的永恒之蓝,唯一区别就是没有直接放出漏洞利用工具来。
    Spark100
        126
    Spark100  
       3 天前
    @StinkyTofus centos 6 7 8 的 SSH 版本都很安全 都无敌了。
    cnbatch
        127
    cnbatch  
       3 天前
    @zx900930
    1. 对于 FreeBSD 是否受影响,既是,亦否:
    https://forums.freebsd.org/threads/ssh-cve-2024-6387.94018/
    “And no, the RCE that makes this an actual threat does not apply to FreeBSD (or other BSDs and illumos), but only to systems using gnu libc”

    直接下定论说“FreeBSD 可是完全在影响范围内的”为时过早,甚至未必是正确结论(如果事后证明该漏洞没有 impact 到 FreeBSD 的话)。
    昨天 opnsense 社区已经有人提到了 FreeBSD Security Team 为什么会发布漏洞,简单来说单纯就是“没发现冲击,不管怎样,先升级了再说”:
    https://forum.opnsense.org/index.php?topic=41342.0
    “There's no confirmation yet on FreeBSD, however the security team there decided they'll patch first and ask questions later - as Colin explained it on Twitter shortly after the vulnerability bacame public.”

    对应推特原文:
    https://x.com/cperciva/status/1807703216567865471
    “unclear if exploitable on FreeBSD but we have an advisory out just in case.”
    没错,just in case ,就是这么简单粗暴

    于是才有了
    https://www.freebsd.org/security/advisories/FreeBSD-SA-24:04.openssh.asc


    2. 我原文写的是“这就是为什么 OpenBSD 本身没事”,这么清楚的描述还能理解成“连带 Linux 都没事”,我觉得实在是匪夷所思。
    kaizceo8
        128
    kaizceo8  
       1 天前
    以及升级过 但是外面 telnet ip 22 还是旧版本咋办?绿盟检查不通过
    kaizceo8
        129
    kaizceo8  
       1 天前
    @LingXingYue 请问按此升级过 ssh -V 版本变掉了 但是外面 telnet ip 22 还是旧版本咋办?绿盟检查不通过
    kaizceo8
        130
    kaizceo8  
       1 天前
    @kaizceo8 #129 晓得了:
    #创建软链
    mv /usr/sbin/sshd /usr/sbin/sshd.old
    ln -s /usr/local/sbin/sshd /usr/sbin/sshd

    systemctl restart sshd
    billgong
        131
    billgong  
       17 小时 51 分钟前 via iPhone
    @sunrain macOS 一般不开 OpenSSH-server 不受影响。况且你得看看是 Homebrew 的版本升级了还是系统绑的版本。

    Sonoma 14.5 自带的是 OpenSSH_9.6p1
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1202 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:12 · PVG 02:12 · LAX 11:12 · JFK 14:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.