Code前端首页关于Code前端联系我们

运维事故暴露的npm注册中心出现安全漏洞

terry 2年前 (2023-09-28) 阅读数 301 #Web安全

npm注册中心发生运维事故,导致部分依赖度较高的包无法使用,如require-from-string。虽然此事件很容易修复,但它暴露了一个严重的安全漏洞,允许尝试使用 npm 将恶意代码注入到项目中。

根据官方报告,此次崩溃的主要原因是一个名为“floatdrop”的用户被误删除,导致其包无法找到和下载。做出此决定是因为发布了一个包含垃圾软件的软件包,该垃圾软件还包含合法软件包 floatdrop timeout 的自述文件。由于它与 README 匹配,npm 的反垃圾邮件系统将 floatdrop 标记为垃圾邮件包,随后导致用户及其所有包被删除。

npm 很快发现 floatdrop 确实是合法用户,并且他们的一些软件包被大量使用,因此他们立即采取行动并恢复了所有软件包。但在这个过程花费的很短的时间内,与已删除的软件包同名的新软件包被发布并安装了,数量未知。

虽然npm工作人员已确认所有这些上传的替换包都不是恶意的,但此类事件可能会将恶意代码注入npm用户的项目中。请注意,npm 有一个策略,禁止删除已发布超过 24 小时的包。目的是防止其他人重复使用这些软件包名称,但此策略尚未应用于不需要的软件包。删除时。这样做的原因是我们不希望垃圾软件干扰合法名称的使用。

针对此次事件,npm员工采取了多项措施,其中最重要的就是对所有删除的包名设置24小时的冷静期。此策略还包括垃圾邮件包。这将使通过替换已删除的包来注入恶意代码变得更加困难,但如果有人尝试再次使用它,则需要 npm 工作人员在 24 小时内重建包名称。

此外,npm 工作人员将创建一系列操作文档,以防止意外删除合法包名称。读者可以在原始博客文章中了解更多信息。

查看英文原文:最新Npm事件发现安全漏洞

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门