流行 TypeScript 库中的严重漏洞:开发者需要了解什么
开发者社区因一则消息而震动:在 TypeScript 和 JavaScript 生态系统中最流行的库之一中发现了一个严重漏洞。该漏洞已获得编号 CVE-2024-XXXX(正在分配中),影响 ts-lib-injector 库(版本 2.3.0 – 2.7.1),该库在 GitHub 上被超过 150,000 个项目使用,每周从 npm 注册表下载超过 300 万次。
来自 Snyk 公司和 npm 安全团队的网络安全专家已确认,该问题允许攻击者在受害者的服务器或开发环境中执行任意代码。该漏洞被归类为 严重,CVSS 评分为 9.8(满分 10 分)。
漏洞如何运作?
问题在于库的 parseConfig() 函数对输入数据的处理不当。攻击者可以发送一个特制的 JSON 配置文件(例如,通过 tsconfig.json 或 package.json),在解析时会在构建流程中触发恶意代码的注入。
- 攻击向量:远程,通过公开仓库或 CI/CD 管道。
- 利用难度:低——只需提供一个包含修改数据的文件即可。
- 影响:完全控制系统,窃取令牌、API 密钥和源代码。
谁面临风险?
所有使用受影响版本库的项目都处于风险之中。首当其冲的是:
- 通过 Webpack 或 Vite 并使用
ts-lib-injector插件构建的应用程序。 - 自动安装依赖项的 CI/CD 系统(GitHub Actions、GitLab CI、Jenkins)。
- 使用 Nx 或 Turborepo 的单仓库。
特别危险的是,该漏洞可能被用于供应链攻击:如果攻击者攻陷了一个包,他们就可以感染所有依赖它的项目。
如何防护?
开发团队已在版本 2.7.2 中发布了修复程序。建议立即更新该库:
- 检查版本:
npm list ts-lib-injector或yarn why ts-lib-injector。 - 更新到最新版本:
npm update ts-lib-injector@latest。 - 检查你的 package-lock.json 中是否有可疑条目。
- 使用审计工具:
npm audit或yarn audit以发现其他漏洞。
额外的安全措施
专家强烈建议在开发流程中实施以下实践:
- 启用 Dependabot 或 Renovate 以自动更新依赖项。
- 配置 Snyk 或 GitHub Security