跳转到主要内容

PGSTY SILO 博客

  • 让客户端源地址真正可信

    发布于 安全编年史

    安全Source Address

    Featured Image for 让客户端源地址真正可信

    状态: 已合入 pgsty/minio master,提交 fe6dc4780,尚未发布 定级: 可选加固 + 文档缺陷,不是漏洞,也不是回归;未申请 CVE。底层弱点继承自上游,本次未改变其默认行为 影响范围: aws:SourceIp 策略条件、审计日志 remotehost 字段、S3 事件通知的 Host、mc admin trace 显示的客户端——凡是 S3 API 端口无需经过清洗请求头的代理即可抵达的部署 上游: 无处可报——minio/minio 已归档。上游既有记录:PR …

    状态: 已合入 pgsty/minio master,提交 fe6dc4780,尚未发布 定级: 可选加固 + 文档缺陷,不是漏洞,也不是回归;未申请 CVE。底层弱点继承自上游,本次未改变其默认行为 影响范围: aws:SourceIp 策略条件、审计日志 remotehost 字段、S3 事件通知的 Host、mc admin trace 显示的客户端——凡是 S3 API 端口无需经过清洗请求头的代理即可抵达的部署 上游: 无处可报——minio/minio 已归档。上游既有记录:PR …

  • 对象授权,越界到桶:当 bucket/* 能改写桶本身

    发布于 安全编年史

    安全Object Grant

    Featured Image for 对象授权,越界到桶:当 bucket/* 能改写桶本身

    状态: 已在 pgsty/silo-pkg main 修复(3c24ad1,由 1f97549 扩展,并在 v3.11.0 收敛为最终的十二个动作),已发布为 silo-pkg v3.11.0;pgsty/minio 已消费该版本 定级: 访问控制加固——一条被收窄恢复的权限边界 影响范围: 仅被授予对象级(arn:aws:s3:::bucket/*)访问的 IAM 用户/角色/服务账号,且集群被多个租户共用的部署 跟踪: 上游 minio/minio issue #20449(2024 年起公 …

    状态: 已在 pgsty/silo-pkg main 修复(3c24ad1,由 1f97549 扩展,并在 v3.11.0 收敛为最终的十二个动作),已发布为 silo-pkg v3.11.0;pgsty/minio 已消费该版本 定级: 访问控制加固——一条被收窄恢复的权限边界 影响范围: 仅被授予对象级(arn:aws:s3:::bucket/*)访问的 IAM 用户/角色/服务账号,且集群被多个租户共用的部署 跟踪: 上游 minio/minio issue #20449(2024 年起公 …

  • 缺失不是空:一个空 versionid,和它诱发的 fail-open

    发布于 安全编年史

    安全Version ID

    Featured Image for 缺失不是空:一个空 versionid,和它诱发的 fail-open

    状态: 已在本地 pgsty/minio 分支修复,提交 744a9dcd7,尚未发布 定级: 策略执行正确性——一个 fail-closed 的报告、一个被避免的 fail-open 陷阱、以及顺手关掉的一处窄绕过。不是重点 CVE——见我们如何定级 影响范围: 任何在 s3:versionid 上使用 Null 或 StringEquals 的桶/IAM 策略;报告中的失效发生在 DeleteObject/DeleteObjects 跟踪: 上游 minio/minio issue …

    状态: 已在本地 pgsty/minio 分支修复,提交 744a9dcd7,尚未发布 定级: 策略执行正确性——一个 fail-closed 的报告、一个被避免的 fail-open 陷阱、以及顺手关掉的一处窄绕过。不是重点 CVE——见我们如何定级 影响范围: 任何在 s3:versionid 上使用 Null 或 StringEquals 的桶/IAM 策略;报告中的失效发生在 DeleteObject/DeleteObjects 跟踪: 上游 minio/minio issue …

  • mcli 20260804 发布

    发布于 发布注记

    发布mcli

    Featured Image for mcli 20260804 发布

    发布日期: 2026-08-04 · 版本: RELEASE.2026-08-04T00-00-00Z 这是 pgsty/mc 社区分支自 20260417 以来的首次发布。本次更新修复了一处调试日志泄密问题,彻底切断了客户端与上游发布渠道之间的所有连接,将容器与软件包完全改由本分支自建,并把打包体系从 MinIO 的 pkger 迁移到标准 nFPM,同时首次为 RPM 包提供 GPG 签名。 上游 minio/mc 仓库已于 2026 年 7 月归档。其最后一个提交 77f82e18 正是本 …

    发布日期: 2026-08-04 · 版本: RELEASE.2026-08-04T00-00-00Z 这是 pgsty/mc 社区分支自 20260417 以来的首次发布。本次更新修复了一处调试日志泄密问题,彻底切断了客户端与上游发布渠道之间的所有连接,将容器与软件包完全改由本分支自建,并把打包体系从 MinIO 的 pkger 迁移到标准 nFPM,同时首次为 RPM 包提供 GPG 签名。 上游 minio/mc 仓库已于 2026 年 7 月归档。其最后一个提交 77f82e18 正是本 …

  • Silo Pkg 3.11.0 发布

    发布于 发布注记

    发布pkg

    Featured Image for Silo Pkg 3.11.0 发布

    发布日期: 2026-08-04 · 版本: v3.11.0 · 提交: d8b1fa7 · 仓库: pgsty/silo-pkg 这是本分支的 第一个定版。它恢复了上游 minio/minio#20449 所报告的 IAM 桶/对象资源边界:策略条件键绕过修复、三个 LDAP 连接缺陷、证书监听器泄漏、有种子 RNG 的缺陷,以及模块真实的最低 Go 版本。 警告 升级前需要确认两件事 本版本收紧了鉴权。 十二个桶级写操作不再能通过 arn:aws:s3:::bucket/* 这样的对象级资源 …

    发布日期: 2026-08-04 · 版本: v3.11.0 · 提交: d8b1fa7 · 仓库: pgsty/silo-pkg 这是本分支的 第一个定版。它恢复了上游 minio/minio#20449 所报告的 IAM 桶/对象资源边界:策略条件键绕过修复、三个 LDAP 连接缺陷、证书监听器泄漏、有种子 RNG 的缺陷,以及模块真实的最低 Go 版本。 警告 升级前需要确认两件事 本版本收紧了鉴权。 十二个桶级写操作不再能通过 arn:aws:s3:::bucket/* 这样的对象级资源 …

  • Silo Console 2.0.0 发布

    发布于 发布注记

    发布console

    Featured Image for Silo Console 2.0.0 发布

    发布日期: 2026-08-04 · 版本: v2.0.0 · 仓库: pgsty/silo-console SILO Console 2.0.0 是这套对象存储管理控制台以独立项目身份发布的第一个主版本。它从 georgmangold/console 的 v1.9.1 维护线继续演进,完成了三件事: 建立独立身份——产品名称、视觉系统、文档入口、源码归属与发布链路全部迁移到 SILO 项目体系,同时刻意保留 Go 模块路径、环境变量等兼容契约; 重塑用户界面——登录页、主题系统、仪表盘与全站细 …

    发布日期: 2026-08-04 · 版本: v2.0.0 · 仓库: pgsty/silo-console SILO Console 2.0.0 是这套对象存储管理控制台以独立项目身份发布的第一个主版本。它从 georgmangold/console 的 v1.9.1 维护线继续演进,完成了三件事: 建立独立身份——产品名称、视觉系统、文档入口、源码归属与发布链路全部迁移到 SILO 项目体系,同时刻意保留 Go 模块路径、环境变量等兼容契约; 重塑用户界面——登录页、主题系统、仪表盘与全站细 …

  • 有序不等于递增:一个重复 Part 如何把对象变成两倍

    发布于 安全编年史

    安全Multipart Upload

    Featured Image for 有序不等于递增:一个重复 Part 如何把对象变成两倍

    状态: 已在本地 pgsty/minio 分支修复,提交 22c1e41fd,尚未发布 定级: 数据正确性问题,不是漏洞——见为什么这不是 CVE 影响范围: 所有后端;任何已认证的 S3 客户端,作用于它自己的上传 跟踪: pgsty/minio issue #49 本文有一节描述了相邻代码路径中一个尚未修复的进程级 panic。请在该问题修复并发布之后再上线。 结论先行 sort.SliceIsSorted 配 < 比较符 并不检查严格递增,它检查的是 有没有逆序对。相邻相等不构成逆序,于是 …

    状态: 已在本地 pgsty/minio 分支修复,提交 22c1e41fd,尚未发布 定级: 数据正确性问题,不是漏洞——见为什么这不是 CVE 影响范围: 所有后端;任何已认证的 S3 客户端,作用于它自己的上传 跟踪: pgsty/minio issue #49 本文有一节描述了相邻代码路径中一个尚未修复的进程级 panic。请在该问题修复并发布之后再上线。 结论先行 sort.SliceIsSorted 配 < 比较符 并不检查严格递增,它检查的是 有没有逆序对。相邻相等不构成逆序,于是 …

  • 内部节点路径 containment 审计:补完 CVE-2026-42600 欠下的那笔账

    发布于 安全编年史

    安全Path Containment

    Featured Image for 内部节点路径 containment 审计:补完 CVE-2026-42600 欠下的那笔账

    状态: 已在本地 pgsty/minio 分支修复,尚未发布、尚未披露(未申请 CVE/GHSA,上游仓库已归档) 影响范围: 仅 distributed erasure;需要 cluster-root / internode JWT 前置阅读: CVE-2026-42600 · ReadMultiple 本文包含完整利用向量与实测数据。发布即构成披露,请在修复版本发出后再上线。 上一篇的结尾写着一句话: 删除 endpoint 只证明 ReadMultiple 不再存在,不能外推成所有内部节点 …

    状态: 已在本地 pgsty/minio 分支修复,尚未发布、尚未披露(未申请 CVE/GHSA,上游仓库已归档) 影响范围: 仅 distributed erasure;需要 cluster-root / internode JWT 前置阅读: CVE-2026-42600 · ReadMultiple 本文包含完整利用向量与实测数据。发布即构成披露,请在修复版本发出后再上线。 上一篇的结尾写着一句话: 删除 endpoint 只证明 ReadMultiple 不再存在,不能外推成所有内部节点 …

  • Silo 20260618 发布

    发布于 发布注记

    发布silo

    Featured Image for Silo 20260618 发布

    发布日期: 2026-06-18 · 版本: RELEASE.2026-06-18T00-00-00Z 这是 pgsty/minio 社区分支的一次例行安全与依赖维护更新。该版本加固 LDAP STS 限流,补齐 S3 Select 超大记录限制,移除废弃的 ReadMultiple 节点间 storage-REST API,将 Go 构建基线升级到 1.26.4,并刷新 Go 模块依赖以吸收第三方安全修复。 说明 说明 已知问题:本版本与自 …

    发布日期: 2026-06-18 · 版本: RELEASE.2026-06-18T00-00-00Z 这是 pgsty/minio 社区分支的一次例行安全与依赖维护更新。该版本加固 LDAP STS 限流,补齐 S3 Select 超大记录限制,移除废弃的 ReadMultiple 节点间 storage-REST API,将 Go 构建基线升级到 1.26.4,并刷新 Go 模块依赖以吸收第三方安全修复。 说明 说明 已知问题:本版本与自 …

  • CVE-2026-42600:ReadMultiple Storage-REST 路径穿越

    发布于 安全编年史

    安全ReadMultiple

    Featured Image for CVE-2026-42600:ReadMultiple Storage-REST 路径穿越

    状态: 已发布 首个包含版本: RELEASE.2026-06-18T00-00-00Z GitHub Advisory: GHSA-xh8f-g2qw-gcm7 影响范围: 仅 distributed erasure;需要 cluster-root / internode JWT /rmpl 的 msgpack body 中包含 Bucket、Prefix 与 Files,旧代码直接把它们拼成文件系统路径,没有 containment。最初的修复实现了完整 preflight …

    状态: 已发布 首个包含版本: RELEASE.2026-06-18T00-00-00Z GitHub Advisory: GHSA-xh8f-g2qw-gcm7 影响范围: 仅 distributed erasure;需要 cluster-root / internode JWT /rmpl 的 msgpack body 中包含 Bucket、Prefix 与 Files,旧代码直接把它们拼成文件系统路径,没有 containment。最初的修复实现了完整 preflight …

  • Silo 20260417 发布

    发布于 发布注记

    发布silo

    Featured Image for Silo 20260417 发布

    发布日期: 2026-04-17 · 版本: RELEASE.2026-04-17T00-00-00Z 本次版本聚焦安全加固与兼容性收敛,集中修复了 OIDC、LDAP STS、S3 Select、对象复制元数据、unsigned-trailer、Snowball 上传链路,以及依赖与 Go 工具链相关的多项安全问题,并同步完成 LDAP TLS 回归修复与社区分叉文档整理。 主要变更 身份认证链路收紧:OIDC / WebIdentity 现在只接受来自 IdP JWKS 的非对称签名 ID …

    发布日期: 2026-04-17 · 版本: RELEASE.2026-04-17T00-00-00Z 本次版本聚焦安全加固与兼容性收敛,集中修复了 OIDC、LDAP STS、S3 Select、对象复制元数据、unsigned-trailer、Snowball 上传链路,以及依赖与 Go 工具链相关的多项安全问题,并同步完成 LDAP TLS 回归修复与社区分叉文档整理。 主要变更 身份认证链路收紧:OIDC / WebIdentity 现在只接受来自 IdP JWKS 的非对称签名 ID …

  • 续命 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 工作流,减轻维护负担 …