npm软件包安全漏洞警告
关键要点
一款每周下载量接近400万的流行npm软件包存在账户接管漏洞。攻击者可通过购买过期域名来利用该漏洞,可能影响超过1000个组织。研究人员呼吁维护者检查自己的账户,删除任何未使用的电子邮件地址以降低风险。最近,研究人员发现了一种流行的npm软件包存在账户接管漏洞。根据软件供应链安全公司Illustria的报告,该软件包每周下载量近400万,可能影响超过1000个组织。攻击者可以通过获取一个过期的域名来接管该软件包,因此研究人员敦促维护者检查他们的账户并移除任何未使用的电子邮件地址,以降低这一威胁。
尽管npm实施了安全措施,限制每个账户只能有一个活跃的电子邮件地址,研究人员表示,攻击者仍然可以使用恢复的域名重置GitHub密码,发布恶意软件包,导致大规模的供应链攻击。
最开始,我们认为这是一个误报,因为我们对这款极受欢迎的软件包非常熟悉,但在验证后发现风险确实存在与一个拥有350万下载的npm包维护者相关联的域名已过期并可注册,这确实是该软件包的潜在账户接管风险,”报告中写道。
为了验证这一发现,研究人员联系了该维护者,并获得了进行安全研究的许可,以确认该漏洞的可利用性,证实该软件包确实可以通过恢复一个过期域名被接管。
研究人员原本预计购买域名的成本会很高,但结果发现只需每年846美元。

购买一个可以导致流行npm软件包账户接管的过期域名只需846美元每年。图片来源:illustria
购买后,研究人员发现该软件包关联的GitHub账户是可恢复的。
Illustria研究人员使用GitHub账户恢复流程重置密码的截图。图片来源:illustria
这通过GitHub Actions实现,自动在新的代码变更时发布npm包。
为了支持这种自动化,项目维护者定义了一个用于自动发布包的npm自动化令牌作为项目机密。尽管维护者的npm用户账户已正确设置2FA,但此自动化令牌绕过了2FA,”报告解释说。“尽管是机密,这个npm自动化令牌可以很容易地从GitHub Actions流水线中提取出来。”
研究人员未透露该模块的名称,但已经将信息与维护者分享。维护者随后删除了GitHub和npm上的所有旧域名,以确保账户安全。
开发者账户被发现存在接管风险的事件已经出现多次。一例发生在2022年5月,当时一名攻击者注册了一个过期域名并用其分发被植入木马的Python和PHP软件包。
贝贝云加速器