OpenSSH 代码问题漏洞(CVE-2023-38408)
OpenSSH 安全漏洞(CVE-2023-51767)
ubuntu的系统
现在的版本 ubuntu 22.04的版本
ssh -V
OpenSSH_8.9p1 Ubuntu-3ubuntu0.15, OpenSSL 3.0.2 15 Mar 2022
一、漏洞说明
CVE-2023-38408— ssh-agent PKCS#11 远程代码执行(RCE)
基本信息:
CVSS 3.1:9.8(Critical)影响版本:OpenSSH 5.5 ~ 9.3p1(含你当前的 8.9p1)受影响组件:ssh-agent的 PKCS#11(智能卡/硬件令牌)支持功能
漏洞根因
OpenSSH 的
ssh-agent在加载 PKCS#11 动态共享库(.so)时,使用dlopen()加载路径校验不充分——它会尝试从系统目录(如/usr/lib)加载指定的 PKCS#11 Provider 库,但未严格验证该库是否可信。这是 2016 年 CVE-2016-10009 修复不完整导致的遗留问题。攻击场景与过程
你(受害者)使用
ssh -A user@evil-server把 SSH Agent转发到了攻击者控制的服务器;攻击者在那台服务器上诱导你的
ssh-agent请求加载 PKCS#11 模块,并指向一个特制的恶意.so文件(前提是该文件已存在于你本机某路径,或通过诱导放置);
ssh-agent用dlopen()加载该恶意库 → 在ssh-agent进程上下文中执行攻击者代码;攻击者在你本地机器以你的用户权限执行任意命令(RCE)。
关键前提:必须开启 Agent Forwarding(
ForwardAgent yes或ssh -A),且攻击者能控制你连接的目标机器。
CVE-2023-51767 — Rowhammer 位翻转导致认证绕过(理论型)
基本信息
CVSS 3.1:约 7.0(High,但利用难度极高)
影响版本:理论上 OpenSSH ≤ 9.6(实为硬件+软件组合问题)
类型:本地物理内存 Rowhammer 攻击导致认证状态变量被篡改
漏洞根因
OpenSSH 的密码认证函数
mm_answer_authpassword()中用普通int authenticated = 0/1栈变量记录认证结果。在某些 DRAM(无 ECC 的老式内存)上,Rowhammer 攻击可通过对相邻内存行的频繁访问,引发电磁干扰导致相邻行单个比特翻转(bit flip)。若攻击者能在同一物理机上运行代码精确命中 OpenSSH sshd 子进程的authenticated变量内存地址,把0(未认证)翻成1(已认证),即可绕过密码校验直接登录。攻击前提(极苛刻)
攻击者与 OpenSSH Server同物理机/同NUMA节点(如共享云虚拟机、多用户服务器);
目标机器使用易受 Rowhammer 影响的非 ECC DRAM;
攻击者能运行本地程序做高精度内存锤击(需 root 或特定权限做
mlock/hugetlb);命中概率低,需大量尝试且时机精准
二、升级
下载地址:
openssh下载地址 https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
openssl下载地址 https://openssl-library.org/news/secadv/
2.1安装编译依赖
sudo apt install -y build-essential libssl-dev zlib1g-dev libedit-dev libpam0g-dev libwrap0-dev2.2下载解压
# 下载解压(示例用 9.8p1,可自行换最新) cd /tmp wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz tar -zxf openssh-9.8p1.tar.gz && cd openssh-9.8p12.3编译
# 配置(保留原配置路径) ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr --with-privsep-path=/run/sshd # 编译安装 make -j$(nproc) sudo make install # 重启 sudo systemctl daemon-reload sudo systemctl restart sshd ssh -V查看
ok升级完成
------------------------------------------------
也可以 apt 安全更新
sudo apt update
sudo apt upgrade openssh-server openssh-client ssh
sudo systemctl restart sshd
验证版本号变化(末尾 build 号变大即正常,如-3ubuntu0.XX)
ssh -V
Ubuntu 22.04 的openssh 1:8.9p1-3ubuntu0.3及以上已修复 CVE-2023-38408,CVE-2023-51767 也在后续更新中通过加固补丁处理