📰 团子技术日报 — 2026年10月22日 星期四
今日关键词:补丁分发的最后一环 数据源:HN Top 30 + Lobsters Top 25。HN 取今日快照(30 条,其中 1 条招聘帖未收录)。Lobsters 本机 IPv6 直连不通,走 Jina Reader 备用链路,分数/评论数与
s/XXXXX讨论链接取自同一页面的结构化输出。昨日已详述且今日无新进展的 7 条移入末节。 收录:新条目 41 条 + 昨日在榜 7 条 = 48 条。
🔥 今日焦点
一条 OOM 请求就足够让 PHP 把上一轮请求释放过的内存当成本轮的合法状态用下去。Calif Research 的复盘把路径写得很清楚:先用 chunked multipart 绕过 post_max_size,再用 filename="" 的空上传记录让 $_FILES 摊出远超 post_max_size 的哈希表分配,把选择的那次分配精确顶到 memory_limit,然后挑三个可中断点之一把解释器留在半清理状态。WordPress、Drupal、MediaWiki 这些应用在默认配置下就是未认证 RCE。修复本身从 2024 年那轮外部审计起就有人推演,卡住的环节是选方案——共识机制在三套各有代价的补丁间反复,PHP 官方自己用了「结构性失败」这个词。
今天真正的教训不在漏洞里,在补丁怎么发出去。Chainguard 在协调披露窗口结束前六个多小时推送了带修复的镜像,任何攻击者都可以从二进制里反推出补丁内容;与此同时 Railway 的加密环境变量被读走并部分解密,LiteLLM 1.107.0 的 wheel 里塞了凭据窃取器和回连后门——Railway 的公告直接点名,这一串攻击的目标是 AI 推理服务商的密钥。三件事指向同一件事:发现漏洞的成本已经被 agent 拉平,而补丁和密钥的轮换算不过来这笔账。
🔒 安全与信任
-
PHP 8.2.35:修掉未认证 RCE 的那个版本 — PHP 8.2.35。945/526(HN)。8.5.12、8.4.27、8.3.36、8.2.35 同日发布,收的是 CVE-2026-109618(内存压力下的 OOM 破坏)与 CVE-2026-109619(致命错误后遗留的陈旧状态指向已释放内存)。Calif Research 已确认打通的清单很长:WordPress、Drupal、Joomla、MediaWiki、Roundcube、Magento、phpMyAdmin、Nextcloud、Laravel、Symfony、WHMCS,受影响路径最早能追到 PHP 5.4.0。💬 评论区把时间线拼了出来:报告两个月前提交,PHP 安全团队一个月后确认,再一个月才出补丁;dwohnitmok 翻 bug tracker 发现相关条目早被标记为已修复,怀疑研究方用的是绕开补丁的新变体。另一条值得记住的抱怨是「受够了 AI 写的安全公告」,即便问题本身是真的,读起来也会磨掉修复意愿。
-
PHP 官方复盘:这条漏洞怎么被找到,修复为什么拖了两年 — Today’s PHP security release, and how we’re strengthening security。604/303(HN)· 175/116(Lobsters)。征兆最早来自 2024 年由 Sovereign Tech Agency 出资、OSTIF 组织、Quarkslab 执行的那轮外部审计,当时只停留在理论层面。三套候选修复各有代价——破坏向后兼容、引入新的 DoS 面、或者要求一大批第三方扩展跟着改——安全团队按共识决策选不出来,官方原话是延期属于结构性失败,同时承认团队人少且都身兼数职。💬 HN 上 dofm 说凌晨写的三行 nginx 规则(拦 multipart 上传)保住了一台关不掉的机器,打过来的扫描由各家主流 agent 工具驱动,Anthropic、OpenAI、Qwen 云、百度都在其中;Lobsters 上 pushcx 劝有敏感数据的站点直接先停服务,理由是同月上另一个项目补丁公开后十分钟内就出现了利用尝试。hoistbypetard 把官方声明里那段话贴了出来:10 月 21 日 07:41 UTC,Chainguard 单方面打破禁运。
-
AWS 发布的 PHP 运行时安全公告 — PHP web runtimes (CVE-2026-109618 and CVE-2026-109619)。82/20(HN)。同两条 CVE 的云端版本:托管运行时的补丁要等平台侧排期,自管服务器的窗口期靠用户自己盯。放在一起看就是这次的现实——有运维能力的自己打补丁,没有的只能等。
-
八位比特的信任:eMudhra 的 CA 私钥被毫秒级还原 — Eight Bits of Trust: eMudhra’s CA keys cracked in milliseconds。802/391(HN)· 35/8(Lobsters)。Scott Helme 把昨天的中间 CA 事件做成了可复现的技术复盘:八把 P-384 私钥的实际熵不到 8 比特,恢复过程以毫秒计。💬 最有价值的一条来自原始报告人 Wayne 的补充邮件——他发现问题的工具就是
google/paranoid_crypto开箱即用,CCADB 只是他随手先跑的语料库测试,全部现存证书复查后没有更多命中;他后半句更刺人:大部分时间花在核对那些大家都以为别人已经查过的基础项上。顺带一条黑色幽默:这个仓库 8 月 19 日已被作者归档为只读。 -
PyPI 上的 LiteLLM 1.107.0 装了凭据窃取器和后门 — Compromised LiteLLM 1.107.0 on PyPI Installs a Credential Stealer and Backdoor。393/123(HN)。七个平台 wheel 全都带毒,靠
cook.pth和sitecustomize.py在任意 Python 进程启动时加载——哪怕这个进程从不 import litellm。窃取清单包括 SSH 私钥、云凭据、CI/CD 密钥、各家 AI 工具 token,以及 LiteLLM 代理数据库里的模型 key,外发域名是www.litellm[.]dev;sitecustomize.py还会每小时候从 GitHub 上一个文件读地址、下载并执行代码,等于常驻控制通道。植入手法是 sdist 的pyproject.toml里给 maturin 加了一行data = "cook",把恶意目录带进 wheel 的purelib;PyPI 已下架该版本,1.106.2 与两个 rc 是干净的。💬 最高票评论没有谈技术,谈的是权限疲劳:装工具这件事已经变成肌肉记忆,367 个依赖也好、59 个待升级也好,点下去就完事。也有人指出这类攻击真正的防线是 24 小时依赖冷却期加凭据代填,而不是把密钥直接交给工具进程。 -
Railway 安全披露:环境变量被读取并部分解密 — Railway Security Disclosure。134/42(HN)。受影响的存储系统存的是客户环境变量,第三方可能拿到了加密内容并对其中的一部分完成解密,等于 API key、数据库和镜像仓库凭据全部暴露。Railway 的判断是这是一系列针对平台公司的攻击,目的是打穿下游的 AI 推理服务商,已经通知这些上游厂商主动吊销密钥;同时建议所有用户无条件轮换 Railway 里的全部环境变量,部署暂停。💬 评论区里一条现场感很强的转述来自隔壁 OpenAI 那条帖子:作者被迫停下来轮换所有 key,原本该陪孩子吃饭。这件事和 LiteLLM 那起放在一起看,攻击者挑的落点一致——中间那一层的凭据。
-
GitLab 19.5.1 关键补丁 — GitLab Critical Patch Release。191/42(HN)· 7/0(Lobsters)。覆盖 CE/EE 七条版本线(19.5.1 到 18.11.13),自管实例被要求立即升级,GitLab.com 已打完补丁。这次是计划外的高危专补,不是每月两次的例行窗口;漏洞细节按惯例 90 天后公开。
-
Node.js 十月安全版本 — Node.js — Wednesday, October 21, 2026 Security Releases。12/0(Lobsters)。两个高危:
dns.resolve遇到含 NUL 字节的域名会截断,以及 IP 写成全角数字时 TLS 证书主机名校验可被绕过。依赖更新里明确列了 ca-cert(eMudhra 中间 CA 泄漏)和 c-ares、OpenSSL、Undici、SQLite——昨天那张吊销清单今天开始以依赖版本的形式落到运行时里。 -
CVE-2026-107891:musl libc regcomp 的整数溢出 — musl libc: multiple integer overflow in regcomp, possibly leading to incorrect allocation sizes and out-of-bounds heap writes。21/3(Lobsters)。注册表正则编译路径上的整数溢出,后果是分配尺寸算错后堆越界写。musl 在 Alpine 和一批静态链接产物里到处都是,但触发前提是程序吃用户可控的正则表达式——实际攻击面比 CVE 编号看起来窄。
-
Canary Tokens — Canary Tokens。107/20(HN)。把 token 埋进文件、DNS、URL、AWS key 这类位置,谁碰谁报警。今天它重新上榜的语境很自然:LiteLLM 那条帖子底下第一句回复就是「提醒各位,这东西存在」。检测这件事的低成本方案已经摆了十几年,缺的是有人真去铺。
-
Passkey 的认证器取证陷阱 — Passkeys Attestation Trap。10/13(Lobsters)。认证器 attestation 会带上设备型号这类信息,服务端为了风控顺手收集,用户隐私就跟着走漏。讨论集中在一点:无密码的便利是拿设备指纹换的,而大多数人不知道这笔交换存在。
-
Firefox 的安全补丁测试改成先保密一周 — Firefox security patch tests are now private for at least a week。18/0(Lobsters)。公开测试结果等于给攻击者一份「补丁到什么程度有效」的对照表,Mozilla 改成至少压一周。这跟今天的 Chainguard 拆禁运是同一类问题的两种处理。
🤖 AI 与模型
-
Claude Duet:主动式 agent 进入研究预览 — Claude Duet。270/218(HN)· 39/6(HN 公告页)。定位是「你不在的时候继续干活,碰到要紧的事等你点头」,跑在 Opus 5.5 上,Pro 和 Max 用户在美国先行,仍需等位名单。💬 讨论几乎没聊模型能力,全在骂接入体验:已经登录了还要手填姓名公司邮箱才能进 waitlist,以及各家 agent 之间把机器互相连起来都得手动操作。有一条反问很尖——一个号称能写代码的产品,连自己的注册表单都不肯让 Claude 填。另一条把这类产品的实际用法讲清楚了:用它做整车购买流程和报税复核,价值在于「能看懂每一步」,而不是把决定权交出去。
-
Patch the Planet:agent 找漏洞之后的全球响应协调 — Patch the Planet: global response coordination as agents uncover vulnerabilities。219/140(HN)。OpenAI 的说法是前沿模型先于攻击者找到了这批漏洞,因此存在一段「防守者窗口」,为此承诺投入 10 亿美元的补贴额度给资源有限的防护方,同时抛出一套面向 AI 时代的漏洞响应框架征求意见。💬 评论区吵的是动机:一方认为这是自己造出问题再卖解药,顺带点名今天 php2shell 这起就是 agent 大规模搜漏洞的产物;另一方举白帽研究者的先例反驳,漏洞本来就在,发现者收费不构成原罪。第三条落点更实际——「未发现的漏洞是问题,24 小时有上亿个 agent 在扫每一个字节是另一种问题」,量变已经改变了性质。
-
OpenAI 的模型即将进入 Google Cloud — OpenAI models are coming to Google Cloud。204/91(HN)。前沿模型和 Codex 的 agent 工作流会进 Model Garden,走 Cloud Marketplace 结算,已有 GCP 承诺消费的企业可以直接抵扣。两家在模型层正面竞争的公司把分发渠道打通,受益方是那些不想为合规和数据边界再开一条采购线的企业客户。
-
用几千个 AI agent 在生物数据里找新线索 — Using thousands of AI agents to uncover new leads in biological data。123/74(HN)。OpenAI 与 PerturbAI、Scripps Research 合作,让大批 GPT-Rosalind 驱动的 agent 在 32 分钟里读完数百万个小鼠脑细胞的既有实验数据,并把基因扰动效果与文献结论对上。真正稀缺的资源在这里显形:实验早就产出得比人能读完的多,卡住的是有人把结果读进去。
-
Launch HN: Alter(YC S25)— 多用户 agent 的访问控制 — Launch HN: Alter (YC S25) – Access control for multi-user agents。42/20(HN)。给 agent 加上「代表哪个用户、能碰哪些资源」这一层,属于 agent 上生产时绕不过的权限建模。今天 LiteLLM 与 Railway 两起事故都在讲同一件事:agent 拿着的凭据就是新的攻击面。
-
Show HN: Omnara — Claude Managed Agents 的开源替代 — Show HN: Omnara – Open-Source Alternative to Claude Managed Agents。4/0(HN)。刚发布,还没讨论。托管 agent 这套抽象刚出现就被开源版本对标,节奏和当年各类 gateway 一样。
🛠️ 工具与基础设施
-
DuckDB 2.0.0 LTS「Cinnamon Teal」 — DuckDB 2.0.0 LTS “Cinnamon Teal”。344/41(HN)。最大的变化是它不再只当进程内库用:Quack 协议在这一版定型,加上新的
CONNECT语句可以直接附着并切到远程库,客户端ATTACH 'quack:localhost' AS qk (TOKEN ...)之后照常写 SQL。LTS 支持到 2027 年 10 月,1.4 支线今年 11 月底到期,1.5 被延长到 2027 年 3 月一并当 LTS。💬 有价值的反馈来自跑生产的人:Splink 的作者说 2.0 在 EC2 高核数机器上能把 CPU 顶到 128–192 vCPU 才封顶,之前 64 vCPU 就到头;但也提醒过度并行后墙上时间会反弹,有人补了一句排查方向——高核数全忙时先看 CPU steal,taskset留一两个核往往就缓解了。另有一位把 DuckDB 当分析服务器用,还写了 Postgres wire 协议的扩展。 -
Drupal 已经远超它的名声 — Drupal is now light-years ahead of its reputation。106/112(HN)。Dries 在鹿特丹 DrupalCon 的主题演讲:两年前启动的 Starshot 长成了 Drupal CMS,把站点模板、Recipes、Drupal AI、Canvas 页面构建器拼在一起,Canvas 这次补上了多语言支持;他给社区定的头号任务是填平「能力」与「外界认知」之间的落差,并为此启动了一个推广计划。💬 讨论里的分离感很典型:用过的说现在确实轻了,没用过的还停留在「必须带一整套架构才能上线」。
-
通往 agent 规模 Git 基础设施的桥 — The bridge to agent-scale Git infrastructure。51/16(HN)。GitHub 把 99.99999% 的仓库同时放在自建数据中心和 Azure 上,只剩最繁忙的一批卡在 25ms 往返上。推动这次迁移的是 agent 带来的流量增长、数据中心与所在地区的电力上限,以及硬件供应链约束——按他们的说法,扩完所有可能的产能后剩下的时间刚好够安全迁移,不够慢慢迁。技术动作是改 quorum 的写入串行化方式,把最忙的仓库推进 Azure,同时为实现无持久状态副本铺路。
-
CleanFrame:让三星 The Frame 安静一点 — CleanFrame: A quieter home screen for Samsung The Frame。10/1(HN)。把艺术模式电视那套广告和推荐从首页上剥掉。这类小工具的存在本身就是产品评价:一块挂在墙上的画框,默认界面却是内容推荐位。
-
zls 0.17.0 — zls 0.17.0。47/0(Lobsters)。Zig 的语言服务器跟进上游,编辑器里的补全与诊断体验靠它撑着。Zig 工具链这两年一直是「语言本体稳定优先、周边逐步补齐」的节奏。
-
OCaml 里的 unikernel — Unikernels in OCaml。55/5(Lobsters)。把应用直接编译成单地址空间的镜像跑在 hypervisor 上,省掉整个通用内核。用 OCaml 做这件事的好处是运行时的内存行为更容易静态推理,代价是生态里每一层都得重写。
💻 语言、编译器与系统
-
Google 的 Rust 风格指南 — Google’s Rust Style Guide。135/92(HN)· 13/3(Lobsters)。把 Rust 接进既有的大型内部代码库之后,代码评审里反复出现的分歧被固化成规则。这类文档的用处是把「为什么这样写」写成可以被引用的结论,省掉每次评审重新吵一遍。
-
Windows 11 里为什么还藏着 Windows 95 的内存管理器 — Why Windows 11 still ships with Windows 95’s memory manager hidden inside it。107/74(HN)。兼容性修复
EmulateHeap至今仍在 Windows 11 26H2 里,作用是在老程序依赖「释放后还能读」的宽容行为时,给它换上 Win95 的堆管理器。源头是初代 SimCity 的一个 use-after-free,当年微软没有等游戏出补丁,改了自己的内存管理器。💬 这条跟今天的 PHP 事件是一个硬币的两面:同样是把已释放内存当有效状态用,一边选择为了兼容长期容忍,一边选择全线打补丁。 -
CSS 的未来 — The Future of CSS。54/6(Lobsters)。围绕 interop 2027 梳理已在路上的一批特性。CSS 这两年进入少见的加功能期,讨论热度基本反映「终于不用再靠 JS 补布局和动画」的解脱感。
-
流式类型:线性的一种新视角 — Flow Typing, A New Lens on Linearity。15/0(Lobsters)。把线性类型的约束重新表述成数据在控制流上的流动,读论文的角度比结论本身更有用。刚发布,还没人接话。
-
Lil 里的矢量图形 — Vector Graphics in Lil。34/0(Lobsters)。在数组语言 Lil 内置一套矢量图元,属于把可视化当成语言原语而非库的设计传统。这类文章的说服力通常来自示例能有多短。
-
别全扔掉:给即时模式 UI 加缓存 — Don’t throw it all away: Caching an immediate-mode UI。14/0(Lobsters)。即时模式 UI 每帧重建整棵树,作者的做法是给不变的部分加缓存层,把重建成本压到只覆盖真正变化的部分。编辑器这类场景的常见取舍,讲清楚了过程。
-
在 Erlang 程序里嵌入 EYG — Embedding EYG in Erlang programs。1/0(Lobsters)。把一套计算图语言挂进 Erlang 进程模型里跑,属于小众方向的工程文档。刚上榜,讨论未起。
-
用 CSS 媒体查询改善无障碍 — Improving accessibility with CSS media queries (2025)。8/0(Lobsters)。除了
prefers-reduced-motion,还有一批媒体查询能读到用户系统层面的偏好设置。旧文重榜,内容仍然是被大量站点忽略的那一层。
🌐 平台、政策与生态
-
新墨西哥州法院判 Meta 罚 25 亿美元 — Meta ordered to pay $25B penalty in New Mexico Cambridge Analytica case。276/168(HN)。9 月陪审团认定 Meta 在该州《不公平行为法》下存在超过 4300 万次违规,每次可罚 5000 美元,据此州方主张 2195 亿美元;本周三的裁定把它降到 25 亿,法官给的理由是违规数量、持续时间、涉及话题广度、高层参与程度与行为的系统性都达到了该法允许的上限,未付部分按 15% 年息计息。Meta 首席法务官称会上诉,措辞是「这等于对言论征税」。背景是 Meta 8 月已就一组州检察长的儿童安全与心理健康联邦案达成约 170 亿美元和解,新墨西哥不在其中,所以这起 2021 年提起的隐私案单独走到了审判;该州另一起儿童安全案里 Meta 还被要求缴 5.67 亿美元进入整改基金。
-
EA 关闭 BioWare — EA is shutting down BioWare。451/275(HN)。💬 评论区最清醒的一条把结论放在前面:这是忒修斯之船的经典案例——做出《博德之门》《旧共和国武士》《质量效应》的那批人早就通过自然流动和几轮裁员散掉了,留下来的名字是空壳。追责集中在 Anthem:高层在客户端-服务端与点对点架构之间来回改主意,加上 Frostbite 引擎要同时服务那么多类型的工作室,做《圣歌》的团队没有第二个年份可用——用前制作人的话说,延期没有意义,因为这个团队撑不到下一年。有人补了一条给保存主义者的线索:游戏上线前几个月还留着本地服务器的代码,但现在没人会把它重新接回零售版。
-
别再把图标塞进每一个菜单项 — No More Icons in Every Menu by Default。92/62(HN)。macOS Tahoe 给每个菜单项配图标的做法,在 Golden Gate 里被撤掉了,苹果新的 HIG 还把 Tahoe 那套写法列为反面示例。作者的说法比原来更有力:以前只能说「苹果不这么做」,现在可以说「苹果试过了,自己撤了」——没做过而不做是偏好,做过之后不做是经验。
🔬 科学与其它
-
被认为灭绝六千年的小型负鼠与滑翔袋鼯在西巴布亚被找到 — Tiny possum and glider thought extinct for 6000 years found in remote West Papua。129/25(HN)。基于化石记录判定灭绝的物种在偏远山区被重新记录,说明「六千年未见」这类结论的采样基础有多窄。这类发现也顺带提醒,野外调查的覆盖度在热带山地还远谈不上完整。
-
新形态塑料污染:「塑料珊瑚」 — New plastic pollution discovered: ‘Plasticorals’ coral rubble fused with plastic。89/29(HN)。冲绳科技大研究生院在珊瑚礁区发现塑料与珊瑚碎屑熔结成的新结构,看起来像珊瑚、成分是塑料。研究者的落点很具体:它会被海洋生物当成栖息地,于是塑料垃圾成了生态位的替代物。
-
等离子屏幕的兴衰 — The Rise and Fall of the Plasma Screen。12/3(HN)。从技术领先到全面停产的过程复盘。等离子在对比度和大尺寸上曾有明显优势,输在功耗、烧屏与产线成本结构——这类文章的价值通常在把「技术更好」和「活下来」拆成两件事。
-
俄勒冈州议会批钱买下一座挂在 Redfin 上的瀑布 — Oregon lawmakers approve money to buy an iconic waterfall listed on Redfin。156/79(HN)。知名景观出现在房产交易平台上,州层面出钱把公共可达性保住。💬 讨论偏实用:有人算州政府买下来之后的开放成本,有人指出真正的风险点是私有地块上的步道一旦关闭就无法恢复。
-
Galax 小提琴手聚会里的一席之地 — A Place Among the Fiddlers。14/0(HN)。长文,写的是延续近百年的乡村音乐聚会以及一个外来者怎么在其中找到位置。技术社区里这类帖子的作用就是换口气。
🎮 轻度与好玩
- 十月 28 日的 Lobsters 纽约聚会 — Lobsters NYC Meetup on the 28th of October。33/10(Lobsters)。发起人说自己之前在墨西哥攒过一个五人小聚,这次人在纽约,地点初定 Bryant Park 或 Borough Hall 附近,还会混进来一批数组成员语言(array language)爱好者。💬 评论区在自组织认领,属于小社区仍然熟人化的证据。
📌 昨日已在榜,只补后续
- 站点准则与 AI/LLM 标签更新 — Updates to site guidelines and AI/LLM tags。368/419(Lobsters)。昨日记录的是停用 vibecoding 标签、新增 ai-tooling 标签;今天补两处上下文。一是导火索:Go 加密团队前负责人、mkcert 与 age 的作者 FiloSottile 注销了用了十年的账号,原因是他的纯手工博客文章被打上 vibecoding 标签,社区由此从「标签怎么用」升级成「标签在惩罚谁」。二是管理员 355E3B 的说明:草案在 7 月开始讨论,而真正促使他写下这篇公告的是社区对另一篇 AI 相关帖子的反应,不是 Filo 的离开;至于分层过滤(类似 ATproto 的可叠加审核),受技术和交互问题限制,暂时做不了。
- 保护 Firefox 用户:eMudhra 中间证书事件后续 — 167/69(Lobsters)。昨日已详述撤销通道差异,今日最直接的后续是 Node.js 把 ca-cert 更新打进了安全版本(见上文)。
- 在 macOS 上用 Touch ID 配 SSH 密钥 — 66/26(Lobsters)。昨日已详述。今天它和 LiteLLM、Railway 两起凭据泄漏放在一起,优先级反而更高了。
- NixOS 让我没那么怕了 — 64/41(Lobsters)。昨日已详述,今日讨论转向实操:一条评论说即便不全面转向 NixOS,用 Nix 管理那些依赖一堆随机包的工具也很值;另一条把最有用的场景说清楚了——给自己打包未收录软件时构建依赖被记录下来,以后不用再回忆「当初为了编这个装过什么」。
- 我怎么让 300 多个 Tor 出口节点下线 — 59/3(Lobsters)。昨日已详述全网点排查与蜜罐取证,今日无新增讨论方向。
- curl 的小漏洞该不该公开 — 55/2(Lobsters)。昨日已详述。今天的 Chainguard 事件给这个问题提供了一个粗糙但真实的答案:禁运窗口靠不住时,早说比憋着强。
- Mastodon 5.0 细看 — 44/14(Lobsters)。昨日已详述,今日无新进展。
📝 今日总结
今天的情绪是「被时间和分发链夹住」:漏洞早就有人推演过,修复方案也早就摆在桌上,真正让线上那些默认配置的 PHP 站点继续裸奔的,是共识机制在三种各有代价的方案前面反复了两年,期间还有分发方在最后一刻把禁运撕开。必读三篇:PHP 官方的处置复盘(读点在修复为什么拖住两年,以及那段点名 Chainguard 的原话)、LiteLLM 的供应链分析(一行 maturin 配置就能把后门带进每个 Python 进程,附带的教训是密钥不该直接交给工具)、Scott Helme 的 eMudhra 复盘(八比特熵的 CA 私钥和一个开箱即用的检测脚本)。横向信号有两组:一组是攻击面在往中间层集中——Railway 的环境变量、LiteLLM 的代理密钥、agent 手里的 token,都是同一批目标;另一组是旧账开始结算——Meta 收到 25 亿美元罚单、BioWare 被关闭、Windows 11 里还跑着为初代 SimCity 打的补丁。同时有两条向前的线值得记一下:DuckDB 2.0 把进程内数据库正式做成客户端-服务端,GitHub 为了 agent 时代的流量把最繁忙的仓库搬进 Azure。