搬瓦工中文网

OpenSSH出现高危漏洞 附手动更新OpenSSH教程

OpenSSH 远程代码执行漏洞 (CVE-2024-6387) 安全风险,该漏洞是由于 OpenSSH 服务 (sshd) 中的信号处理程序竞争问题,未经身份验证的攻击者可以利用此漏洞在 Linux 系统上以 root 身份执行任意代码。

目前该漏洞技术细节已在互联网上公开,该漏洞影响范围较大,建议尽快做好自查及防护。影响版本:OpenSSH 8.5p1 - 9.7p1,处于 8.5p1 - 9.7p1 这个版本的 SSH,外部攻击者可以随便控制主机……

「OpenSSH出现高危漏洞 附手动更新OpenSSH教程:https://bwhost.org/debian-12-openssh-update」

发现一个 vps 中招:

OpenSSH_9.2p1 Debian-2+deb12u2, OpenSSL 3.0.13 30 Jan 2024

温馨提示:操作有风险,可能导致无法连接 ssh,注意先备份重要数据再操作升级!!!

Debian 12 系统更新一下系统即可升级 OpenSSH:

「OpenSSH出现高危漏洞 附手动更新OpenSSH教程:https://bwhost.org/debian-12-openssh-update」

更新包列表:

sudo apt update

升级 OpenSSH:

sudo apt upgrade openssh-server

查看当前 OpenSSH 版本:

「OpenSSH出现高危漏洞 附手动更新OpenSSH教程:https://bwhost.org/debian-12-openssh-update」
ssh -V

返回如下信息含 u3 字样表示已经打上安全补丁:

OpenSSH_9.2p1 Debian-2+deb12u3, OpenSSL 3.0.13 30 Jan 2024

温馨提示:如非必须,不推荐使用手动编译更新 openssh!

「OpenSSH出现高危漏洞 附手动更新OpenSSH教程:https://bwhost.org/debian-12-openssh-update」

下面是手动更新 OpenSSH 方法,来自 hostloc 论坛

查看最新版本:

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

查看当前 OpenSSH 版本:

ssh -V

更新安装必须依赖以及下载解压最新安装包:

sudo apt-get  -y update
sudo apt-get install build-essential zlib1g-dev libssl-dev
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
tar -xzf openssh-9.8p1.tar.gz
cd openssh-9.8p1

编译、安装:

./configure
make
sudo make install

重启服务:

sudo systemctl restart ssh

加环境变量:

echo 'export PATH=/usr/local/bin:/usr/local/sbin:$PATH' >> ~/.bashrc
source ~/.bashrc

查看版本(出现 openssh-9.8p1 即可)

ssh -V

修改 ssh.service 文件中的 ExecStartPre、ExecStart 和 ExecReload 行,将 /usr/sbin/sshd 改为 /usr/local/sbin/sshd

sudo sed -i 's|ExecStartPre=/usr/sbin/sshd|ExecStartPre=/usr/local/sbin/sshd|; s|ExecStart=/usr/sbin/sshd|ExecStart=/usr/local/sbin/sshd|; s|ExecReload=/usr/sbin/sshd|ExecReload=/usr/local/sbin/sshd|' /lib/systemd/system/ssh.service

确认修改内容:

grep -E 'ExecStartPre|ExecStart|ExecReload' /lib/systemd/system/ssh.service

重新加载服务:

sudo systemctl daemon-reload
sudo systemctl restart sshd

列出正在运行的 SSH 进程(确认是否是 /usr/local/sbin/sshd)

ps -ef | grep sshd

注意:以上操作 ssh 的配置文件就变成了/usr/local/etc/sshd_config,需要更新配置文件内容

把新配置文件删掉,创建链接到/etc/ssh/sshd_config,并加载服务

sudo rm /usr/local/etc/sshd_config
sudo ln -s /etc/ssh/sshd_config /usr/local/etc/sshd_config
sudo systemctl daemon-reload
sudo systemctl restart sshd

清理旧版本(可选)

sudo rm /usr/sbin/sshd

以上更新方法在 Debian 12 系统中测试通过。有需要请自行备份数据后尝试升级。

退出移动版