dehobbs/cve_2026_35414
GitHub: dehobbs/cve_2026_35414
专用于检测 CVE-2026-35414 漏洞暴露条件的 OpenSSH 安全审计工具,通过版本识别和配置分析评估 SSH 证书 principal 解析风险。
Stars: 0 | Forks: 0
# CVE-2026-35414 — OpenSSH 授权暴露审计工具
## 概述
本仓库包含一个**安全的授权评估工具**,用于识别运行 **10.3** 之前版本 **OpenSSH** 的环境中可能存在的 **CVE-2026-35414** 漏洞暴露情况。
该漏洞与在结合使用 `authorized_keys` 限制时,对 SSH 证书 principal 的不当处理有关。
## 安全性与范围
本工具被有意设计为**非利用性**的。
它**不会**:
* 尝试绕过身份验证
* 生成或使用恶意的 SSH 证书
* 执行暴力破解或凭证攻击
它**会**:
* 识别潜在易受攻击的 OpenSSH 版本
* 执行**经过身份验证的配置审计(可选)**
* 检测有风险的 SSH 证书配置
* 提供用于报告和修复的结构化输出
## 漏洞背景
当满足以下条件时,CVE-2026-35414 会影响 OpenSSH:
* 使用了 SSH 证书身份验证
* `authorized_keys` 包含:
cert-authority,principals="user1,user2"
* 证书 principal 包含逗号分隔的值
在这些场景下,OpenSSH 可能会错误解析 principal,从而可能允许未经授权的访问。
## 功能特性
### 未认证检查
* SSH Banner 抓取
* OpenSSH 版本检测
* 暴露分类(基于版本)
### 认证审计(可选)
* 读取各用户账户下的 `authorized_keys`
* 检测:
* `cert-authority` 的使用
* `principals=` 限制
* 逗号分隔的 principal 列表
* 审查相关的 `sshd` 配置
### 报告
* 人类可读的输出
* JSON 导出
* CSV 导出
## 安装说明
```
git clone https://github.com/dehobbs/cve_2026_35414.git
cd cve-2026-35414-auditor
chmod +x cve_2026_35414_audit.py
```
无需外部依赖(推荐使用 Python 3.8+)。
## 用法
### 单一目标(未认证)
```
python3 cve_2026_35414_audit.py -t 192.168.1.10
```
### 多个目标
```
python3 cve_2026_35414_audit.py -f targets.txt --threads 25
```
### 认证审计
```
python3 cve_2026_35414_audit.py \
-t 192.168.1.10 \
-u auditor \
-i ~/.ssh/id_ed25519
```
### 导出结果
```
python3 cve_2026_35414_audit.py \
-f targets.txt \
-u auditor \
-i ~/.ssh/id_ed25519 \
--json report.json \
--csv report.csv
```
## 示例输出
```
Host: 192.168.1.10:22
Exposure: CONFIRMED_EXPOSURE_CONDITION
Banner: SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.5
OpenSSH Version: 9.6p1
Version Status: POTENTIALLY_AFFECTED_VERSION
Authenticated Audit: Yes
cert-authority Found: True
principals= Found: True
Comma-Separated Principals Found: True
```
## 暴露等级分类
| 级别 | 含义 |
| ------------------------------ | ----------------------------------------- |
| `CONFIRMED_EXPOSURE_CONDITION` | 检测到所有易受攻击的条件 |
| `REVIEW_REQUIRED` | 存在部分风险配置 |
| `POSSIBLE` | 仅为易受攻击的版本(未认证) |
| `LOW` | 未检测到风险配置 |
| `UNREACHABLE` | 主机无法访问 |
## 关注重点
高风险配置:
```
cert-authority,principals="admin,root"
```
风险因素:
* 单个字符串中包含多个 principal
* 使用了 SSH 证书颁发机构 (CA)
* 缺乏 principal 验证控制
## 缓解措施
* 升级至 **OpenSSH 10.3+**
* 避免使用逗号分隔的 principal
* 实施严格的 CA 颁发策略
* 推荐使用:
* `TrustedUserCAKeys`
* `AuthorizedPrincipalsFile`
## 局限性
* 在没有以下条件的情况下无法确认可利用性:
* SSH CA 访问权限
* 证书颁发控制权
* 基于 Banner 的检测可能因发行版的后向移植而不准确
* 需要有效凭证才能具备完整的审计能力
## 实验室验证(推荐)
要全面验证暴露情况:
* 构建一个测试 SSH CA 环境
* 颁发包含逗号分隔 principal 的证书
* 观察身份验证行为
请仅在获得授权的实验室环境中执行。
## 📄 许可证
MIT 许可证
## 最后说明
此漏洞:
* 在没有访问权限的情况下无法被远程利用
* 不具备大规模利用性
* 在基于 SSH 证书的环境中具有高影响
请将此工具作为更广泛的安全评估策略的一部分来使用。
标签:authorized_keys, Banner抓取, CVE-2026-35414, OpenSSH, Python, SSH证书, 代码生成, 内存分配, 凭证安全, 加密, 子域名暴力破解, 安全合规, 安全基线检查, 插件系统, 无后门, 暴露面评估, 渗透测试工具, 漏洞扫描器, 版本识别, 网络代理, 网络安全, 网络安全审计, 自动化检测, 配置审查, 隐私保护