OpenSSH预认证漏洞暴露Ubuntu和Debian服务器

admin 2026-03-18 22:45:00 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: OpenSSHGSSAPI补丁曝出CVE-2026-3497漏洞,因误用函数导致预认证堆损坏与信息泄露。该漏洞影响Ubuntu和Debian服务器,攻击者无需凭据即可触发崩溃或泄露数据。建议管理员立即更新OpenSSH,修正kexgsss.c中的函数调用错误以阻断风险。 综合评分: 88 文章分类: 漏洞分析,漏洞预警,应急响应,网络安全


cover_image

OpenSSH 预认证漏洞暴露 Ubuntu 和 Debian 服务器

sec随谈 sec随谈

sec随谈

2026年3月13日 08:47 北京

OpenSSH 的机制中发现了一个漏洞。安全研究员 Jeremy Brown 近日发现,GSSAPI 密钥交换补丁中潜藏着一个严重漏洞,许多 Linux 发行版都会对其 OpenSSH 软件包应用此补丁。

该漏洞现已被追踪为CVE-2026-3497,它揭示了一行错误的代码如何打开堆损坏和未经授权的数据泄露之门——而这一切甚至在用户输入密码之前就已经发生。

问题的核心在于代码错误处理中一个简单却后果严重的错误。在 GSSAPI 密钥交换的服务器端逻辑中,开发人员误用了 sshpkt_disconnect() 函数——该函数仅将消息放入队列并允许代码继续运行——而不是 ssh_packet_disconnect() 函数,后者旨在立即终止进程。

当服务器在 GSSAPI 循环中遇到错误时,这个“非终止”函数允许进程“掉头”进入它原本不应该到达的敏感代码块。这会导致一系列危险的事件:

  • 未初始化变量的使用:代码读取了名为 recv_tok 的堆栈变量,但该变量尚未正确设置。
  • 信息泄露:此“垃圾”变量的内容通过进程间通信 (IPC) 发送到具有特权的 root 监视进程。
  • 堆损坏:最后,代码将这个未初始化的指针传递给清理函数(gss_release_buffer),该函数可能会尝试释放随机内存地址,从而导致崩溃或堆损坏。

CVE-2026-3497 的严重性与环境密切相关,这意味着其结果会根据软件的编译方式而变化。

  1. 预认证攻击:攻击者无需凭据或帐户即可触发此漏洞。只需一个精心构造的约 300 字节的 SSH 数据包即可引发崩溃。
  2. 数据泄露:该漏洞可能将高达 127KB 的堆数据泄露给根监视器,构成严重的隐私侵犯。拒绝服务:在 x86_64 系统上,该攻击会持续触发子进程崩溃(SIGSEGV 或 SIGABRT),导致 SSH 服务锁定 90 秒。
  3. 编译器差异:测试表明,不同的编译器会在内存中留下不同的“残留信息”。例如,GCC-O2 可能会留下一个有效的堆地址,而 Clang 可能会留下一个固定的十六进制值,从而改变漏洞的表现形式。

漏洞专门影响已启用 GSSAPIKeyExchange 的 Ubuntu 和 Debian OpenSSH 服务器。

管理员应立即更新其 OpenSSH 软件包。技术修复方法是在 kexgsss.c 文件中的三个特定服务器端位置,将错误的 sshpkt_disconnect() 调用替换为终止函数 ssh_packet_disconnect()。

参考链接:

https://seclists.org/oss-sec/2026/q1/299


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:sec随谈 sec随谈 sec随谈《OpenSSH 预认证漏洞暴露 Ubuntu 和 Debian 服务器》

评论:0   参与:  0