网易首页 > 网易号 > 正文 申请入驻

续命 MinIO:承诺兑现

0
分享至

两个月前,我在《》里立了一个 flag,接盘上游跑路留下的烂摊子,跟 CVE 修 Bug。那篇文章上了几个小时的 Hacker News 首页头条。鼓励不少,质疑也不少:一个人,真维护得了这种项目吗?

这个问题其实问得很好。因为真正见真章的时刻,不是点 fork 按钮,也不是改 README 文档,而是当安全漏洞真砸下来的时候。现在,这件事可以交账了。

4 月 15 日到 17 日,三天时间,pgsty/minio 发布了 RELEASE.2026-04-17,连续修掉并关闭了 4 条 CVE 加几条同期披露的安全漏洞,OIDC JWT 算法混淆(CVSS 9.8)、LDAP 登录用户名枚举与暴力破解、复制头元数据注入导致对象不可读、S3 Select 超大记录打穿内存,以及两条 unsigned-trailer 写入路径上的签名绕过。

A promise made, a promise kept.

上游发生了什么

2025 年 12 月,MinIO 把开源仓库改成 维护模式[3]。README 里写着 “安全修复会逐例评估”。 到 2026 年 2 月,仓库直接归档,首页变成了 “当前仓库已经不再维护”。但同一个仓库的 SECURITY.md[4] 还留着:“我们总会为最新版本提供安全更新”。

而最近一个月,MinIO 又暴漏出四个高危漏洞,两个中危,覆盖最后的开源版本。而在官方公告里写道:他们的商业版本 AIStor 修复了这些问题,给开源用户的建议是:“升级到 AIStor”。


顺便一提,MinIO AIStor 入门起步价约 10 万美元/年,400 TiB,单价基本跟 AWS S3 差不多 —— 离了大谱,毕竟这是纯软件。一种很精致的玩法。仓库归档了,道义责任撇清了;但 CVE 通告照发,既能刷一波 “我们很负责任” 的存在感,又恰好能把用户赶进商业版的羊圈。

只是还得有人得把这坑填上。

这次修了什么

这篇文章我不想写成漏洞分析报告。具体每一条的 CVSS 分数、攻击链、PoC 代码,我在 发布注记[5] 里都一一列了,感兴趣的朋友可以去看。这里只说一句话版本:

CVE-2026-33322(OIDC JWT 算法混淆,CVSS 9.8):在特定 IdP 配置下可以伪造任意身份,包括 consoleAdmin。攻击者只要知道 OIDC ClientSecret,数学上就能签出一张 “我是管理员” 的通行证,MinIO 会乖乖验证通过。影响范围从 2022 年 11 月到今年 3 月,三年半。•CVE-2026-33419(LDAP STS 登录枚举与暴力破解):攻击者可以先用登录接口枚举出真实用户名,再无速率限制地爆破密码,最后直接拿到 STS 凭证。整个链条从头到尾没有一道闸。•CVE-2026-34204(复制头元数据注入):普通 PUT / COPY 请求里夹一些 X-Minio-Replication-* 头,就能把对象写成永久不可读状态,数据还在,但你再也读不出来。•CVE-2026-39414(S3 Select 内存耗尽):一条恶意请求,就可以把 MinIO 进程吃到 OOM。•GHSA-hv4r-mvr4-25vw / GHSA-9c4q-hq6p-c237:unsigned-trailer 路径上的两条签名校验绕过,匿名或伪造签名的请求可以在某些路径下成功写入对象。


再加上 go-josego.opentelemetry.io 和 Go 1.26.2 自身吸收的一连串标准库与依赖 CVE,这一版本聚合了接近二十条安全条目。

有的能伪造身份拿到高权限访问,有的能把登录入口拿去枚举和爆破,有的能把对象写成永久不可读,有的能用一条请求把服务吃到 OOM,还有的能在缺失签名校验时直接写入对象。这不是小修小补,这是实打实的维护责任。

这次怎么修的

在之前那篇文章里,我明确说过我会用 AI Coding Agent 来维护这个项目,事实上我也是这么做的。这一轮修复里,我扮演了一个 Blind Manager 的角色。

简单解释一下我的工作范式。具体到每一条漏洞,流程大致是:

1.Codex 先打铁:根据 CVE 描述和相关代码路径,产出第一版补丁。2.Claude Code 做 review:站在对抗视角挑毛病。3.回到 Codex:我要求它,如果你同意 Claude Code 的意见,那就返工;如果不同意,那就反驳,把理由写清楚。4.把所有思路摊开,再交给 Claude Code 做一轮 review。必要时来回再跑几轮,直到两边收敛。5.进行测试:依然是类似的对抗操作,由 Codex 设计测试用例,Claude 补充。然后由 Codex 去实际执行并产出结果,再由 Claude Code review。6.我来定夺:看 diff,跑测试,做最后决策与验收。

