漏洞概述

Backstage 是一个用于构建开发者门户的开源框架,其 @backstage/cli-common 模块为后端和命令行界面提供配置加载功能。在 @backstage/backend-plugin-api 版本 0.1.17 之前,用于防止路径遍历攻击的 resolveSafeChildPath 工具函数未能正确验证符号链接(symlink)链和悬空符号链接,导致攻击者可绕过路径限制,访问或操作允许目录之外的文件系统路径。该漏洞已被分配 CVE 编号 CVE-2026-24047,CVSS 评分为 6.3(中危)。

漏洞详情

  • CVE 编号:CVE-2026-24047
  • 漏洞类型:路径遍历防护绕过(CWE-59: Link Following, CWE-61: UNIX Symbolic Link (Symlink) Following)
  • CVSS 评分:6.3(中危),向量:CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
  • 影响版本:@backstage/backend-plugin-api < 0.1.17

影响范围

使用受影响版本 @backstage/backend-plugin-api 的 Backstage 实例,特别是启用了 Scaffolder 动作或其他依赖 resolveSafeChildPath 进行路径安全校验的后端组件的系统。若用户可上传或定义模板(如软件模板),且未采取额外隔离措施,则可能被利用。

风险分析

具备低权限的攻击者(如可创建模板的用户)可通过构造恶意符号链接链(例如 link1 → link2 → /etc/passwd)或指向外部路径的悬空符号链接,绕过路径限制,读取服务器上任意文件(高保密性影响)。虽然当前未发现完整性或可用性影响,但信息泄露可能导致进一步攻击,如凭证窃取或内部系统侦察。由于攻击需特定条件(如可控制符号链接创建),攻击复杂度较高(AC:H)。

修复建议

  • 立即升级 @backstage/backend-plugin-api 至 0.1.17 或更高版本,该版本已修复路径验证逻辑。
  • 若无法立即升级,建议采取以下临时缓解措施:
    • 在容器化环境中运行 Backstage,并限制容器对主机文件系统的访问权限;
    • 仅允许可信用户创建或修改软件模板,避免不可信用户提交恶意模板。

参考链接