供應鏈攻擊
2023-12-14
Ledger 的一个前端库被黑客拿到了发布权限(具体怎么拿到不展开了),然后黑客在 ledgerhq/connect-kit 这个库里埋了恶意代码并且发布了新版本,但是一般来说是没事儿的,因为依赖这个库的网站需要更新版本,把最新版本带进自己的网站代码里才会恶意代码生效
@galenyuan: 这时候骚的就来了,我在 ledgerhq/connect-kit-loader 的代码里发现了下面这段,动态加载 ledgerhq/connect-kit CDN 代码且不锁版本 https://pbs.twimg.com/media/GBUBJbLa4AAafvC.jpg
@galenyuan: 简单讲就是 ledgerhq/connect-kit 这个库只要发一个 1.x.x 的版本,那么依赖了 ledgerhq/connect-kit-loader 这个库并且有用到 loadConnectKit 这个函数的网站就会立即拿到最新的代码,注意 CDN 地址最后的那个 @1 ,这个意思是用 1.x.x 版本的最新版...这个操作我很久之前就发推说过是陋习 @galenyuan: 接下来就没啥好说的了,黑客只需要通过动态加载进来的代码发起假交易就行了,再强调一次绝对不要依赖这种 npm 的第三方 CDN 源,人家发个版本都不需要你更新就中招了