文章总结: btrbk的sshfilterbtrbk.sh脚本存在CVE-2026-62943命令注入漏洞,CVSS4.0评分8.7分。根因是正则表达式缺少结束锚点,攻击者可在合法命令后追加管道符执行任意命令,影响0.29.0至0.32.7之前版本。建议升级至0.32.7版本,或手动添加结束锚点作为临时缓解措施。
综合评分: 85
文章分类: 漏洞分析,应急响应,解决方案
CVE-2026-62943:btrbk SSH命令过滤绕过漏洞,CVSS 8.7分
撅人
2026年9月20日 11:06
广东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
2026 年 9 月 18 日,btrbk 项目发布了编号为 CVE-2026-62943 的安全公告。该漏洞存在于 btrbk 的 ssh_filter_btrbk.sh 脚本中,受限 SSH 用户可在合法 btrbk 命令前缀后追加管道命令,绕过白名单过滤执行任意命令。
CVSS 4.0 基础评分 8.7 分,严重等级评定为 High。该漏洞已在 btrbk 0.32.7 版本中修复。目前暂无在野利用。
1
漏洞速览
CVE 编号 CVE-2026-62943
漏洞类型 CWE-78 OS Command Injection(操作系统命令注入)
影响产品 btrbk(digint/btrbk)— Btrfs 快照与远程备份工具
安全等级 High(CVSS 4.0 基础评分 8.7)
受影响版本 0.29.0 <= btrbk < 0.32.7
披露时间 2026-09-18(GitHub 安全公告发布日)
补丁情况 已在 0.32.7 版本修复
利用情况 暂无在野利用,未被列入 CISA KEV 目录
2
漏洞概述
btrbk 是一款用于创建 Btrfs 子卷快照和远程备份的工具。在备份场景中,btrbk 通过 SSH 连接远程备份目标主机执行 btrfs 子卷操作。为了限制远程 SSH 用户的权限,btrbk 提供了 ssh_filter_btrbk.sh 脚本,配合 authorized_keys 的 forced command 机制,将远程用户可执行的命令限制在 btrbk 白名单范围内。
该漏洞的根因在于 ssh_filter_btrbk.sh 中的 allow_stream_match 函数使用了正则表达式的起始锚点(^)但缺少结束锚点($)。这意味着过滤器仅检查命令是否以合法的 btrbk 命令前缀开头,但不检查命令是否在此前缀之后结束。
攻击者可以在合法 btrbk 命令前缀后追加管道符(|)和任意命令。例如:btrbk send … | rm -rf /。由于过滤器仅匹配前缀,管道后的命令会被直接执行,且以备份目标 SSH 账户的权限运行。
需要强调的是,该漏洞仅影响使用 ssh_filter_btrbk.sh 作为 authorized_keys forced command 的部署。不使用该脚本的 btrbk 部署不受影响。漏洞影响范围为机密性、完整性和可用性三项均为 High,攻击者可在备份目标主机上执行任意命令。
截至公告发布,该漏洞暂无在野利用记录,未被列入 CISA 已知被利用漏洞(KEV)目录。btrbk 0.32.7 已修复该问题。
3
CVSS 评分详解
该漏洞采用 CVSS 4.0 评分标准,向量字符串:CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
攻击向量(AV) Network — 攻击者可通过网络远程发起 SSH 连接
攻击复杂度(AC) Low — 追加管道命令简单直接,无需特殊条件
攻击要求(AT) None — 无需特定攻击前置条件
所需权限(PR) Low — 攻击者需具备受限 SSH 用户的访问权限(authorized_keys 中配置了 forced command)
用户交互(UI) None — 无需用户交互
机密性影响(VC) High — 可完全读取备份目标主机上的数据
完整性影响(VI) High — 可修改备份目标主机上的任意数据
可用性影响(VA) High — 可导致备份目标主机服务不可用
系统机密性(SC) None — 无系统级机密性影响
系统完整性(SI) None — 无系统级完整性影响
系统可用性(SA) None — 无系统级可用性影响
4
利用条件与攻击路径
该漏洞的利用需要满足以下前提:
第一,目标部署使用了 ssh_filter_btrbk.sh 作为 authorized_keys 的 forced command。这是 btrbk 远程备份场景的标准配置,用于将远程备份用户的权限限制在 btrbk 相关命令范围内。
第二,攻击者需要拥有该受限 SSH 账户的登录凭据或密钥(PR:L)。这类账户通常是备份专用账户,可能被多个运维人员或自动化系统共享。
第三,目标运行的是 btrbk 0.29.0 至 0.32.7 之前的版本。0.29.0 之前的版本不受影响,0.32.7 已修复。
攻击路径总结: 攻击者登录受限 SSH 备份账户 → SSH forced command 触发 ssh_filter_btrbk.sh → 攻击者提交合法 btrbk 命令前缀 + 管道符 + 任意命令 → 过滤器因缺少结束锚点仅检查前缀 → 管道后命令以备份目标 SSH 账户权限执行 → 实现完整机密性/完整性/可用性破坏
5
修复建议
btrbk 已在 0.32.7 版本中修复该漏洞。修复方式是在 allow_stream_match 的正则表达式中添加结束锚点($),确保命令在合法前缀之后不再有额外内容。
建议操作 将 btrbk 升级至 0.32.7 及以上版本。该版本已通过 GitHub 发布,可通过项目 Release 页面或包管理器获取。
版本检查方法:
btrbk –version
升级方式(源码安装):
git clone https://github.com/digint/btrbk.git
cd btrbk
git checkout v0.32.7
sudo make install
临时缓解措施(无法立即升级时):
· 手动修改 ssh_filter_btrbk.sh,在 allow_stream_match 的正则表达式中添加 $ 结束锚点
· 限制备份 SSH 账户的网络访问来源,仅允许已知备份服务器 IP 连接
· 为备份目标 SSH 账户配置最小权限文件系统 ACL,限制可写范围
· 评估是否可暂停使用 ssh_filter_btrbk.sh,改用其他 SSH 命令限制方案(如 restricted shell)
6
漏洞时间线
2026-07-14
CVE-2026-62943 编号被预留
2026-09-18
btrbk 发布 v0.32.7 修复版本,GitHub 安全公告 GHSA-pf45-7g54-65h5 公开
2026-09-19
CVE 记录公开发布,本文撰写
2026-09-20
本文发布
7
致谢与参考
该漏洞通过 GitHub 安全公告(GHSA-pf45-7g54-65h5)协调披露,CVE 编号由 GitHub CNA 分配。公告未单独列出报告者信息。
参考链接:
· GitHub 安全公告(GHSA-pf45-7g54-65h5):
https://github.com/digint/btrbk/security/advisories/GHSA-pf45-7g54-65h5
· 修复 commit:
https://github.com/digint/btrbk/commit/29ca3c093205395bdeb9dd98677ab4139c458aec
· v0.32.7 发布页面:
https://github.com/digint/btrbk/releases/tag/v0.32.7
· CVE 记录:
https://www.cve.org/CVERecord?id=CVE-2026-62943
· OpenCVE 漏洞追踪:
https://app.opencve.io/cve/CVE-2026-62943
· btrbk 项目仓库:
https://github.com/digint/btrbk
本文信息来源为 GitHub 安全公告(GHSA-pf45-7g54-65h5)、OpenCVE 漏洞追踪及 btrbk 项目仓库,仅供安全研究与防御参考。btrbk 0.32.7 已修复该漏洞,建议尽快升级。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:撅人 《CVE-2026-62943:btrbk SSH命令过滤绕过漏洞,CVSS 8.7分》