如果你的项目用了 npm axios 或任何未锁版本号的依赖,这条来自 Karpathy 的安全警报值得立即阅读——他自己都差点中招。
npm axios 遭遇新的供应链攻击——这是最流行的 HTTP 客户端库,每周下载量达 3 亿次。
我扫描了自己的系统,发现几天前在试验 gmail/gcal CLI 时从 googleworkspace/cli 引入了一个依赖。安装的版本(幸运地)解析到了未受影响的 1.13.5,但项目依赖没有锁定版本号,这意味着如果我今天早些时候做同样的事,代码会解析到 latest 版本,那我就中招了。
个人层面可以在一定程度上防御这类攻击,比如设置本地的发布时间约束(release-age constraints)、使用容器等。但我认为根本上,包管理工具(pip、npm 等)的默认行为必须改变——不能让单次感染(通常因为安全扫描而持续时间较短)通过未锁定的依赖随机地、大规模地传播到用户。
更详细的分析文章见原文链接。
Andrej Karpathy 报告了 npm axios(每周 3 亿下载)的新供应链攻击。他自己差点中招——依赖未锁版本号,如果安装时机稍早就会命中恶意版本。他认为包管理工具的默认行为必须从根本上改变,不能让未 pin 的依赖成为大规模传播感染的渠道。
npm 生态中最流行的 HTTP 客户端库 axios 遭遇了新的供应链攻击。这个包每周下载量高达 3 亿次,攻击影响面极大。恶意版本短暂上线后被安全扫描发现并下架,但在那个时间窗口内安装的未锁依赖项目可能已经被感染。
如果我今天早些时候做同样的事,代码会解析到 latest 版本,那我就中招了。
Karpathy 在试验 gmail/gcal CLI 时引入了 googleworkspace/cli 依赖。安装时幸运地解析到未受影响的 1.13.5 版本,但项目依赖没有锁定版本号。这意味着依赖解析的结果完全取决于安装时机——如果恰好在恶意版本上线期间安装,就会自动拉到被感染的包。
项目依赖没有锁定版本号,安装时机稍早就会命中恶意版本。
Karpathy 认为个人防御手段(release-age 约束、容器隔离等)只是打补丁。真正需要改变的是 npm、pip 等包管理工具的默认行为——不能让单次感染通过未 pin 的依赖随机地、大规模地传播到终端用户。行业需要在工具层面收紧默认配置,而不是把安全责任推给每个开发者。
包管理工具的默认行为必须从根本上改变。
如果我今天早些时候做同样的事,代码会解析到 latest 版本,那我就中招了。
相关知识页
代码代理从辅助生成转向任务闭环。
相关知识页
前 Tesla AI 总监、OpenAI 早期核心研究者,长期拆解模型与代码代理实践。
继续阅读
Swyx 指出“用 ChatGPT 登录”(OAuth)功能已经通过 Codex app server 存在了好几个月——只是大部分人没读文档。
继续阅读
Zara Zhang 的 Codebase-to-course 更新:2.6k GitHub 星,优化了 token 效率。最初为 vibe coder 设计,也适合开发者 onboarding。
继续阅读
Swyx 感叹最有趣的 AI 应用被搁置,资源都投向了编码和企业 SaaS——更赚钱但更无聊的方向。
继续阅读
Guillermo Rauch 说 Opus 4.5 是通向新工程方式的单向门:agent 做大部分编码,工程师角色从生产者转变为品质审核者。代码审查、测试、验证是人类需要专注的地方。这不是削弱工程师而是提升——从写代码者变成守门人。