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证书, 代码生成, 内存分配, 凭证安全, 加密, 子域名暴力破解, 安全合规, 安全基线检查, 插件系统, 无后门, 暴露面评估, 渗透测试工具, 漏洞扫描器, 版本识别, 网络代理, 网络安全, 网络安全审计, 自动化检测, 配置审查, 隐私保护