据安全公司Socket Security联合创始人Feross Aboukhadijeh披露,npm最依赖的软件包之一Axios正遭受一场活跃的供应链攻击。该攻击利用最新版本axios@1.14.1,强制拉入一个此前从未存在的恶意包plain-crypto-js@4.2.1,被专家定性为“教科书级别的供应链安装型恶意软件”。
攻击细节:伪装成加密库的恶意载荷
Feross在3月31日的推文中详细描述了攻击手段:axios@1.14.1将plain-crypto-js@4.2.1作为依赖自动安装,而该包在发布当天才被上传至npm注册表。Socket AI分析确认,该包是一个混淆后的dropper/加载器,可以执行多种恶意行为,包括:删除或重命名执行后的文件以销毁取证痕迹、将载荷文件复制到系统临时目录和Windows ProgramData目录、执行解码后的Shell命令等。
“这是教科书式的供应链恶意软件。Axios每周下载量超过1亿次。任何拉取最新版本的npm安装现在都可能被入侵。”—— Feross Aboukhadijeh
影响范围:Web3开发生态面临直接威胁
Axios是Node.js生态中最流行的HTTP客户端,被数百万JavaScript项目直接或间接依赖。npm(Node Package Manager)作为全球最大的软件注册表,托管了超过200万个开源JavaScript包,是现代Web3开发(包括去中心化应用、智能合约接口、钱包前端等)的基础设施。一旦核心工具链被污染,攻击者可能窃取私钥、篡改交易数据、或植入后门,对加密货币和去中心化金融(DeFi)项目造成严重安全威胁。
当前,已有多个Web3项目发出内部警告,要求团队暂停所有Axios相关更新,并检查lock文件是否含有plain-crypto-js条目。由于攻击发生在周末(3月31日),许多开发者尚未收到实时预警,风险仍在扩散。
行业反应与防护建议
npm官方尚未发布正式声明,但Feross建议开发者立即采取以下措施:
- 锁定Axios版本:暂时不要升级到1.14.1或任何后续未审核的版本,在package.json中指定固定版本(如
"axios": "1.14.0")。 - 审计lock文件:检查yarn.lock或package-lock.json中是否包含plain-crypto-js条目,若存在应立即移除并更新依赖树。
- 暂停自动更新:在CI/CD流程中临时禁用依赖自动升级,避免生产环境被恶意代码污染。
市场影响分析
虽然Axios并非专门为加密货币构建,但大量Web3前端应用、DeFi仪表盘、区块链浏览器(如Etherscan的部分插件)以及钱包服务(如MetaMask的某些扩展)均使用Axios与后端API通信。一旦这些应用受到攻击,用户的私钥传输、交易签名、资产查询等关键操作可能被中间人劫持。这可能导致:
- 资产被盗风险:恶意代码可截取API调用中的私钥或助记词。
- 信任危机:开发者社区对npm包安全性的信任度下降,可能延缓新项目上线或导致用户撤离。
- 短期抛压:与受感染应用相关的代币可能面临恐慌性抛售,尤其是小型DeFi项目。
截至发稿,axios@1.14.1已被npm标记为“不安全”,但下载量仍在增长。安全社区呼吁所有JavaScript开发者立即行动,避免成为这场供应链攻击的受害者。

