Anonymous Intelligence Signal
Dependi-LSP 推出锁文件扫描功能,可检测 9 种格式的传递性依赖漏洞 (#224)
开源安全工具 Dependi-LSP 完成了一项关键升级,其扫描引擎现在能够解析并利用项目锁文件,以精确识别包括传递性依赖在内的软件漏洞。这项功能解决了长期以来依赖扫描工具的一个盲点:许多安全漏洞并非直接由项目引用的库引入,而是通过这些直接依赖项所依赖的更深层库(即传递性依赖)间接引入。传统扫描方法可能遗漏这些隐藏风险,而新功能通过构建依赖关系图,实现了对漏洞的完整溯源。
此次更新引入了 `LockfileGraph` 和 `LockfilePackage` 数据结构,并采用防循环的深度优先搜索算法及反向索引,将传递性漏洞归因的计算复杂度从潜在的 O(T×D×N) 优化至 O(T+D×N)。核心突破在于新增了对 9 种主流锁文件格式的解析支持,包括 Cargo.lock、package-lock.json (v2/v3)、pnpm-lock.yaml (v6/v9)、yarn.lock (v1)、poetry.lock、uv.lock、Pipfile.lock、composer.lock 和 Gemfile.lock,覆盖了 Rust、Node.js、Python、PHP、Ruby 等主要开发生态。
在输出层面,命令行报告将新增独立的“传递性依赖”章节,以 JSON、Markdown 或摘要形式呈现,并采用类似 npm audit 的 `via_direct` 字段,将每个传递性 CVE 明确归因于其直接父级依赖。对于集成开发环境用户,语言服务器协议诊断信息现在会在直接依赖代码行上提示传递性 CVE,并在传递性漏洞更严重时提升整体严重性等级。此外,代码悬停提示内容也增加了专门的“传递性漏洞”展示区域。该功能还提供了 `--no-use-lockfile` 调试标志。