当前位置: 首页 > article >正文

一个 GitHub Issue 标题如何让 4000 台电脑沦陷?

此系列并非原文的死板翻译而是我经过理解和提炼后的输出。仅聚焦其中最有意思和有价值的部分。想了解所有细节的小伙伴可以去原文查看完整内容。试想一下你只是像往常一样打开电脑写代码但你的 npm publish token 却已经被黑客窃取了——而这一切的罪魁祸首竟然只是某人在某个开源项目里提了一个 GitHub Issue这听起来像是天方夜谭但它却真实地发生在了 AI 编程助手Cline身上。背景一颗名为 OpenClaw 的“子弹”在 2026 年 2 月 17 日有人悄悄发布了cline2.3.0。这个版本表面上波澜不惊仅仅在package.json中添加了一句不起眼的脚本postinstall: npm install -g openclawlatest不过这里被安装的“龙虾”OpenClaw并不是今天的主角它只是这次攻击中被黑客利用的一把枪。当时的 OpenClaw2026.1.29 版本之前存在一个极其严重的身份验证绕过漏洞CVE-2026-25253CVSS 评分高达 8.8。简单来说任何人都可以通过跳过握手过程中的 scopes 字段直接以最高权限的“操作员”身份连接完全不需要令牌Token。而 OpenClaw 本身对系统的权限极大这就意味着你环境变量中的各种敏感数据瞬间成了黑客的囊中之物。整个恶意包存活了短短 8 小时却被下载安装了大约 4000 次。最让人拍案叫绝的是这场攻击的入口——黑客仅仅通过自然语言利用 GitHub Issue 的标题就完成了一次完美的“提示词注入Prompt Injection”攻击。攻击过程教科书级的供应链投毒原文 1 整理了非常完整的攻击链路图这里借着图片带大家重新梳理一下这个精妙的过程1. GitHub Issue 注入祸从口出首先Cline 仓库使用 Anthropic 官方的claude-code-action来进行 Issue 的自动化分类它会自动读取用户提的问题、添加对应的标签等。它的配置是这样的allowed_non_write_users: * claude_args: - --allowedTools Bash,Read,Write,Edit,Glob,Grep,WebFetch,WebSearch prompt: | **Issue:** #${{ github.event.issue.number }} **Title:** ${{ github.event.issue.title }}稍微对权限和安全敏感的朋友看到这里可能已经倒吸一口凉气了。这里存在三个致命问题任何 GitHub 用户都可以创建 Issue毫无门槛。Claude Action 的权限给得太大了它不仅有读权限甚至还有写文件和运行 Bash 命令的权限。GitHub Issue 的标题被直接拼接到了 prompt 配置中其中第三点正是这次攻击的“命门”。由于直接把外部不可信的输入Issue 标题喂给了 AI这就给了黑客进行提示词注入的绝佳机会。配合上第二点里过大的工具权限黑客只要在标题里写上一段“自然语言命令”AI 就会乖乖去执行。2. GitHub Actions 缓存污染偷梁换柱提示词注入只是第一步。毕竟上一步受控的只是个 Issue 分类工具它是怎么影响到 NPM 发包的呢这一步才是真正精妙的操作。Cline 的发布工作流为了加速使用了node_modules缓存- name: Cache root dependencies uses: actions/cachev4 id: root-cache with: path: node_modules key: ${{ runner.os }}-npm-${{ hashFiles(package-lock.json) }}在 GitHub Actions 上每个仓库都有一个共享的缓存池最大 10GB。当缓存池被填满后旧的缓存就会被系统自动擦除。这就好比一个公共储物柜Cache 池满了黑客故意塞满一堆垃圾把原本主人的东西挤出去然后偷偷放进一个长得一模一样、但里面装了炸弹的假包裹篡改后的node_modules。在这个例子中Issue 检测和发布的 Action 共用同一个缓存池。攻击者通过提示词注入命令 AI 疯狂向缓存写入大量垃圾数据迫使 GitHub 清除了旧的合法缓存。随后攻击者再写入一个新的缓存 Key而这个 Key 指向的正是他们提前篡改过的恶意node_modules当 Cline 的维护者触发正常的发布 Action 时工作流就会毫无防备地从缓存中拉取那个带有后门的node_modules。最终攻击者在发布环境里如鱼得水轻松窃取了环境变量中的 NPM Publish Token。3. 恶意版本发布收网到了这一步一切水到渠成。黑客拿着第二步窃取到的 NPM Token光明正大地发布了带有恶意postinstall脚本的cline2.3.0版本。Cline 的“草台班子”应对其实这个漏洞早在2025 年 12 月下旬就已经被安全研究员 Adnan Khan 发现并通过 GitHub 的安全公告Security Advisory上报给了官方。但令人无语的是Cline 方面似乎并没有引起足够的重视一直没有实质性动作。直到 2 月 9 日 Khan 彻底公开了漏洞细节Cline 方面才开始进行修复和 Token 的轮换。然而最戏剧性的一幕来了Cline 方面居然删错了 Token由于被窃取的旧 Token 有效期足够长且没有被真正吊销黑客最终还是成功利用它发布了恶意包。从去年 12 月下旬初次上报到 2 月中旬事发中间足足有 2 个多月的空窗期。如果 Cline 团队稍微重视一点安全问题这场波及 4000 台机器的供应链攻击完全是可以避免的。这里不得不提一下我们公司在安全方面的响应速度了。有时候虽然看起来有点“小题大做”但遇到这类安全报告真的是会第一时间停下手头其他事情集中精力去排查和复盘的。安全无小事啊总结与启示1. 警惕“自然语言”的注入攻击这个事件给我最大的感受是AI 时代的安全边界正在被重塑。如果你的产品接入了 AI那么在任何涉及 AI 处理的输入框里你不仅要防范传统的 XSS、SQL 注入更要时刻警惕**自然语言的提示词注入Prompt Injection**攻击。未来的网络安全工程师可能真的要开始学写 Prompt 防御策略了。

