IPBUF安全漏洞报告
English
CVE-2026-0967 CVSS 5.5 中危

CVE-2026-0967 libssh正则回溯拒绝服务漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-0967
漏洞类型
拒绝服务
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
libssh

相关标签

ReDoSDoSlibsshCVE-2026-0967Resource Exhaustion

漏洞概述

libssh库存在安全漏洞,攻击者可通过控制客户端配置文件或known_hosts文件,构造特定主机名。当`match_pattern()`函数处理这些主机名时,会触发低效的正则回溯,导致资源耗尽和超时,从而引发客户端拒绝服务。

技术细节

该漏洞源于libssh中`match_pattern()`函数在处理主机名匹配时的正则表达式实现缺陷。攻击者能够控制输入(如通过修改配置文件),精心设计包含大量字符或特殊模式的主机名字符串。当这些字符串被解析时,正则引擎会发生灾难性的回溯。这种回溯导致CPU使用率飙升,进程挂起。由于攻击需要本地配置修改或用户交互,攻击者通常利用社会工程学诱导用户部署恶意配置或连接特定主机。

攻击链分析

STEP 1
1. 构造恶意载荷
攻击者设计能够引发正则表达式回溯的主机名字符串模式。
STEP 2
2. 投放载荷
攻击者诱导用户修改本地的SSH配置文件(如~/.ssh/config)或known_hosts文件,写入恶意主机名。
STEP 3
3. 触发漏洞
用户尝试使用libssh客户端建立连接,客户端加载配置并解析主机名。
STEP 4
4. 拒绝服务
`match_pattern()`函数处理恶意模式时发生回溯,消耗大量资源导致客户端无响应。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual PoC for CVE-2026-0967 (libssh ReDoS) * This demonstrates how a crafted hostname in a config file * could trigger the backtracking vulnerability. */ #include <stdio.h> #include <libssh/libssh.h> int main() { ssh_session session; session = ssh_new(); if (session == NULL) exit(-1); // Simulate setting a malicious hostname pattern that triggers ReDoS // The actual pattern depends on the vulnerable regex in match_pattern() const char* malicious_hostname = "attacker.com((((((((((((...))))))))))))"; ssh_options_set(session, SSH_OPTIONS_HOST, malicious_hostname); // This call would eventually trigger the vulnerable match_pattern function // leading to CPU exhaustion. if (ssh_connect(session) != SSH_OK) { // Connection might hang or timeout due to DoS } ssh_disconnect(session); ssh_free(session); return 0; }

影响范围

libssh < 0.12.0
libssh < 0.11.4

防御指南

临时缓解措施
建议立即升级libssh到修复版本。若无法升级,应审查并清理SSH配置文件中的异常主机名,并限制文件权限,防止未授权修改。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表