漏洞关键信息 产品和漏洞信息 产品: oci-helper 版本: v3.2.4 受影响文件: src/main/java/com/yohann/ocihelper/service/impl/OciServiceImpl.java 漏洞类型: Path Traversal (CWE-22) 严重性: High CVSS 3.1评分为: 8.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N) 漏洞原因 应用程序在通过/api/oci/addCfg端点上传OCI私钥文件时,未能正确验证用户提供的文件名。 漏洞代码直接将用户控制输入params.getFile().getOriginalFilename()与基本目录路径进行拼接,未进行任何验证或清理。 漏洞影响 任意文件写入: 写入恶意文件到应用具有写权限的任何位置。 SSH密钥替换: 通过覆盖SSH authorized_keys文件获得未经授权的服务器访问。 配置篡改: 修改应用配置文件改变系统行为。 权限升级: 通过替换系统文件提升权限至root。 持久后门: 植入计划任务或启动脚本提供持久访问。 技术分析 漏洞组件: OciService.java文件中的addCfg方法 数据流分析: - 用户输入→文件名提取→路径构建→文件创建→内容写入 缺失的安全控制: - 无文件名格式验证 - 无路径遍历字符过滤 - 无路径正则化或规范化 - 未验证最终路径是否在目标目录内 - 无文件扩展名白名单 利用细节与示例 攻击向量: 攻击场景: 1. SSH密钥替换 (获得root权限) 2. 应用配置篡改 (修改管理员凭据) 3. 计划任务后门 修复建议 优先修复: 实施文件名验证和路径清理。 安全加固: - 创建文件上传验证组件 - 实施文件上传操作的安全事件日志记录 - 使用随机生成的文件名代替用户提供的名称 运行时保护: 遵循最小权限原则部署