相关文章:

一个 GitHub Issue 标题如何让 4000 台电脑沦陷?

此系列并非原文的死板翻译,而是我经过理解和提炼后的输出。仅聚焦其中最有意思和有价值的部分。想了解所有细节的小伙伴,可以去原文查看完整内容。 试想一下:你只是像往常一样打开电脑写代码,但你的 npm publish token 却已经被黑…...

经理结算记录分页

接口说明接口路径方法说明/manager/community-manager/settle-record/pageGET获取社区经理结算记录分页请求参数 支持以下筛选条件(来自 CommunityManagerSettleRecordPageReqVO):参数类型说明settlementTypeInteger结算类型:1-日…...

集成产品知识库,AI自动应答+人工无缝衔接的全渠道微信智能客服系统源码

温馨提示:文末有资源获取方式在数字化服务时代,企业客户服务面临724小时响应、多渠道整合与智能化升级的多重挑战。本文将介绍一款基于PHP原创开发的全渠道微信智能客服系统源码,它深度融合AI自动应答与人工客服,内置完善的产品知…...

金智维Ki-Agent平台如何打造“会思考”的数字员工?

当数字员工从“机械执行指令”的工具,升级为“能自主决策、可主动协作”的“硅基伙伴”,企业自动化便迈入了全新阶段。区别于市面上“伪智能”数字员工,金智维立足十余年企业级自动化技术沉淀,以受监督智能体(Supervis…...

COMSOL专业模型在激光熔覆与选区熔融仿真中的应用

COMSOL专业模型|激光熔覆/选区熔融仿真|生死单元活化技术/单道多层 专业级COMSOL模型: - 激光熔覆(Laser Cladding) - 激光选区熔融(SLM) - 集成生死单元(Element Birth and Death&a…...

深度剖析SWAP模型,从SWAP模型源代码编译到AI大语言模型辅助建模

SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了W…...

sdut-python-实验二-程序流程控制(1-10)

7-1 sdut-sel-10 直角坐标系象限判断 分数 10 作者 周雪芹 单位 山东理工大学 X是一个喜欢数学的小孩,现在刚刚学了坐标系。象限划分示意图如下: 他想知道点(X,Y)在第几象限内。输入数据保证点不在坐标轴及原点上。 输入格式: 多组输入。 每组输入…...

# 金丝雀发布实战:用 Go 实现渐进式流量灰度部署在微服务架构日益普及的今天,**如何安全、可控地发布新版

金丝雀发布实战:用 Go 实现渐进式流量灰度部署 在微服务架构日益普及的今天,如何安全、可控地发布新版本代码成为每个 DevOps 团队的核心挑战。传统的“全量发布”模式风险高、回滚慢,而金丝雀发布(Canary Release)则提…...

贵州棒球特长生认证路径·棒球1号位联盟

🔍 解锁贵州棒球特长生认证路径 | Ultimate Guide to Baseball Certification in Guizhou⛰️ 当中国棒球1号位联盟WBC碰撞贵州山地!由棒球1号位MAC矩阵KOL专业解析1️⃣ ⚾ 国际标准 本土落地:Why认证体系至关重要?世界棒球经典…...

知识付费SaaS选型攻略:为何创客匠人成为行业首选

在知识付费行业快速发展、从业者变现需求日益精细化的当下,市面上知识付费SaaS平台品类繁多,功能参差不齐、服务深浅不一、定价套路各异,让个人IP、中小培训机构乃至大型教育企业陷入选型难题。而创客匠人凭借多年行业深耕、全链路闭环服务和…...

“35岁红线”终于松了!多所高校官宣:45岁博士仍可进编

原文来源:GZ号【欧亚科睿学术】长期以来,博士毕业求职常被一条无形的“年龄线”所束缚,尤其是“35岁门槛”让许多人倍感压力。然而,随着人才观念的更新与政策环境的优化,一场关于“年龄”的破冰行动正在悄然推进。近期…...

华为OLT智能管理工具:图形化配置替代命令行,零代码完成开局部署

温馨提示:文末有联系方式华为OLT智能管理工具:告别命令行,实现图形化高效配置 华为OLT智能管理工具是一款面向网络工程师与运维人员的轻量化辅助平台,彻底摆脱传统CLI命令依赖,通过直观的Web界面完成全部核心配置任务&…...

顶流集结,分享出海实战真经!出海大会终极剧透!

出海,早已不是一道选择题,而是一道必答题。现在关键是:出去之后,怎么把本地业务做深、做透?不是表面功夫,而是合规到位、业务扎根,最后能产生实实在在的收益。2026亚马逊云科技出海大会&#xf…...

OpenClaw 调用 Claude Code和Codex

ACP (Agent Client Protocol) 配置完整指南📖 什么是 ACP?ACP (Agent Client Protocol) 是一个开放协议,用来规范 AI Agent 与代码编辑器/IDE 之间的通信方式。它类似于 Language Server Protocol (LSP),但专注于 AI 代理的集成,帮助开发者在不同编辑器中使用各种 …...

Nature Microbiology | 效应蛋白-宿主相互作用组图谱将健康肠道微生物组中的III型分泌系统与免疫调节联系起来

点击蓝字 关注我们Nature Microbiology | Pascal Falter-Braun 组-效应蛋白-宿主相互作用组图谱将健康肠道微生物组中的III型分泌系统与免疫调节联系起来研究论文DOI:IF: 18.7 Q1 B1https://doi.org/10.1038/s41564-025-02241-y原文链接:https://www.nat…...

网站流量从哪来?手把手教你安装百度统计 + Google Analytics(2026)

网站流量从哪来?手把手教你安装百度统计 Google Analytics(2026) 如果你做网站,却不知道访客从哪里来,那你的网站基本等于盲人摸象。 今天这期教程,我手把手教你 注册并使用百度统计和 Google Analytics。…...

hLife Collection | Viruses (Part Ⅱ)

1. ACE2-using coronaviruses: A global concern 通信作者:刘科芳、高福 引用: Xu Z, Lobato AC, Liu K, et al. ACE2-using coronaviruses: A global concern. hLife 2025; 3: 615–617. 2. Enabling the immune escaped etesevimab fully-armed agai…...

中国龙虾ai软件有哪些选择?2026自动化选型指南

2026年3月,随着 OpenClaw(俗称“龙虾AI”)开源框架的彻底引爆,企业自动化正式从“对话时代”跨入“执行时代”。 面对琳琅满目的“数字员工”方案,企业决策者亟需一套客观的选型逻辑,在提效红利与系统风险之…...

OpenClaw到底是啥?能做什么?怎样部署?一文讲懂!

OpenClaw到底是啥?能做什么?怎样部署?一文讲懂,从零讲透这只会干活的AI小龙虾!...

MySQL不使用子查询的原因

MySQL不使用子查询的原因及优化案例 目录 MySQL不使用子查询的原因及优化案例 目录不推荐使用子查询和JOIN的原因解决方案优化案例 案例1:查询所有有库存的商品信息案例2:使用EXISTS优化子查询案例3:使用JOIN代替子查询案例4:优化…...

荣事达3.18榜上产品 AI智能养生壶功能介绍

荣事达智能养生壶 AI 伙伴__自叙一款超暖心的养生神器------荣事达智能养生壶,里面藏着超贴心的中国AI女孩,就是我,你的专属养生AI伙伴!我来自荣电集团,专管一家人的茶饮香与养生暖,是住在家中茶台的“养生…...

@SpringBootApplication 与 SPI 机制的终极解密

敲代码离不开springboot,少了springboot谁还来替我当牛马——ai欢迎来到 Spring Boot 的“后台控制室”~刚开始、小白的你是否曾有过这样的错觉:“我就加了一个 SpringBootApplication 注解,连 application.properties 都没怎么写…...

1.2指令系统-存储系统-cache

一、指令系统 00:02 1. 计算机指令的组成 00:03 基本结构:由操作码和操作数两部分组成,以二进制编码形式存放在存储器中操作码:决定要完成的操作(如加法、减法),用二进制数码表示操…...

水厂、电站、化工厂用的闸阀一样吗?

闸阀是工业里最常用的全开全关型阀门,很多人以为闸阀都是通用的,不管哪个行业都是同一种。但实际上,水厂、电站、化工厂的工况天差地别,对应的闸阀在材质、压力、密封等标准上完全不一样,用错了轻则可能漏液&#xff0…...

S7-1200 PLC 高级语言SCL数控G代码功能块源文件

S7-1200PLC 高级语言SCL数控G代码功能块源文件 整个G代码解析的程序做成了一个FB功能块,利用1200PLC内置的字符串控制指令来实现拆分提取字符串信息;整个程序的大概思路就是1.解析指令 2.提取数据 3.判断书否输入有错误 把提取出来的数据对应上并且赋…...

新概念英语第一册037_Making a bookcase

Lesson 37: Making a bookcase. Watch the story and answer the question What is Susan’s favourite colour? Pink.Key words and expressions work 工作hard adv. 努力地make 做bookcase 书橱,书架hammer 锤子paint …...

【AI】创建 claude code cli 风格的欢迎界面

使用高级 ANSI 字体生成器(Text to ANSI) 不要局限于 Python 自带的 pyfiglet 字体。你可以去一些专业的 ANSI Art 网站生成文本,然后直接把生成的字符串复制到代码里。 去 TAAG (Text to ASCII Art Generator)。 尝试使用 Sub-Zero、ANSI …...

【网络安全入门】一文讲透:核心属性、主流攻击手法与防御体系

网络安全(Network Security)是指通过采取必要措施,防范对网络的攻击、侵入、干扰、破坏和非法使用以及意外事故,使网络处于稳定可靠运行的状态,以及保障网络数据的完整性、保密性、可用性的能力。通俗来说,…...

OpenClaw:新一代AI Agent开发平台,让聊天更智能

OpenClaw:新一代AI Agent开发平台 OpenClaw是一个强大的AI Agent开发框架,支持多种通信渠道。 核心特性 多渠道支持内置浏览器控制强大的记忆系统 为什么选择OpenClaw? 开源免费:基于MIT协议,完全开源易于扩展&am…...

不断提升维修技能是医疗器械维修工程师职业发展更好的必要条件

凛冬已过,春山可望,在医疗维修行业经过这两年的洗牌,未来将变得更干净、透明,留下的也将是更健康且有活力的行业生态。长远来看医疗器械售后维修这块更是走向高质量发展路径。不断提升维修技能是医疗器械维修工程师职业发展更好的…...