关键漏洞信息 受影响环境 项目: Dinky 仓库: https://github.com/DataLinkDC/dinky 受影响版本: <=1.2.5 漏洞概述 Dinky平台的Git项目管理功能存在路径遍历漏洞。具有Git项目创建权限的攻击者可以通过构造包含路径遍历序列的恶意项目名称(如:.../../evil),在项目创建或构建时,向服务器文件系统写入任意文件。 漏洞详细信息 易受攻击文件: dinky-admin/src/main/java/org/dinky/utils/GitRepository.java 易受攻击函数: getProjectDir(String projectName) (行143-145) 主要入口点: GitController.saveOrUpdateGitProject() 在第86行 次要触发点: GitController.buildGitProject() 在第154行 攻击向量: 网络(已认证) 影响分析 机密性: 低 - 攻击者可以读取写入可访问位置的敏感文件 完整性: 高 - 攻击者可以向服务器上的任意位置写入文件,可能: - 植入恶意JAR文件以执行代码 - 写入配置文件以改变系统行为 - 根据应用程序用户权限覆盖现有文件 - 建立持久化机制 可用性: 低 - 文件系统操作可能消耗磁盘空间或中断应用程序功能 CVSS v3.1: 7.5 (高) 攻击向量: 网络 (AV:N) 攻击复杂度: 低 (AC:L) 所需权限: 低 (PR:L) - 需要Git项目创建权限 用户交互: 无 (UI:N) 范围: 不变 (S:U) 机密性: 低 (C:L) 完整性: 高 (I:H) 可用性: 低 (A:L) 修复方案 1. 输入验证 (主要修复): 增加严格的GitProjectDTO验证 2. 路径验证 (纵深防御): 使用Path.normalize()并验证解析后的路径 3. 文件权限: 确保Dinky应用程序以最小的文件系统权限运行,以限制潜在影响。