这个过程中,我自己不写一行代码。我的工作是定义问题、约束边界、挑方案、看 diff、跑验收、拍板。

公开提交页上,你能直接看到 VonngCodexClaude Code 三个名字同时出现在几条关键安全提交的 Co-authored-by 里。这不是作秀。这就是 2026 年一个人维护一个中型基础设施项目的真实样子。


这种协作模式有几个实际的好处。

第一,两个 agent 对抗能筛掉大部分“听起来都对、实际上不对”的方案。 单独一个 agent 在修复安全漏洞时会有一种 “幻觉级自信”,写出一份解释流畅、看起来干净的补丁,但漏掉了一个边界条件。让另一个 agent 从敌对视角审视它,这种方案很难活过第一轮。

第二,逼出显式的权衡。 两家不同实现路径撞上了,自然就要回答 “为什么你选 A 而我选 B”。这个对话本身就是在把隐性假设显性化,而显性化的假设,才是我作为 Blind Manager 能拍板的东西。

第三,真正的维护是“补丁打补丁”,而不是一把梭。 拿 LDAP STS 这条洞来说,首版修复推出来以后,很快发现成功请求不该消耗限流额度、默认不该信任 X-Forwarded-For、限流账户要按 “源 IP + 归一化用户名” 双维度算账。 然后又连着补了三次提交才算收敛干净。这个过程如果没有 agent 的火力支持,单个 maintainer 要一边读代码一边迭代,成本是完全不一样的。


有些事还是要人来拍板

但也正因为这个模式运转得不错,maintainer 唯一的不可替代性,就凸显在那些 AI 给不出最后答案的地方。

最典型的就是 OIDC 那条 fix。表面上,它是一个 JWT 算法混淆漏洞;但实质上,它是一个兼容性和安全性之间的取舍

简单解释一下。JWT 的签名算法分两类:非对称(RS256、ES256 这类,签名用私钥、验签用公钥)和对称(HS256 这类,签名和验签用的是同一个密钥)。OIDC 的标准姿势是 IdP 用自己的私钥签 token、MinIO 用公开的 JWKS 拿到公钥来验签。公钥是公开的,攻击者拿不到私钥,所以没法伪造。

而 HS256 这类对称算法的问题在于:签名和验签用的是同一个密钥。这个密钥就是 MinIO 自己也存着的 ClientSecret。于是攻击者只要拿到这个 “共享秘密”,就既能当裁判又能当运动员。自己用它签一张 token,MinIO 拿自己存的同一个密钥一验,当然通过。

这在教科书上是 JWT 的经典反模式,但历史代码就是这么走过来的。修法有几条路可选:

继续容忍这条历史路径,只在某些条件下收窄:保留向后兼容,但安全边界依旧模糊。•严格 JWKS-only,拒绝 HS256 等对称签名 token:一刀切、安全边界清晰,但少数本来就配得模糊的用户会感到配置失效。

两个 agent 可以给我列出每个方案的 trade-off,可以写好任何一个方案对应的补丁,但它们不会替我决定。最后我的选择是后者,恢复严格的 JWKS-only 验证路径,明确拒绝不该接受的 HS256。

这个决定也许会让少数模糊配置失效,但安全边界终于清楚了。AI 可以提三个方案,真正承担后果的人还是 maintainer

这就是 Blind Manager 模式的上限,也是下限:机器负责穷尽方案,人负责选择方向。

不是情怀,是必需

我一直说,这个 fork 不是情怀,也不是 cosplay。它存在,首先是因为这是我自己要用的东西。

MinIO 是 Pigsty 的生产依赖。我需要可用的二进制、完整的控制台、持续可得的包,以及真正有人处理的 CVE 补丁。也正因为我自己在用,所以这条线没有太多空话空间:它不是拿来讲故事的,而是拿来顶生产环境的。

这也决定了我的策略很保守。不会去追求 “新特性很酷”,也不会把仓库弄成另一个方向的实验场。我的目标一直都很明确:保持兼容,守住供应链,在该修的时候把问题修掉。

到现在,这个分支在 GitHub 已经有了 1300 star,在 Docker Hub 也累计了 五万+ 下载。数字本身不算什么惊人的成就,但它至少说明了一件事:需要这条线的人,并不只有我自己。


对已经在用 MinIO 开源版的人来说,迁移到这个分支的成本其实很低:

Docker 镜像:把 minio/minio 换成 pgsty/minio,一行的事。•RPM / DEB:GitHub Release[6] 里都有,或者用 pig 一键装。•源代码仓库:pgsty/minio[7]•文档镜像站:silo.pigsty.cc[8]•英文文档:silo.pigsty.io[9]

你不需要换掉整个系统,也不需要重新学习一套对象存储;多数情况下,只是把一个失去维护的上游,替换成一个还会继续交付补丁的分支。

如果你需要完整的生产级部署方案,Pigsty 里也提供了开源免费、开箱即用的 MinIO 生产级高可用部署支持。


承诺是什么

对老冯来说,这就是一件很普通的事情,用的东西坏了,自己修一下。仅此而已。

只是到了 2026 年,“自己修一下” 这件事的门槛,被 AI Coding Agent 重新定义了。一个人,加两个 agent,加一点点判断力,足以把一个六万 star 的中型基础设施顶起来。这不是我厉害,这是时代变了

以前我们谈论开源的韧性,谈的是 “社区”,几十上百个志愿者众筹时间。现在这套剧本还在,但底下多了一层保险:哪怕社区散了,只要有一个人还愿意按下 fork 按钮,项目就能续命。

承诺是什么?承诺是 “下一个 CVE 出来的时候,我还在”


下一个 CVE 出来的时候,老冯还在。

就这样。


References

[1] MinIO 已死,MinIO 复生: https://vonng.com/db/minio-resurrect/
[2]RELEASE.2026-04-17:https://github.com/pgsty/minio/releases/tag/RELEASE.2026-04-17T00-00-00Z
[3]维护模式: https://github.com/minio/minio/commit/27742d469462e1561c776f88ca7a1f26816d69e2
[4]SECURITY.md: https://github.com/minio/minio/security
[5]发布注记:https://silo.pigsty.cc/reference/release-note
[6]GitHub Release:https://github.com/pgsty/minio/releases
[7]pgsty/minio:https://github.com/pgsty/minio
[8]silo.pigsty.cc:https://silo.pigsty.cc
[9]silo.pigsty.io: https://silo.pigsty.io

数据库老司机

点一个关注 ⭐️,精彩不迷路

对 PostgreSQL, Pigsty,下云,AI 感兴趣的朋友

欢迎加入 PGSQL x Pigsty 交流群 QQ 619377403

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
哈兰德与女友长相出众,女友长得像洋娃娃,十分登对,浪漫幸福

哈兰德与女友长相出众,女友长得像洋娃娃,十分登对,浪漫幸福

娱你同欢
2026-08-30 18:30:43
泽连斯基警告:所有航空公司不要飞越俄罗斯上空,俄空域不再安全!普京:属于“国家恐怖主义” 将回应,不会同 “恐怖分子”谈判

泽连斯基警告:所有航空公司不要飞越俄罗斯上空,俄空域不再安全!普京:属于“国家恐怖主义” 将回应,不会同 “恐怖分子”谈判

每日经济新闻
2026-09-02 21:35:47
美国地勤不拔油管扯爆国航油箱?国航回应:CA982航班在纽约肯尼迪国际机场地面加油作业时,加油车非正常移动,导致飞机相关部件损伤

美国地勤不拔油管扯爆国航油箱?国航回应:CA982航班在纽约肯尼迪国际机场地面加油作业时,加油车非正常移动,导致飞机相关部件损伤

潇湘晨报
2026-09-02 18:04:59
别再逼娃9点10点睡觉!2026科学结论:宝宝真正黄金入睡点是这个

别再逼娃9点10点睡觉!2026科学结论:宝宝真正黄金入睡点是这个

另子维爱读史
2026-09-03 20:32:19
美国军力有多强?美专家曾言:若动真格,全球联合起来也打不过

美国军力有多强?美专家曾言:若动真格,全球联合起来也打不过

墨策史
2026-09-03 20:10:35
福建仙游县突发山洪,一栋三层民房被洪水冲垮;镇政府:无人员伤亡;当地发布暴雨红色预警

福建仙游县突发山洪,一栋三层民房被洪水冲垮;镇政府:无人员伤亡;当地发布暴雨红色预警

大风新闻
2026-09-03 13:48:09
建议中年女人:阔腿裤下面别配小白鞋,学叶童穿这“秋鞋”更高级

建议中年女人:阔腿裤下面别配小白鞋,学叶童穿这“秋鞋”更高级

时尚穿搭生活馆
2026-09-03 20:31:15
曾泽生率部起义后妻子李律声和三个孩子被抓,蒋介石下令严加处置,滇军同乡调动重兵强行劫狱

曾泽生率部起义后妻子李律声和三个孩子被抓,蒋介石下令严加处置,滇军同乡调动重兵强行劫狱

磊子讲史
2026-09-02 14:09:42
造谣抹黑中国,阿根廷官员被要求向国会解释

造谣抹黑中国,阿根廷官员被要求向国会解释

环球时报国际
2026-09-03 19:24:22
50岁林心如在九寨沟拍摄被偶遇, 原相机无美颜,导游:本人更美!

50岁林心如在九寨沟拍摄被偶遇, 原相机无美颜,导游:本人更美!

可乐谈情感
2026-09-03 06:46:19
菲律宾前教育部幕僚长:萨拉·杜特尔特将上亿巨款转给安全官员

菲律宾前教育部幕僚长:萨拉·杜特尔特将上亿巨款转给安全官员

亚太观澜
2026-09-03 20:45:05
曝景甜与孙宇晨闹掰的真相:男方设局想套牢她,5000万美金是房款

曝景甜与孙宇晨闹掰的真相:男方设局想套牢她,5000万美金是房款

生命之泉的奥秘
2026-08-29 20:53:20
贾玲又胖起来,本人回应:实在维持不住,网友:我们玲儿又回来了

贾玲又胖起来,本人回应:实在维持不住,网友:我们玲儿又回来了

喜欢历史的阿繁
2026-09-02 09:16:34
3300万粉丝网红,偷税被罚347.7万元

3300万粉丝网红,偷税被罚347.7万元

第一财经资讯
2026-09-03 19:05:43
“沙德尔”成台风界“老登”,连续三次登陆后,大概率将在广东内陆或近海逐渐消散

“沙德尔”成台风界“老登”,连续三次登陆后,大概率将在广东内陆或近海逐渐消散

三湘都市报
2026-09-03 19:39:11
出大事了!伊朗总统开会还没回国,亲生儿子就要被革命卫队定罪?

出大事了!伊朗总统开会还没回国,亲生儿子就要被革命卫队定罪?

温读史
2026-09-03 04:42:26
足协杯四强出炉!上半区谁赢谁冠军?海港势头正盛,下半区出黑马

足协杯四强出炉!上半区谁赢谁冠军?海港势头正盛,下半区出黑马

祥谈体育
2026-09-03 20:15:13
“我是医院纪委书记,孩子妈是学院副处长”,家长在班级群自报干部身份,最新进展:保定市卫健委称纪检组已介入;保定教育局:系个人行为

“我是医院纪委书记,孩子妈是学院副处长”,家长在班级群自报干部身份,最新进展:保定市卫健委称纪检组已介入;保定教育局:系个人行为

都市快报橙柿互动
2026-09-03 13:25:46
女子拉萨旅游花8万买藏刀,4年后重游店主见刀傻眼:这次竟要30万回收?

女子拉萨旅游花8万买藏刀,4年后重游店主见刀傻眼:这次竟要30万回收?

坠入二次元的海洋
2026-09-01 11:52:06
深圳校服火“出圈”!全市统一,企业自由竞争,价格杀到几十元

深圳校服火“出圈”!全市统一,企业自由竞争,价格杀到几十元

界面新闻
2026-09-01 21:46:36
2026-09-03 21:35:00
老冯云数 incentive-icons
老冯云数
数据库老司机,云计算泥石流,PostgreSQL大法师
230文章数 60关注度
往期回顾 全部

科技要闻

大模型扎堆!谷歌刚发,Meta就跟上

头条要闻

乌克兰两大情报机构街头交火 冲突爆发的根本原因披露

头条要闻

乌克兰两大情报机构街头交火 冲突爆发的根本原因披露

体育要闻

梅西:巴萨10号与阿根廷10号

娱乐要闻

王宝强携女友回工作室!相恋8年仍未婚

财经要闻

章子怡套现3亿 上美拿什么补韩束的缺?

汽车要闻

宾利托卡尔性能揭晓 电驱时代释放品牌史上最强动力

态度原创

时尚
亲子
房产
公开课
军事航空

“卡普里裤”今年秋天又流行回来了,这样穿时髦又显高!

亲子要闻

工程车小故事 #儿童益智类手工玩具

房产要闻

投资50亿!三亚又一重大配套,方案曝光!

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

乌特工内战街头对射 互认对方为"俄特工"

无障碍浏览 进入关怀版