跳转到主要内容

SILO 20261026:Server、mcli 与 KES 联合发布

SILO、mcli、KES 20261026 联合发布,配套 Console 2.5.1 与 silo-pkg 3.15.2,完整记录自 20261018 以来的变化。

SILO、mcli 与 PGSTY KES 20261026 现已联合发布,配套 SILO Console 2.5.1 与 silo-pkg 3.15.2。本文整合了 10 月 24—25 日的维护记录,完整说明自 20261018 正式版以来的所有变更。三个可执行组件采用统一的发布日期与包版本号;KES 仍作为可选的外部密钥服务独立部署。

发布组件

组件 版本 源码 交付形式
SILO Server 20261026000000.0.0 c3ad836aed0d 平台归档、Linux 软件包、Docker Hub 镜像
mcli 20261026000000.0.0 0ceb298cdcd0 平台归档、Linux 软件包、Docker Hub 镜像
PGSTY KES 20261026000000.0.0 e9b4f1acebc1 平台归档、Linux 软件包、Docker Hub 镜像
SILO Console 2.5.1 fff1618d9abb Server 内嵌;独立二进制、软件包与镜像
silo-pkg 3.15.2 0416eb1f4505 Go 源码模块

五个项目统一使用 Go 1.27.3 构建。Server、Console 与 mcli 选用 silo-pkg v3.15.2 以及固定的上游提交 minio-go v7.4.2-0.20261025165926-320af050c445(伪版本,上游尚未打 v7.4.2 标签)。Server 显式集成已发布的 Console 与 mcli 源码;单独升级独立部署的 Console 不会替换旧版 Server 内嵌的控制台界面。详见组件矩阵与下载页。

Server:自 20261018 以来的修改

  • LDAP 与 IAM(#250): 修复规范化 LDAP DN 过长导致无法登录的问题。当合法 IAM 键的单个 ASCII 路径分量超过 255 字节时,可选 IAM 记录读取将其视为“记录不存在”并继续按组策略登录;但无法读取的吊销记录与底层存储故障仍严格按 Fail-Closed 拒绝,且对象后端仍不支持直接写入超长路径记录。此外,策略重载在访问底层存储期间不再持有认证缓存锁,仅在完整加载成功后原子替换缓存并保持 IAM 写入顺序;请求取消信号会传递至 KMS 与 SSE-S3 解密路径,同时不缩短调用方的策略查询超时。
  • 内置策略 Reset 与实时桶清单: 对内置策略执行 Reset 后,首次读取即可立即恢复原生策略定义;延迟到达的 peer/etcd 通知会重新加载已提交状态,不会覆盖后续新修改。策略在用检查、删除修订号与自定义策略删除行为保持不变。Console 的 account-info 接口改为读取实时存储桶清单,创建或删除桶后刷新页面即可看到最新结果(对象用量统计仍由后台扫描器异步更新)。
  • 多池删除保护(#257、#256): 普通删除与批量删除改为先清理非权威池中的旧副本,再删除权威池副本,从而在部分失败时保住最新权威副本;同时为新建删除标记选择可用存储池,并保护仍被其他存活副本引用的远端分层对象。
  • 版本桶生命周期过期(#253、#252): 当生命周期过期规则只是追加删除标记时,完整保留上一版本的远端分层数据(包括暂停版本控制桶中的非 null 版本);只有当历史版本被真正永久清除、且没有任何存活引用依赖其底层载荷时,才回收远端分层数据。
  • 分片上传复制(#255、#254): 为复合 CRC 分片对象复制透传 FULL_OBJECT 校验和类型,避免目标站点因按分片复合模式重算校验和而返回 BadDigest。
  • 存储 RPC 与超时语义: 转发存储 RPC 删除选项(包括覆盖写回滚所需的旧数据目录),并保持既有的磁盘/RPC 超时、请求取消、对象锁、读仲裁与自愈策略。正式版在 dcc2f20ba 中撤回了 20261025 草稿里的已接纳 I/O 排空等待与逐对象变更锁方案(含 #258),详见多池对象一致性设计记录。
  • 依赖、打包与交付: 更新 SFTP、etcd、NATS 及云厂商 SDK 等 Go 依赖;保留 Kafka 2.1 默认协议版本、CLI 输出格式与 NetBSD 兼容版本;修复旧版 DARE v1 解封逻辑(新写入继续使用 v2)。容器镜像、校验安装脚本与 Helm 客户端任务统一内置 mcli 20261026。Windows 归档改用 ZIP 格式,静态构建 curl 升级至 8.23.0 并附带下文的证书信任配置说明;同时修复了最终刷新 SBOM 与构建溯源时的 RPM 签名校验。
  • 文档与迁移: 合入单节点 MinIO 迁移指南(#228),校准运维默认参数说明,并将升级流程统一收敛至迁移指南。

本版完整保留 20261018 已交付的 Object Lock、IAM 授权、持久 STS 吊销、跨池迁移与 LIST 恢复修复。文末的依赖安全清单将本轮新合入的修复、历史修复与未使用代码中的扫描告警分别列出。

mcli:自 20261018 以来的修改

  • 客户端身份缓存隔离(#50、#55): S3 与管理客户端缓存按凭据、证书信任、代理、DNS 解析器及自定义请求头隔离,同时保留凭据自动刷新与 Web Identity token 文件轮换。
  • 复制 Resync 状态与速率计算(#48、#49、#52): admin replicate resync status --json 会持续消费状态流直至到达 Completed、Failed 或 Canceled 终态,完整保留已完成任务的状态输出;当桶未启用复制时明确输出结果,TTY 模式在遇到 Failed 或 Canceled 时立即结束等待;同时修复了累计传输超过约 8.6 GiB 后吞吐量计算的整数溢出。
  • 诚实的退出码(#51): resync start 与 resync cancel 在部分桶操作失败时保留逐桶错误详情并返回非零退出码;用 resync status 成功查询到一个已处于 Failed 或 Canceled 状态的任务仍正常退出 0。admin info --json 在请求失败时同样返回非零退出码,并保留 JSON 错误输出。
  • 批处理状态观察(#53、#54): batch status 在实时指标暂缺时继续观察并输出新增的 pending 状态(不再把排队中或缺样本的任务误判为已完成),在指标流中断时通过带超时边界的持久化状态查询兜底,并修复了超大对象计数下的 IOPs 整数溢出。
  • 别名区域配置(#44): 支持按 MC_REGION、AWS_REGION、持久别名配置中的 region 字段、自动发现的优先级解析区域,并在客户端缓存中隔离签名区域(未新增 alias set --region 命令行参数)。
  • 底层 SDK 修复: 拒绝被截短的顺序或并行分片读取流;修复 ReadAt 的 EOF 处理、负偏移校验及 Stat 之后的读取/Seek 边界;对批量删除回退路径中的重复错误去重;移除桶复制配置时同时接受 HTTP 200 与 204(403 等真实鉴权或请求错误仍正常报错)。
  • 打包与帮助信息(#45): 升级至 Go 1.27.3 与 GoReleaser 2.19.0,Windows 归档改用 ZIP 格式;更新命令行帮助链接以及已停用的服务端自更新/SUBNET 命令提示,保留全部既有 CLI 配置与 MC_* 环境变量兼容。

自动化脚本请适配 batch status 新增的 pending 状态,以及 resync start/cancel 部分失败时的非零退出码。本次客户端升级无需变更服务端协议。下载流中途断开仍会立即报错;分片上传被 SIGINT 中断时以退出码 130 退出,未完成的分片可能需显式清理。详见完整客户端提交历史。

KES:自 20261018 以来的修改

KES 20261026 汇总了 Go 1.27.3 与云厂商 SDK 依赖维护,将二进制、Linux 软件包与容器镜像统一对齐到 20261026 批次。HTTP API、配置文件格式与后端存储密钥格式保持完全兼容。

依赖 20261018 20261026
Go 1.27.2 1.27.3
AWS SDK v2 core 1.47.3 1.47.4
AWS config / credentials 1.33.9 / 1.20.9 1.33.10 / 1.20.10
AWS Secrets Manager 1.50.4 1.50.6
Google Secret Manager 1.22.0 1.23.0
Google API / IAM 0.304.0 / 1.14.0 0.308.0 / 1.15.0
Google certificate proxy / GAX 0.3.23 / 2.26.2 0.3.24 / 2.27.0
go-rootcerts / procfs 1.0.2 / 0.22.0 1.1.0 / 0.23.0

全套 25 项模块更新还包含 AWS 配套模块与 Google 生成的 API 库;终端输出与 YAML 解析继续固定在 Lip Gloss v1 与 gopkg.in/yaml.v3。构建工具升级至 GoReleaser 2.19.0(nFPM 保持 2.48.0);Linux 软件包仅安装 /usr/local/bin/kes 可执行文件,不会自动启动未配置的服务。

兼容性回归测试覆盖了 OpenBao KV v2 与本地 Moto Secrets Manager 协议夹具,验证了升级前后写入的加密对象读取、版本回滚以及 Server 冷重启解密。生产环境升级时请保留持久化根密钥、证书与配置,并在重启 Server 后实际执行读取解密验证。详见 KES 完整提交历史。

Console 2.5 与 silo-pkg 3.15

Console 2.5.1 包含了 2.5 系列的整体界面重构、按权限裁剪导航、Overview 集群概览、对象预览、Tasks 任务中心、身份管理以及高延迟网络下的诊断流修复;2.5.1 补丁版进一步修复了启停用户组时保留既有成员、OIDC 字符串数组组权限、反向代理后的安全会话 Cookie、准确的凭据 JSON 导出、流式 ZIP 错误状态码以及键盘焦点与无障碍标签。Server 20261026 已直接内嵌此版本。

silo-pkg 3.15.2 汇总了 3.15.0 的 Go 1.27.3 与依赖升级、3.15.1 的上游 SDK 修复,以及 3.15.2 移除复制配置时的 HTTP 204 状态码兼容,同时完整保留既有策略语义与 3.14.3 的策略匹配性能优化。silo-pkg 仅作为 Go 源码模块发布,嵌入方需重新编译以纳入更新。

升级与故障边界

  1. 协调升级: 升级前请备份 IAM 状态、配置文件与加密密钥,并按 IAM 升级指南同步升级集群内的所有 Server 节点与跨站复制站点。不支持新旧版本进程长期共用同一 IAM 后端或执行滚动降级。
  2. 升级后核验: 逐一验证 LDAP/OIDC 登录、内置策略 Reset、存储桶清单刷新、多版本读取、跨站复制与加密对象解密。分片对象 FULL_OBJECT 校验和复制修复需要先升级发送端 Server,再检查待复制队列。
  3. 归档格式与脚本适配: Windows 平台归档已改为 .zip(Linux 与 macOS 保持 .tar.gz);自动化脚本请适配 mcli batch status 的 pending 状态与 resync start/cancel 部分失败时的非零退出码。既有环境变量、配置文件名与磁盘存储格式保持不变。
  4. 已知功能边界: 公开的 ListMultipartUploads 仍使用节点本地内存缓存与精确对象键查找,已退役的 strict 开关会被忽略并打印警告;#79 与 #217 尚未关闭,Webhook 热重载 PR #249 未纳入本版,更大范围的性能问题仍在 #251 中跟踪。

存储超时与一致性边界: 客户端收到请求超时并不代表底层磁盘或 RPC I/O 已经停止,也不代表该次写入一定没有提交。在部分磁盘故障、锁租约过期或网络分区下,仍可能出现迟到提交、延迟回滚或短暂读到旧值与旧标签。本版未引入分布式锁 fencing,也不会自动恢复升级前已经损坏或丢失的对象、远端分层数据与元数据。

下载与验证

各平台的二进制文件名、SHA-256 校验和、Linux 软件包与验证说明见下载页面。版本化容器镜像可直接拉取:

docker pull docker.io/pgsty/silo:RELEASE.2026-10-26T00-00-00Z
docker pull docker.io/pgsty/mc:RELEASE.2026-10-26T00-00-00Z
docker pull docker.io/pgsty/kes:RELEASE.2026-10-26T00-00-00Z
docker pull docker.io/pgsty/silo-console:v2.5.1
  • Server 标准镜像(Linux amd64/arm64 多架构 manifest):sha256:7bb2aff6b89efe1cb1303c10fc21d579447434ed06649ac9ec05a5e2dbf30ad7(与 latest 一致)
  • Server distroless 镜像(Linux amd64/arm64 多架构 manifest):sha256:e6544a902f426f2b4e775b89f3c1cd78310dbffc262d1ed82e9800c1cb1b5885(与 distroless 标签一致,两个架构均保留 silo healthcheck ready 原生健康检查,见 Server 镜像构建流水线)

各组件的发布制品均通过固定源码提交、归档校验和、软件包签名与构建溯源(Provenance)独立标识:

  • Server 制品验收: 核验了对应源码 c3ad836aed0d 的 36 项发布资产与 34 项构建溯源证明(含 6 个平台归档与 6 个 Linux 软件包),两个架构的 RPM 包均已完成 GPG 签名,校验清单、SBOM 与溯源证明同最终软件包完全一致(见 Go CI、VulnCheck、Release 与 Finalize 流水线)。
  • 本地多节点与故障注入验收: 在 Linux arm64 环境下完成了基线四节点 88 项、升级后四节点 88 项与八节点多池 136 项 S3 兼容性检查;历史对象、标签、加密对象及跨升级周期的分片上传均完整保留。在滚动重启、SIGKILL 强杀与 75 秒进程挂起恢复测试中,408 个已确认写入的对象全部完整读回,哈希与列表校验全部通过;原生可信 TLS 下的 mcli 测试套件与 16 项持久化检查同样全部通过。注意集群健康检查端点仅反映节点上报的磁盘仲裁状态,在滚动重启或升级后恢复流量前,请按启动就绪窗口指南验证实际数据面读写。
  • KES 制品与集成验收: 核验了 19 项公开资产、11 项构建溯源证明及两个签名 RPM 包。使用实际构建的 Darwin arm64 KES 二进制,先后搭配 SILO 20261018 与最终版 Server/mcli 20261026 Linux arm64 二进制完成了 OpenBao KV v2 与 Moto 升级、回滚及 Server 冷重启测试。两个架构的 KES 容器镜像内置二进制与发布归档一致,多架构镜像摘要为 sha256:ea36fcdd260c606eb89e693b0949aea73b149359605273a98fcf13c8433049cd(见 KES 制品流水线与镜像流水线)。

贡献者与完整历史

感谢 Denis Babchuk / @botdeniska 贡献生命周期、复制与多池删除修复,@910patin 修复长 DN LDAP 登录,Azat / @azataiot 定位并复现高延迟健康报告截断问题,@MikeVL 报告 resync 速率溢出与 JSON 状态输出问题,@mrjavadseydi 贡献别名区域配置支持并提出 Webhook 热重载方案,Gerald Combs / @geraldcombs 提出 Windows ZIP 归档建议,@yupoet 贡献单节点迁移指南,以及 @GhaziTriki、@devTeam-AiReg 与 @sargarass 报告的问题与反馈。

下表汇总了本发布周期内五个组件仓库中合并、采纳或跟踪的社区 Issue 与 PR:

项目 贡献者 Issue / PR 记录 说明
SILO @botdeniska #252、#253;#254、#255;#256、#257;#245、#248 修复分层对象生命周期过期、分片 FULL_OBJECT 复制校验和与多池删除安全性;#248 的跨池迁移修复已由 60c7179dd 采纳并保留原作者署名。
SILO @910patin #250 修复长 DN LDAP 用户登录失败问题。
SILO @yupoet #228 贡献经过生产验证的单节点迁移指南。
SILO @mrjavadseydi #249 Webhook 热重载提案(评审中,未合入本版)。
SILO @sargarass #79 分片上传列表语义反馈(待后续版本处理)。
SILO @GhaziTriki #251 性能问题反馈(排查跟踪中)。
SILO @devTeam-AiReg #247 发行版可用性反馈。
SILO @Vonng #217、#258 跨站复制边界说明(#217)与候选锁隔离实验(#258,最终版本已回退该变更)。
mcli @mrjavadseydi #44 支持在 alias 配置中持久化自定义 S3 区域。
mcli @MikeVL #48、#49 报告复制 resync 速率溢出与 --json 空输出问题(已在本版修复)。
mcli @geraldcombs #45 提出 Windows 发行归档采用 .zip 打包的建议(已采纳)。
mcli @Vonng #50–#55 客户端身份切换隔离与复制 resync 状态修复。
Console @azataiot #63 报告并协助复现高延迟健康报告截断问题(已在 Console 2.5.1 修复)。
Console @Vonng #64–#69 Console 2.5.1 的依赖升级、界面改进、端到端验收与发版维护。
silo-pkg @botdeniska #11 策略求值快速路径优化。
KES @Vonng 20261018–20261026 发布周期维护 依赖刷新、打包构建与 OpenBao / Moto 兼容性验收。

社区贡献者名册收录了所有参与过 Issue 或 PR 的社区成员。各仓库的完整提交对比:Server、mcli、KES、Console、pkg。

以下为 10 月 22—25 日的依赖与安全审计记录(多个组件共用的依赖按对应软件包合并列出):

10 月 24 日追加的 Go 依赖更新

Go 工具链维持 1.27.3。相对 10 月 22 日的候选依赖,本轮纳入 26 个新发布的第三方模块版本,并同步升级 Arrow 与 codescan,共更新 28 个模块:

依赖 本轮版本变化 涉及组件
pkg/sftp 1.13.11 → 1.13.12 SILO
etcd 的 api/v3、client/pkg/v3、client/v3 3.7.2 → 3.7.3 silo-pkg、mcli、Console、SILO
JWX 3.3.0 → 3.4.0 silo-pkg、mcli、Console、SILO
nats.go 1.54.0 → 1.55.0 SILO
procfs 0.22.0 → 0.23.0 mcli、Console、SILO、KES
AWS SDK v2,共 14 个模块 core 1.47.3 → 1.47.4;config 1.33.9 → 1.33.10;credentials 1.20.9 → 1.20.10;Secrets Manager 1.50.5 → 1.50.6,以及对应配套模块 KES
GCP IAM / Monitoring / Secret Manager / Google API IAM 1.14.0 → 1.15.0;Monitoring 1.31.0 → 1.32.0;Secret Manager 1.22.0 → 1.23.0;Google API 0.307.0 → 0.308.0 IAM 与 Google API:SILO、KES;Monitoring:SILO;Secret Manager:KES
go-rootcerts 1.0.2 → 1.1.0 KES
Arrow 18.7.0 → 18.8.0 SILO 的 Azure SDK 间接依赖
codescan 0.36.4 → 0.36.6 Console 生成工具链

本轮更新保持既有公共 API 与输出格式不变;各组件最终锁定的模块版本见上文组件清单。

已纳入的运行时安全修复

Go 与证书信任

CVE-2026-111943 / GO-2026-6809:Go 1.27.3 在 crypto/x509 证书链校验中直接拒绝已知失信的中间证书,在操作系统信任库尚未更新时也能提供兜底拦截。五个主项目及全部独立调试工具均统一使用 Go 1.27.3 编译。

此外,SILO、mcli 与 KES 的 UBI 容器信任库已应用 Red Hat RHSB-2026-012 的根证书封禁列表。由于根级封禁会一并拒绝挂靠在这些根证书之下的所有证书链,其拦截范围比 Go 1.27.3 的中间证书黑名单更广;若外部服务仍使用受影响根证书签发的证书链,需先行更换证书。发行版 CA 软件包的跟进状态见下文本地缓解。

SFTP 依赖安全加固

pkg/sftp 1.13.12 修复了 10 月 23 日公布的三项安全问题。截至本次核对,它们均没有 CVE 编号,以下按 GHSA 单独记录,不计作新增 CVE:

公告 上游问题 SILO 适用性
GHSA-xgcg-wgmj-5rw3,Medium Client.RemoveAll 跟随顶层符号链接,可能删除目标目录内容 SILO 服务端未调用该客户端 API
GHSA-47hq-m6q9-3rm6,Medium sftp.Server 的 ReadOnly 模式允许创建硬链接 SILO 使用 NewRequestServer 与自有 driver,未使用该只读 Server API
GHSA-h959-g3h6-w76c,High ReadOnly 模式允许截断或新建文件 同上

上游后两条公告的受影响版本区间(affected range)与修复版本字段存在矛盾,本次直接升级至包含实际代码修复的 1.13.12 并通过回归测试验证(当前 Go 漏洞库快照停留在 10 月 21 日,尚未收录这三条 10 月 23 日发布的公告)。

静态 curl 及其链接库

SILO 容器镜像内置的静态 curl 从 8.22.0 升级至 8.23.0(启用 HTTP/2、SSH 与 Brotli,TLS 后端采用 OpenSSL)。下表完整列出 curl 8.22.0 官方漏洞汇总中的 21 个 CVE 及其在当前静态构建中的适用情况:

CVE 问题 / 适用性
CVE-2026-92392 HTTP/2 上传释放后使用(UAF)
CVE-2026-107929, CVE-2026-94266, CVE-2026-94265, CVE-2026-86413, CVE-2026-86414, CVE-2026-86415, CVE-2026-87861 连接复用、凭据或认证边界处理缺陷
CVE-2026-92386, CVE-2026-86412, CVE-2026-87862, CVE-2026-87863 Cookie 与 HSTS 状态污染
CVE-2026-92387, CVE-2026-92388, CVE-2026-92389, CVE-2026-92390, CVE-2026-92391 循环处理、FTP/TFTP、下载文件名及 MIME 递归解析
CVE-2026-86410, CVE-2026-87865 SSH 主机校验及 known_hosts 回调
CVE-2026-107928, CVE-2026-87866 仅影响 GnuTLS / wolfSSL 后端;当前 OpenSSL 构建不使用这两类后端

静态链接的 Alpine 底层库同步升级至以下回补版本(-rN 代表含安全回补的 Alpine 修订号):

库 本次版本变化 CVE
Brotli 1.2.0-r1 → 1.2.1-r0 CVE-2026-111497
musl 1.2.6-r2 → 1.2.6-r3 CVE-2026-107891
libssh2 1.11.1-r3 → 1.11.1-r4 CVE-2025-15661, CVE-2026-58050, CVE-2026-58051, CVE-2026-66032, CVE-2026-66033, CVE-2026-66034, CVE-2026-66035

此前发布的 SILO arm64 镜像静态库清单已包含 OpenSSL 3.5.9-r0、nghttp2 1.70.0-r0(CVE-2026-58055)与 zlib 1.3.2-r1(CVE-2026-85091);本次在构建脚本中显式锁定上述最低安全版本并完成双架构验证。Alpine 修复修订详见官方安全元数据。

构建与开发工具安全修复

本节记录 SILO Console 前端资源构建、代码生成与测试环境(生产环境运行的是编译后的 Go 服务端二进制),以及仓库内独立的 Go 调试模块。

Node 24.22.1

构建环境的 Node.js 从 24.22.0 升级至 24.22.1。下表列出 Node.js 2026 年 10 月安全公告中适用于 Node 24.x 的 8 个 CVE(不含仅影响 Node 26 的条目):

CVE 修复内容
CVE-2026-105482 DNS 名称中的 NUL 字节截断
CVE-2026-105483, CVE-2026-106069, CVE-2026-106072 非规范 IP 地址导致 TLS 主机名校验绕过
CVE-2026-111497 Brotli 解码越界写(Node 已回补修复,内置版本字符串仍显示 1.2.0)
CVE-2026-105481 HTTP keep-alive 接受请求前的响应数据
CVE-2026-106074 启动快照重复使用随机数缓存
CVE-2026-106073 fs.realpathSync 权限模型绕过

Node 24.22.1 内置的 Undici 从 7.29.1 升至 7.30.1,包含以下 8 项修复(详见 Undici v7.30.1 发布说明):

CVE 修复内容
CVE-2026-87018, CVE-2026-109383 TLS 重协商崩溃、Agent 丢失自定义验证回调
CVE-2026-109829, CVE-2026-109841 跨源缓存污染 / 数据泄露及 SRI 校验绕过
CVE-2026-109869, CVE-2026-87029, CVE-2026-109924, CVE-2026-109932 内容解码、EventSource 和 WebSocket 的拒绝服务

Node 24.22.1 内置的 OpenSSL 从 3.5.8 升至 3.5.9(旧 Node 24.22.0 仍停留在 3.5.8),涵盖 DTLS、QUIC、CRL、CMP、EC / SM2 与握手内存安全方面的 13 项修复:CVE-2026-84782, CVE-2026-35189, CVE-2026-35191, CVE-2026-42772, CVE-2026-54872, CVE-2026-54873, CVE-2026-54875, CVE-2026-72897, CVE-2026-75804, CVE-2026-75805, CVE-2026-75806, CVE-2026-77696, CVE-2026-84784。

Node 24.22.1 内置的 c-ares 从 1.34.8 升至 1.34.9,修复了 11 条尚未分配独立 CVE 编号的上游 GHSA 公告(其中 GHSA-wpr3-8q3r-4q8c 补齐了此前 CVE-2026-33630 修复遗漏的连接关闭路径,上游仍标为 No known CVE):

公告 修复内容
GHSA-wpr3-8q3r-4q8c 连接失败后取消查询时的内存破坏
GHSA-fqh5-3x7m-wp44 接受来自错误 DNS 服务器的响应
GHSA-97vq-4mxv-7vhm 关闭失败连接后查询对象的释放后使用
GHSA-rf6g-ww74-97qh 取消 / 关闭回调中的释放后使用
GHSA-mw23-pfg6-2x9r socket 状态回调后的释放后使用
GHSA-v33j-65h4-4ch8 服务器状态回调取消查询时的释放后使用
GHSA-pj7p-v3cw-hq66 回调更换 DNS 服务器时的释放后使用
GHSA-grv7-fq5q-9vfc 读取缓存响应时的释放后使用
GHSA-ph6c-3cvx-mq6v 并发复制选项 / 修改服务器时的缓冲区溢出
GHSA-cfcv-8v2j-qj6r 带前缀长度的 IPv6 地址暴露未初始化内存
GHSA-wrgc-prmw-27xh 缓存错误复用不同 EDNS 选项的响应

前端依赖与代码生成器

依赖 CVE / GHSA 修复内容
fast-uri 3.1.7 → 3.1.9 CVE-2026-86472 编码主机名大小写规范化不一致
ip-address 10.4.0 → 10.7.4 CVE-2026-101913 链路本地 IPv6 分类错误
ip-address 10.4.0 → 10.7.4 CVE-2026-101910 遗漏 NAT64 本地使用网段
ip-address 10.4.0 → 10.7.4 CVE-2026-101912 混合地址族的子网检查绕过
ip-address 10.4.0 → 10.7.4 CVE-2026-101911 超长地址错误诊断导致资源耗尽
moment 2.30.1 → 2.31.0 CVE-2026-17495 非字符串 locale 参数路径穿越
smol-toml 1.8.0 → 1.9.1 GHSA-r4xh-jqrq-34v2 TOML 解析二次复杂度
vite 8.0.16 → 8.3.5 CVE-2026-112945 开发中间件跨源脚本执行
vite 8.0.16 → 8.3.5 CVE-2026-112946 开发服务器文件允许列表绕过
vite 8.0.16 → 8.3.5 CVE-2026-112943 Windows 编辑器参数转义不足
vite 8.0.16 → 8.3.5 CVE-2026-112944 编辑器参数被解释为命令选项
vite 8.0.16 → 8.3.5 CVE-2026-112942 Windows 编辑器路径检查绕过

此外,代码生成工具 go-swagger 从 0.33.2 升级至 0.36.6,修复 GHSA-8gmg-wf5j-hvf7 与 GHSA-rg22-m539-jwvf(不可信 OpenAPI 规范中的内容类型或枚举值在代码生成阶段可能触发代码注入,上游首次修复版本为 0.35.3,无独立 CVE 编号)。生成文件已与新版工具同步;生成流程显式保留经过审查的配置导入绑定器与 multipart 处理方式,并通过回归测试保留原有文件大小、文件名和表单编码行为。

独立 Go 调试模块

服务端仓库下的 inspect、s3-verify 与 xattr 三个独立调试模块此前落后于根模块版本。本次同步消除了 37 个带 CVE 编号的依赖版本告警及 1 个无 CVE 的 S2 公告:

依赖 受影响独立模块 最终版本
golang.org/x/crypto inspect、s3-verify 0.58.0
golang.org/x/net s3-verify 0.61.0
golang.org/x/text s3-verify 0.43.0
golang.org/x/sys inspect、xattr 0.49.0
klauspost/compress inspect、s3-verify 1.20.3

下表列出对应的 Go 官方漏洞库条目与上游首次修复版本(OpenPGP 的无修复公告单列于下文其他残留项):

CVE / 公告 依赖 首次修复 问题
GO-2026-5841 klauspost/compress v1.18.7 S2 越界读取(无 CVE 编号)
CVE-2026-39824 x/sys v0.44.0 Windows Unicode 字符串整数溢出
CVE-2025-47913 x/crypto v0.43.0 SSH agent 拒绝服务
CVE-2025-58181 x/crypto v0.45.0 SSH 无界内存消耗
CVE-2025-47914 x/crypto v0.45.0 SSH agent 畸形约束拒绝服务
CVE-2026-39833 x/crypto v0.52.0 SSH agent 密钥约束未执行
CVE-2026-39832 x/crypto v0.52.0 SSH 密钥转发丢失约束
CVE-2026-46597 x/crypto v0.52.0 SSH 字节运算下溢及 panic
CVE-2026-39828 x/crypto v0.52.0 SSH 证书限制绕过
CVE-2026-39835 x/crypto v0.52.0 SSH 主机密钥 / 认证回调 panic
CVE-2026-39827 x/crypto v0.52.0 拒绝 SSH channel 时内存泄漏
CVE-2026-39830 x/crypto v0.52.0 SSH 非预期响应导致死锁
CVE-2026-39829 x/crypto v0.52.0 畸形 RSA / DSA 参数导致拒绝服务
CVE-2026-39831 x/crypto v0.52.0 FIDO / U2F 物理交互要求绕过
CVE-2026-39834 x/crypto v0.52.0 SSH 大 channel 写入无限循环
CVE-2026-42508 x/crypto v0.52.0 known_hosts 的 @revoked 未执行
CVE-2026-46595 x/crypto v0.52.0 VerifiedPublicKeyCallback 权限未执行
CVE-2026-46598 x/crypto v0.52.0 SSH agent 畸形输入导致 panic
CVE-2026-56854 x/crypto v0.55.0 SSH 非公钥认证遗漏 source-address 约束
CVE-2026-78662 x/crypto v0.56.0 未决 SSH channel 死锁
CVE-2026-56855 x/crypto v0.56.0 已建立 SSH channel 死锁
CVE-2025-47911 x/net v0.45.0 HTML 解析二次复杂度
CVE-2025-58190 x/net v0.45.0 HTML 解析无限循环
CVE-2026-33814 x/net v0.53.0 HTTP/2 非法帧大小导致循环
CVE-2026-42506 x/net v0.55.0 HTML foreign content 命名空间处理错误
CVE-2026-39821 x/net v0.55.0 未拒绝纯 ASCII 的 Punycode 标签
CVE-2026-42502 x/net v0.55.0 HTML foreign content 元素处理错误
CVE-2026-25680 x/net v0.55.0 畸形 HTML 解析拒绝服务
CVE-2026-25681 x/net v0.55.0 DOCTYPE 字符引用处理错误
CVE-2026-27136 x/net v0.55.0 重复 HTML 属性导致 XSS
CVE-2026-46600 x/net v0.56.0 畸形 SVCB / HTTPS DNS 记录导致 panic
CVE-2026-78659 x/net v0.60.0 HTTP/2 Trailer 导致内存耗尽
CVE-2026-78660 x/net v0.60.0 HTTP/2 接受畸形帧相关头
CVE-2026-78669 x/net v0.60.0 HTTP/2 窗口反复变化导致 CPU 耗尽
CVE-2026-78663 x/net v0.60.0 HTTP/2 流控额度重复返还
CVE-2026-97032 x/net v0.60.0 HTTP/2 HPACK 编码器竞争导致崩溃
CVE-2026-56852 x/text v0.39.0 非法文本输入导致无限循环
CVE-2026-56851 x/text v0.41.0 PRECIS 解析畸形输入导致 panic

上游或发行版仍未解决的条目

截至 2026-10-23,以下条目在上游或所选操作系统发行版中尚无可用修复版本。我们保留原始扫描记录,并逐项说明已采取的本地缓解措施或运行时可达性边界。

已做本地缓解,等待上游发布

条目 上游 / 发行版状态 本次处理及剩余边界
CVE-2026-93687 / braces 最新 npm 版本仍为 3.0.3,上游尚未发布修复版本 对 [email protected] 应用本地 Yarn 补丁,将解析与 AST 遍历深度限制为 100(13 项回归测试通过)。该包仅位于前端构建/测试依赖图;纯版本号比对的扫描器仍会提示告警。待上游发布官方修复版并通过验证后移除本地补丁。
CVE-2026-111943 / UBI CA 验收时 UBI 9 仍提供 ca-certificates 2025.2.80_v9.0.305-91.el9,尚未包含最新信任变更 已在构建阶段执行 Red Hat 官方根证书封禁并校验生成的 PEM 文件;Go 1.27.3 与 Node 24.22.1 也各自内置了证书信任拦截。后续继续跟踪 UBI ca-certificates 包更新。

UBI 9.8 尚无适用发行版补丁的扫描记录

2026-10-22 对 SILO、mcli 与 KES 在 amd64 和 arm64 上的系统组件验收镜像(包含最终静态 curl 与 CA 证书库)进行了扫描:每个镜像均保留 24 条 RPM 记录,对应同一组 12 个唯一 CVE(15 条 Medium、9 条 Low,无 High / Critical,所有记录的 FixedVersion 均为空)。2026-10-23 复查 Red Hat 安全数据时,以下 RHEL 9 源包状态仍为 Affected 或 Fix deferred。

由于 RPM 扫描器按源包(SRPM)映射漏洞,部分仅存在于未安装命令行工具或其他 CPU 架构中的缺陷也会挂靠到基础运行库(如 libgcc、glibc)名下;下表逐一列出各条目的实际适用范围:

CVE 源包 Red Hat 级别 RHEL 9 状态 适用性
CVE-2026-56391 coreutils Moderate Fix deferred uniq 多字节输入越界读,需特定命令行参数与输入触发
CVE-2026-8674 glibc Moderate Fix deferred DNS resolver 处理超长搜索域时触发进程中止
CVE-2026-86805 glibc Moderate Affected 动态加载器本地竞争,需满足本地 setuid、路径与硬链接前提
CVE-2026-89092 glibc Moderate Affected nscd DNS 缓存守护进程缺陷;容器镜像未安装 nscd 包
CVE-2026-95818 glibc Moderate Affected 动态加载器栈越界,需特定本地 setuid 与路径条件
CVE-2026-97399 glibc Low Affected Power8 架构专用优化路径;发布镜像仅针对 amd64 / arm64
CVE-2021-46195 gcc Low Fix deferred libiberty 符号解码器递归耗尽(Red Hat 公告中的 mingw-gcc 修复不适用于 libgcc 运行库)
CVE-2022-27943 gcc Low Fix deferred libiberty 缺陷;Red Hat 明确说明 libgcc / libstdc++ 不含受影响代码
CVE-2026-95619 gcc Moderate Affected libstdc++ 对齐分配溢出,因源包归属映射为 libgcc 告警
CVE-2026-102010 gcc Moderate Affected libstdc++ 可选 pb_ds 容器缺陷,因源包归属映射为 libgcc 告警
CVE-2023-50495 ncurses Low Fix deferred tic 终端编译工具缺陷,不在 libncurses 运行库中
CVE-2022-41409 pcre2 Low Fix deferred 仅影响 pcre2-tools 命令行工具;UBI 未安装该工具包

构建阶段与无 CVE 公告

  • Alpine 构建阶段宿主包的 curl / libcurl 仍为 8.22.0-r0:截至 2026-10-23,Alpine 双架构包索引尚未推送 8.23.0。该包仅在容器构建阶段用于下载固定 SHA-256 校验和的源码包,最终打入运行镜像的是从源码编译的静态 curl 8.23.0。
  • GO-2026-5932:golang.org/x/crypto/openpgp 已废弃且无上游修复版本(无 CVE 编号)。虽然 golang.org/x/crypto 仍在模块图中,但已核查的构建目标均未导入受影响的 openpgp 子包。

已有历史修复,不属于本次新增漏洞

按模块路径匹配的二进制扫描器仍会对 SILO 报告 CVE-2025-27414、CVE-2026-33322、CVE-2026-33419、CVE-2026-34204、CVE-2026-39414、CVE-2026-40344、CVE-2026-41145、CVE-2026-42600(因为 SILO 保留了 github.com/minio/minio 模块路径,而上游通告使用开放版本区间)。这八项缺陷在此前版本中均已修复并通过回归测试,详见 SFTP 公告、OIDC、LDAP、复制元数据、CSV、Snowball、签名校验 与 ReadMultiple。

兼容性与依赖回归证据

为避免已复现的终端表格输出变化、字符宽度计算差异及 NetBSD 交叉编译回归,本次固定保留 tablewriter 0.0.5、go-humanize 1.0.1、根模块 go-runewidth 0.0.29 及 go-systemd/v22 22.6.0(xattr 模块保留其既有宽度库组合)。此外:

  • Kafka 通知目标在应用用户配置前显式保留协议版本默认值 2.1;
  • DARE 加密继续使用 32 字节密钥与 v2 写入格式,并修复旧 v1 解封缓冲区处理;
  • pgzip 保留对缺失校验尾部返回 unexpected EOF 的完整性检查。

10 月 22 日至 23 日的候选构建(与回退基线均基于 Go 1.27.3,持久化验收在单节点四盘 Linux arm64 环境执行)已完成以下验证:

  • 全量编译、适用的 -race 与 lint 检查;
  • 加密对象在新旧依赖栈之间的互读与回滚验证;
  • 服务重启、缺失分片自愈恢复与 CLI 格式化输出校验;
  • Console 真实对象上传下载、ZIP 归档预览、WebSocket 会话及监控指标图表验证。

10 月 24 日追加升级后的候选源码另行完成以下验证:

  • silo-pkg、mcli、KES 的全量 race 测试,Console 的 API / pkg / cmd race 测试,以及 SILO 的全量测试和 SFTP、IAM、Parquet 专项 race 测试;五个项目的 lint、模块校验与依赖整洁性检查通过。
  • SFTP 自有驱动在 HTTP / HTTPS S3 后端上的对象读写、列表、删除、Unicode 文件名、传输块边界和只读权限保护;上游只读服务与符号链接删除回归测试通过。旧、新依赖均通过新增的对象操作测试。
  • JWX 签名与时间声明边界对照通过;68 项 CLI 输出对照无新增差异,仅对既有元数据映射顺序做归一化。
  • 本地 etcd 服务的 mTLS、账户认证、事务、watch、lease 和旧→新→旧客户端跨服务重启读取;NATS / STAN 的消息持久化、ACK、持久订阅游标及断线重连通过。
  • Azure / GCS 本地协议夹具、KES GCP Secret Manager 操作与分页、Azure SDK 的 Arrow 解码测试、procfs 完整上游解析夹具测试通过。procfs 更新包含 bcache 单位及 NVMe 大小的解析修正,相关指标数值可能随之纠正。
  • mcli、Console、SILO、KES 的 Darwin arm64 原生构建与 Linux amd64 交叉构建,以及 mcli、SILO 的 NetBSD amd64 交叉构建通过。

本轮五个项目的 Linux amd64 包级 Go 漏洞扫描未发现受影响的已导入包(仅余未导入受影响子包的模块级 GO-2026-5932 记录)。