SILO 安全编年史
这里记录 SILO 社区分支自分叉以来处理过的安全事件,按时间从新到旧排列。记录可以围绕 CVE、本地 SN 发现、多项相关修复,或不属于漏洞的正确性审计:最初的威胁模型、复核中的转折、被否决的方案、最终恢复的不变量、验证证据与兼容性代价,都留在它自己的故事里。
编号、修复源码与首个发布版本见安全台账。纪事的调查日期不同于修复发布日期,不用文章上线代替修复交付。
-
九月安全修复:载荷完整性、IAM 撤销与 Console 分享
2026-09-17 发布更新: 本文记录的九月源码修复已随 Server 20260916 发布;协调升级、可选功能启用条件和剩余限制仍按各节执行。下方带日期的源码状态与验证记录保留当时的范围。 本文记录截至 9 月 16 日的三项修复及交付边界。编号属于 SILO 本地安全台账,不是 CVE,也不代表已分配 CVSS 分数。 持续维护的索引见安全公告台账。 发现 修复源码 9 月 16 日的发布状态 SN-2026-012:预签名载荷完整性 Server c4b5e1cb4,PR #177 …
2026-09-17 发布更新: 本文记录的九月源码修复已随 Server 20260916 发布;协调升级、可选功能启用条件和剩余限制仍按各节执行。下方带日期的源码状态与验证记录保留当时的范围。 本文记录截至 9 月 16 日的三项修复及交付边界。编号属于 SILO 本地安全台账,不是 CVE,也不代表已分配 CVSS 分数。 持续维护的索引见安全公告台账。 发现 修复源码 9 月 16 日的发布状态 SN-2026-012:预签名载荷完整性 Server c4b5e1cb4,PR #177 …
-
SN-2026-011:修复与发布状态
2026-09-17 发布更新: 本文记录的九月源码修复已随 Server 20260916 发布;协调升级、可选功能启用条件和剩余限制仍按各节执行。下方带日期的源码状态与验证记录保留当时的范围。 截至 2026-09-13: SN-2026-011 已在 Server 主分支修复,起始提交为 123325430。 最新公开 Server RELEASE.2026-09-03T13-18-01Z 及此前公开版本仍受影响。 pkg v3.14.0、mcli 20260913 发布不代表已经发布修 …
2026-09-17 发布更新: 本文记录的九月源码修复已随 Server 20260916 发布;协调升级、可选功能启用条件和剩余限制仍按各节执行。下方带日期的源码状态与验证记录保留当时的范围。 截至 2026-09-13: SN-2026-011 已在 Server 主分支修复,起始提交为 123325430。 最新公开 Server RELEASE.2026-09-03T13-18-01Z 及此前公开版本仍受影响。 pkg v3.14.0、mcli 20260913 发布不代表已经发布修 …
-
SILO 20260903 安全说明:SN-2026-006 至 010
已随 SILO 20260903 发布。 这些修复属于 RELEASE.2026-09-03T13-18-01Z。从 20260806 到 20260903 的完整升级边界、组件、验证证据与已知延期见完整发布说明。 本公告汇总 SILO Server 最终复审发现的五个相关安全问题,覆盖客户提供的加密密钥、客户端可控复制 header、管理状态变更与显式对象版本删除。 SN-2026-006 至 SN-2026-010 是分叉内部的 security-note 编号,不是 CVE,也没有登记到 …
已随 SILO 20260903 发布。 这些修复属于 RELEASE.2026-09-03T13-18-01Z。从 20260806 到 20260903 的完整升级边界、组件、验证证据与已知延期见完整发布说明。 本公告汇总 SILO Server 最终复审发现的五个相关安全问题,覆盖客户提供的加密密钥、客户端可控复制 header、管理状态变更与显式对象版本删除。 SN-2026-006 至 SN-2026-010 是分叉内部的 security-note 编号,不是 CVE,也没有登记到 …
-
解析器认识,Schema 不认:足以带走全部通知的配置键
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 配置 Schema 一致性与可用性问题,不是漏洞;附带一项防御性加固(验证报错不再回显凭据值) 影响范围: notify_nats 的 JWT/NKey/TLS-handshake-first 选项、notify_amqp 的 immediate,以及任何带着启用状态 NATS 目标从 2020 年前配置迁移上来的部署——它的失败会连带压 …
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 配置 Schema 一致性与可用性问题,不是漏洞;附带一项防御性加固(验证报错不再回显凭据值) 影响范围: notify_nats 的 JWT/NKey/TLS-handshake-first 选项、notify_amqp 的 immediate,以及任何带着启用状态 NATS 目标从 2020 年前配置迁移上来的部署——它的失败会连带压 …
-
让客户端源地址真正可信
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 可选加固 + 文档缺陷,不是漏洞,也不是回归;未申请 CVE。底层弱点继承自上游,本次未改变其默认行为 影响范围: aws:SourceIp 策略条件、审计日志 remotehost 字段、S3 事件通知的 Host、mc admin trace 显示的客户端——凡是 S3 API 端口无需经过清洗请求头的代理即可抵达的部署 上游: 无处 …
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 可选加固 + 文档缺陷,不是漏洞,也不是回归;未申请 CVE。底层弱点继承自上游,本次未改变其默认行为 影响范围: aws:SourceIp 策略条件、审计日志 remotehost 字段、S3 事件通知的 Host、mc admin trace 显示的客户端——凡是 S3 API 端口无需经过清洗请求头的代理即可抵达的部署 上游: 无处 …
-
对象授权,越界到桶:当 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
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 策略执行正确性——一个 fail-closed 的报告、一个被避免的 fail-open 陷阱、以及顺手关掉的一处窄绕过。不是重点 CVE——见我们如何定级 影响范围: 任何在 s3:versionid 上使用 Null 或 StringEquals 的桶/IAM 策略;报告中的失效发生在 …
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 策略执行正确性——一个 fail-closed 的报告、一个被避免的 fail-open 陷阱、以及顺手关掉的一处窄绕过。不是重点 CVE——见我们如何定级 影响范围: 任何在 s3:versionid 上使用 Null 或 StringEquals 的桶/IAM 策略;报告中的失效发生在 …
-
有序不等于递增:一个重复 Part 如何把对象变成两倍
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 数据正确性问题,不是漏洞——见为什么这不是 CVE 影响范围: 所有后端;任何已认证的 S3 客户端,作用于它自己的上传 跟踪: pgsty/silo #49 下文的相邻 ReadParts panic 已由 2602177ef 修复并随 20260804 发布;保留变异实验作为历史证据。 结论先行 sort.SliceIsSorted …
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 数据正确性问题,不是漏洞——见为什么这不是 CVE 影响范围: 所有后端;任何已认证的 S3 客户端,作用于它自己的上传 跟踪: pgsty/silo #49 下文的相邻 ReadParts panic 已由 2602177ef 修复并随 20260804 发布;保留变异实验作为历史证据。 结论先行 sort.SliceIsSorted …
-
内部节点路径 containment 审计:补完 CVE-2026-42600 欠下的那笔账
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 影响范围: 仅 distributed erasure;需要 cluster-root / internode JWT 前置阅读: CVE-2026-42600 · ReadMultiple 本文现已公开。主修复的发布状态如上;文中残留问题属于当时的调查记录,不能从主修复的发布推断整个问题类别已关闭。 上一篇的结尾写着一句话: 删除 …
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 影响范围: 仅 distributed erasure;需要 cluster-root / internode JWT 前置阅读: CVE-2026-42600 · ReadMultiple 本文现已公开。主修复的发布状态如上;文中残留问题属于当时的调查记录,不能从主修复的发布推断整个问题类别已关闭。 上一篇的结尾写着一句话: 删除 …
-
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 …
-
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 自动解包认证绕过
状态: 已发布 首个包含版本: 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 绕过
状态: 已发布,六月完成二次闭环 初始修复版本: 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:复制元数据注入
状态: 已发布 首个包含版本: 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 用户枚举与限流链
状态: 已发布,经历两轮后续修正 首个包含版本: 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 算法混淆
状态: 已发布 首个包含版本: 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 通告
状态: 无需代码改动,问题已关闭 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。 最终正确的动作不是制造一个依赖升级,而是把证据记录下来 …
-
CVE-2025-62506:Session Policy 权限提升
状态: 已继承并发布 首个 Silo 社区版本: RELEASE.2025-12-03T12-00-00Z 上游首个修复版本: RELEASE.2025-10-15T17-29-55Z GitHub Advisory: GHSA-jjjj-jwhf-8rgr 上游修复: minio/minio#21642 带受限 session policy 的 service account 或 STS account,可以借助“操作自己的账号”例外创建一个没有相同限制的新 service account。新 …
状态: 已继承并发布 首个 Silo 社区版本: RELEASE.2025-12-03T12-00-00Z 上游首个修复版本: RELEASE.2025-10-15T17-29-55Z GitHub Advisory: GHSA-jjjj-jwhf-8rgr 上游修复: minio/minio#21642 带受限 session policy 的 service account 或 STS account,可以借助“操作自己的账号”例外创建一个没有相同限制的新 service account。新 …