Composer audit 命令仅从 Packagist 的 Advisory Database 检查已知 CVE,需 Composer 2.5.0+、完整 vendor/ 和 composer.lock,不支持第三方漏洞库、私有包及运行时环境判断,故“无输出”不等于安全。
Composer 自带的 audit 命令能快速发现已安装依赖中的已知安全漏洞,但默认不启用,且仅支持 Packagist 官方 CVE 数据源 —— 想靠它覆盖全部风险,必须配合其他手段。
为什么 composer audit 有时没输出或显示 “No vulnerabilities found”
这不是没漏洞,而是当前环境不满足审计触发条件:
-
composer audit从 Composer 2.5.0+ 才正式引入,旧版本运行会报Command "audit" is not defined - 项目必须已执行过
composer install或composer update,生成完整的vendor/和composer.lock,否则找不到已安装包版本 - 它只比对 Composer Advisory Database(由 Packagist 维护的公开 CVE 汇总),不连接 OSV、GitHub Security Advisories 等第三方库
- 若包未在该数据库中被收录(比如私有包、新披露未同步的漏洞),结果就是“无漏洞”—— 实际可能高危
composer audit 的常用参数和真实效果差异
它不是全量扫描工具,参数设计偏向 CI/CD 快速反馈,而非深度检测: