跳转到主要内容

PGSTY SILO 博客

  • 续命 MinIO:承诺兑现

    发布于 文章

    postminio

    Featured Image for 续命 MinIO:承诺兑现

    两个月前,我在《MinIO 已死,MinIO 复生》里立了一个 flag,承接上游的烂摊子,跟 CVE、修 Bug。 那篇文章上了几个小时的 Hacker News 头条。鼓励不少,质疑也不少:一个人,真维护得了这种项目吗? 这个问题其实问得很好。因为真正见真章的时刻,不是点 fork 按钮,也不是改 README 文档,而是当安全漏洞真砸下来的时候。 现在,这件事可以交账了。 4 月 15 日到 17 日,三天时间,pgsty/minio 发布了 RELEASE.2026-04-17,连续修掉 …

    两个月前,我在《MinIO 已死,MinIO 复生》里立了一个 flag,承接上游的烂摊子,跟 CVE、修 Bug。 那篇文章上了几个小时的 Hacker News 头条。鼓励不少,质疑也不少:一个人,真维护得了这种项目吗? 这个问题其实问得很好。因为真正见真章的时刻,不是点 fork 按钮,也不是改 README 文档,而是当安全漏洞真砸下来的时候。 现在,这件事可以交账了。 4 月 15 日到 17 日,三天时间,pgsty/minio 发布了 RELEASE.2026-04-17,连续修掉 …

  • CVE-2026-41145:Unsigned-Trailer 查询认证绕过

    发布于 安全编年史

    安全Unsigned Trailer

    Featured Image for CVE-2026-41145:Unsigned-Trailer 查询认证绕过

    状态: 已发布 首个包含版本: RELEASE.2026-04-17T00-00-00Z GitHub Advisory: GHSA-hv4r-mvr4-25vw query-string SigV4 credential 可以进入 STREAMING-UNSIGNED-PAYLOAD-TRAILER 数据流,但旧代码只在存在 Authorization header 时验证签名。结果是:请求只要提供有效 access key 标识,即使没有正确 signature,也可能完成写入。 最终修复把 …

    状态: 已发布 首个包含版本: RELEASE.2026-04-17T00-00-00Z GitHub Advisory: GHSA-hv4r-mvr4-25vw query-string SigV4 credential 可以进入 STREAMING-UNSIGNED-PAYLOAD-TRAILER 数据流,但旧代码只在存在 Authorization header 时验证签名。结果是:请求只要提供有效 access key 标识,即使没有正确 signature,也可能完成写入。 最终修复把 …

  • CVE-2026-40344:Snowball 自动解包认证绕过

    发布于 安全编年史

    安全Snowball

    Featured Image for CVE-2026-40344:Snowball 自动解包认证绕过

    状态: 已发布 首个包含版本: RELEASE.2026-04-17T00-00-00Z GitHub Advisory: GHSA-9c4q-hq6p-c237 Snowball PutObjectExtractHandler 漏掉了 streaming unsigned-trailer auth case。伪造 signature 的 tar stream 可以在认证完成前进入 untar(),而一次请求又能扇出为多个对象写入。最终修复在任何 tar 字节进入解包器之前,初始化正确 …

    状态: 已发布 首个包含版本: RELEASE.2026-04-17T00-00-00Z GitHub Advisory: GHSA-9c4q-hq6p-c237 Snowball PutObjectExtractHandler 漏掉了 streaming unsigned-trailer auth case。伪造 signature 的 tar stream 可以在认证完成前进入 untar(),而一次请求又能扇出为多个对象写入。最终修复在任何 tar 字节进入解包器之前,初始化正确 …

  • CVE-2026-39414:S3 Select 超大记录与 SIMD 绕过

    发布于 安全编年史

    安全S3 Select

    Featured Image for CVE-2026-39414:S3 Select 超大记录与 SIMD 绕过

    状态: 已发布,六月完成二次闭环 初始修复版本: RELEASE.2026-04-17T00-00-00Z 完整修复版本: RELEASE.2026-06-18T00-00-00Z GitHub Issue: pgsty/minio#25 四月的第一轮修复使用既有的 1 MiB maxCharsPerRecord 同时限制 CSV 与普通 JSON Lines,避免在遇到分隔符前持续无界 buffering,并让客户端得到明确的 OverMaxRecordSize。六月复核却发现,支持 SIMD …

    状态: 已发布,六月完成二次闭环 初始修复版本: RELEASE.2026-04-17T00-00-00Z 完整修复版本: RELEASE.2026-06-18T00-00-00Z GitHub Issue: pgsty/minio#25 四月的第一轮修复使用既有的 1 MiB maxCharsPerRecord 同时限制 CSV 与普通 JSON Lines,避免在遇到分隔符前持续无界 buffering,并让客户端得到明确的 OverMaxRecordSize。六月复核却发现,支持 SIMD …

  • CVE-2026-34204:复制元数据注入

    发布于 安全编年史

    安全Replication

    Featured Image for CVE-2026-34204:复制元数据注入

    状态: 已发布 首个包含版本: RELEASE.2026-04-17T00-00-00Z GitHub Issue: pgsty/minio#24 普通 PUT 与 COPY 请求可以把 X-Minio-Replication-* header 伪装进内部 X-Minio-Internal-* SSE metadata,写出 replication state 与真实授权路径不一致、甚至无法读取的对象。最终修复不再默认接受 replication-only metadata,只在通过 …

    状态: 已发布 首个包含版本: RELEASE.2026-04-17T00-00-00Z GitHub Issue: pgsty/minio#24 普通 PUT 与 COPY 请求可以把 X-Minio-Replication-* header 伪装进内部 X-Minio-Internal-* SSE metadata,写出 replication state 与真实授权路径不一致、甚至无法读取的对象。最终修复不再默认接受 replication-only metadata,只在通过 …

  • CVE-2026-33419:LDAP STS 用户枚举与限流链

    发布于 安全编年史

    安全LDAP STS

    Featured Image for CVE-2026-33419:LDAP STS 用户枚举与限流链

    状态: 已发布,经历两轮后续修正 首个包含版本: RELEASE.2026-04-17T00-00-00Z 完整修正版本: RELEASE.2026-06-18T00-00-00Z GitHub Issue: pgsty/minio#23 核心漏洞很直接:LDAP STS 对“用户不存在”和“密码错误”返回不同结果,形成 username oracle。第一版修复统一外部错误,并增加 source IP 与 username 双重限流;连续复核却发现,成功退款、可伪造来源 …

    状态: 已发布,经历两轮后续修正 首个包含版本: RELEASE.2026-04-17T00-00-00Z 完整修正版本: RELEASE.2026-06-18T00-00-00Z GitHub Issue: pgsty/minio#23 核心漏洞很直接:LDAP STS 对“用户不存在”和“密码错误”返回不同结果,形成 username oracle。第一版修复统一外部错误,并增加 source IP 与 username 双重限流;连续复核却发现,成功退款、可伪造来源 …

  • CVE-2026-33322:OIDC JWT 算法混淆

    发布于 安全编年史

    安全OIDC

    Featured Image for CVE-2026-33322:OIDC JWT 算法混淆

    状态: 已发布 首个包含版本: RELEASE.2026-04-17T00-00-00Z 影响入口: AssumeRoleWithWebIdentity、AssumeRoleWithClientGrants GitHub Issue: pgsty/minio#22 旧实现把 OIDC client secret 放进 JWT verifier keyring,同时允许 HMAC signing method。知道 client secret 的攻击者因此可以自行签发 HS token,再通过 …

    状态: 已发布 首个包含版本: RELEASE.2026-04-17T00-00-00Z 影响入口: AssumeRoleWithWebIdentity、AssumeRoleWithClientGrants GitHub Issue: pgsty/minio#22 旧实现把 OIDC client secret 放进 JWT verifier keyring,同时允许 HMAC signing method。知道 client secret 的攻击者因此可以自行签发 HS token,再通过 …

  • CVE-2026-32285:最终无需补丁的 jsonparser 通告

    发布于 安全编年史

    安全jsonparser

    Featured Image for CVE-2026-32285:最终无需补丁的 jsonparser 通告

    状态: 无需代码改动,问题已关闭 GitHub Issue: pgsty/minio#26 安全维护不只有“发现漏洞,然后提交补丁”。CVE-2026-32285 的初始判断是:仓库可能仍携带未修复的 jsonparser,甚至一度讨论过替换依赖或维护自己的分支。真正检查 module version 与可达性后,结论却是当前代码已经使用包含修复的 v1.1.2,govulncheck 也没有发现可达的 vulnerable symbol。 最终正确的动作不是制造一个依赖升级,而是把证据记录下来 …

    状态: 无需代码改动,问题已关闭 GitHub Issue: pgsty/minio#26 安全维护不只有“发现漏洞,然后提交补丁”。CVE-2026-32285 的初始判断是:仓库可能仍携带未修复的 jsonparser,甚至一度讨论过替换依赖或维护自己的分支。真正检查 module version 与可达性后,结论却是当前代码已经使用包含修复的 v1.1.2,govulncheck 也没有发现可达的 vulnerable symbol。 最终正确的动作不是制造一个依赖升级,而是把证据记录下来 …

  • Silo 20260325 发布

    发布于 发布注记

    发布silo

    Featured Image for Silo 20260325 发布

    发布日期: 2026-03-25 · 版本: RELEASE.2026-03-25T00-00-00Z 这是一个以打包、稳定性与安全公告为主的维护版本,重点是完善交付镜像、修复 LDAP TLS 回归,并把已经锁定到安全版本的依赖明确纳入发布说明。 主要变更 将 mcli/mc 打入 Docker 镜像并增加校验流程,改善镜像开箱体验。 修复 ldaps:// 场景中的 LDAP TLS 回归,确保 TLS 配置能够正确透传。 移除从上游继承但社区分支不再使用的 CI/CD 工作流,减轻维护负担 …

    发布日期: 2026-03-25 · 版本: RELEASE.2026-03-25T00-00-00Z 这是一个以打包、稳定性与安全公告为主的维护版本,重点是完善交付镜像、修复 LDAP TLS 回归,并把已经锁定到安全版本的依赖明确纳入发布说明。 主要变更 将 mcli/mc 打入 Docker 镜像并增加校验流程,改善镜像开箱体验。 修复 ldaps:// 场景中的 LDAP TLS 回归,确保 TLS 配置能够正确透传。 移除从上游继承但社区分支不再使用的 CI/CD 工作流,减轻维护负担 …

  • Silo 20260321 发布

    发布于 发布注记

    发布silo

    Featured Image for Silo 20260321 发布

    发布日期: 2026-03-21 · 版本: RELEASE.2026-03-21T00-00-00Z 这是一次围绕 Go 1.26.1 与依赖收敛展开的维护版。除了适配更严格的编译与 lint 检查外,这个版本也完成了本轮最关键的一次安全依赖刷新。 主要变更 将构建环境从 Go 1.26.0 升级到 Go 1.26.1。 全面刷新直接与间接依赖,收敛新工具链下的兼容性问题。 修正 Go 1.26.1 更严格检查暴露出来的一批 lint 与测试问题。 修复的 CVE …

    发布日期: 2026-03-21 · 版本: RELEASE.2026-03-21T00-00-00Z 这是一次围绕 Go 1.26.1 与依赖收敛展开的维护版。除了适配更严格的编译与 lint 检查外,这个版本也完成了本轮最关键的一次安全依赖刷新。 主要变更 将构建环境从 Go 1.26.0 升级到 Go 1.26.1。 全面刷新直接与间接依赖,收敛新工具链下的兼容性问题。 修正 Go 1.26.1 更严格检查暴露出来的一批 lint 与测试问题。 修复的 CVE …

  • Silo 20260314 发布

    发布于 发布注记

    发布silo

    Featured Image for Silo 20260314 发布

    发布日期: 2026-03-14 · 版本: RELEASE.2026-03-14T12-00-00Z 这个版本完成了向社区维护 Console 分支的切换,并在切换过程中做了一轮较大幅度的依赖更新,为后续 Go 1.26.x 维护版打下基础。 主要变更 切换到社区维护的 georgmangold/console v1.9.1,替换不可持续维护的上游 Console 依赖。 大幅更新 go.mod 中的直接与间接依赖,使 Console 与新工具链组合能够稳定构建。 修复 …

    发布日期: 2026-03-14 · 版本: RELEASE.2026-03-14T12-00-00Z 这个版本完成了向社区维护 Console 分支的切换,并在切换过程中做了一轮较大幅度的依赖更新,为后续 Go 1.26.x 维护版打下基础。 主要变更 切换到社区维护的 georgmangold/console v1.9.1,替换不可持续维护的上游 Console 依赖。 大幅更新 go.mod 中的直接与间接依赖,使 Console 与新工具链组合能够稳定构建。 修复 …

  • Silo 20260214 发布

    发布于 发布注记

    发布silo

    Featured Image for Silo 20260214 发布

    发布日期: 2026-02-14 · 版本: RELEASE.2026-02-14T12-00-00Z 这是社区分支早期的一个基础设施版本,除了恢复内嵌 Console 与建立 GitHub CI/CD 之外,也把 Go 运行时基线提升到 1.26.0,因此一并消化了上一代工具链中的一批安全问题。 主要变更 恢复内嵌 Console,并更新 README 以明确社区维护分支的定位。 新增 GitHub CI/CD 流水线,为后续自动构建和多平台分发建立基础。 补充文档、Docker、GitHub …

    发布日期: 2026-02-14 · 版本: RELEASE.2026-02-14T12-00-00Z 这是社区分支早期的一个基础设施版本,除了恢复内嵌 Console 与建立 GitHub CI/CD 之外,也把 Go 运行时基线提升到 1.26.0,因此一并消化了上一代工具链中的一批安全问题。 主要变更 恢复内嵌 Console,并更新 README 以明确社区维护分支的定位。 新增 GitHub CI/CD 流水线,为后续自动构建和多平台分发建立基础。 补充文档、Docker、GitHub …

  • MinIO 已死,MinIO 复生

    发布于 文章

    postminio

    Featured Image for MinIO 已死,MinIO 复生

    MinIO 开源仓库正式归档,不再维护。一个时代落幕,但开源的精神不死。 老冯 Fork 了 MinIO,复活了管理控制台,重建了二进制分发渠道,让 MinIO 浴火重生。 如果你正在用 MinIO,把 minio/minio 换成 pgsty/minio ,其他一切照旧。 MinIO 的死亡证明 2025年12月3日,MinIO 在 GitHub 上宣布进入"维护模式"。我写了一篇《MinIO 已死》。 2026年2月12日,MinIO 在 GitHub 首页将状态从"维护模式"更新为 “不再 …

    MinIO 开源仓库正式归档,不再维护。一个时代落幕,但开源的精神不死。 老冯 Fork 了 MinIO,复活了管理控制台,重建了二进制分发渠道,让 MinIO 浴火重生。 如果你正在用 MinIO,把 minio/minio 换成 pgsty/minio ,其他一切照旧。 MinIO 的死亡证明 2025年12月3日,MinIO 在 GitHub 上宣布进入"维护模式"。我写了一篇《MinIO 已死》。 2026年2月12日,MinIO 在 GitHub 首页将状态从"维护模式"更新为 “不再 …

  • Silo 20251203 发布

    发布于 发布注记

    发布silo

    Featured Image for Silo 20251203 发布

    发布日期: 2025-12-15 · 版本: RELEASE.2025-12-03T12-00-00Z 这是目前可追溯到的首个社区版发布,主要目标是建立社区维护分支的打包与分发基线,而不是在此前社区版本之上做增量修复。 主要变更 基于 minio/pkger 建立社区版打包流程。 选择 MinIO 进入 maintenance mode 后的一版上游基线作为社区分支起点。 首次产出 apk、deb、rpm 等多种平台包,为后续持续发布建立基础。 修复的 CVE 这是首个社区版发布,GitHub …

    发布日期: 2025-12-15 · 版本: RELEASE.2025-12-03T12-00-00Z 这是目前可追溯到的首个社区版发布,主要目标是建立社区维护分支的打包与分发基线,而不是在此前社区版本之上做增量修复。 主要变更 基于 minio/pkger 建立社区版打包流程。 选择 MinIO 进入 maintenance mode 后的一版上游基线作为社区分支起点。 首次产出 apk、deb、rpm 等多种平台包,为后续持续发布建立基础。 修复的 CVE 这是首个社区版发布,GitHub …

  • MinIO已死,谁能接盘?

    发布于 文章

    postminio

    Featured Image for MinIO已死,谁能接盘?

    前天 MinIO 宣告进入维护模式,老冯写了一篇《MinIO 已死》聊了聊这个话题。 很多朋友也问我,MinIO 既然摆烂躺平了,有谁能接 MinIO 的班? 大方向的话,台面上的替代品无非就那几个:Ceph、RustFS、SeaweedFS、Garage…… 老冯把这些方案都打好了 Linux 上的 RPM/DEB 包,挨个试了一遍。 总结一句话:没有完美替代。 各有各的问题 —— Ceph 功能全但太复杂;SeaweedFS 针对小文件优化但需要独立元数据库;Garage 小巧玲珑但功能简陋 …

    前天 MinIO 宣告进入维护模式,老冯写了一篇《MinIO 已死》聊了聊这个话题。 很多朋友也问我,MinIO 既然摆烂躺平了,有谁能接 MinIO 的班? 大方向的话,台面上的替代品无非就那几个:Ceph、RustFS、SeaweedFS、Garage…… 老冯把这些方案都打好了 Linux 上的 RPM/DEB 包,挨个试了一遍。 总结一句话:没有完美替代。 各有各的问题 —— Ceph 功能全但太复杂;SeaweedFS 针对小文件优化但需要独立元数据库;Garage 小巧玲珑但功能简陋 …

  • MinIO已死

    发布于 文章

    postminio

    Featured Image for MinIO已死

    2025年12月3日,是个值得在开源软件历史上记一笔的日子。 MinIO 官方在 GitHub 上更新项目状态,宣布 MinIO 开源项目进入“维护模式” 。 这基本上宣告了 MinIO 作为一个开源项目的死亡。 MinIO 这家公司,终于完成了从“屠龙少年”到“恶龙”的华丽转身。 从屠龙勇者到新的恶龙 民主化时代(2014–2019):对象存储的 Apache MinIO 成立于2014年,其创始愿景极具理想主义色彩——做“对象存储领域的 Apache”。在那个 AWS S3 统治云存储的年代 …

    2025年12月3日,是个值得在开源软件历史上记一笔的日子。 MinIO 官方在 GitHub 上更新项目状态,宣布 MinIO 开源项目进入“维护模式” 。 这基本上宣告了 MinIO 作为一个开源项目的死亡。 MinIO 这家公司,终于完成了从“屠龙少年”到“恶龙”的华丽转身。 从屠龙勇者到新的恶龙 民主化时代(2014–2019):对象存储的 Apache MinIO 成立于2014年,其创始愿景极具理想主义色彩——做“对象存储领域的 Apache”。在那个 AWS S3 统治云存储的年代 …