SILO 20261026:Server、mcli 与 KES 联合发布
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 边界;对批量删除回退路径中的重复错误去重;移除桶复制配置时同时接受 HTTP200与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 源码模块发布,嵌入方需重新编译以纳入更新。
升级与故障边界
- 协调升级: 升级前请备份 IAM 状态、配置文件与加密密钥,并按 IAM 升级指南同步升级集群内的所有 Server 节点与跨站复制站点。不支持新旧版本进程长期共用同一 IAM 后端或执行滚动降级。
- 升级后核验: 逐一验证 LDAP/OIDC 登录、内置策略 Reset、存储桶清单刷新、多版本读取、跨站复制与加密对象解密。分片对象
FULL_OBJECT校验和复制修复需要先升级发送端 Server,再检查待复制队列。 - 归档格式与脚本适配: Windows 平台归档已改为
.zip(Linux 与 macOS 保持.tar.gz);自动化脚本请适配mcli batch status的pending状态与resync start/cancel部分失败时的非零退出码。既有环境变量、配置文件名与磁盘存储格式保持不变。 - 已知功能边界: 公开的
ListMultipartUploads仍使用节点本地内存缓存与精确对象键查找,已退役的strict开关会被忽略并打印警告;#79 与 #217 尚未关闭,Webhook 热重载 PR #249 未纳入本版,更大范围的性能问题仍在 #251 中跟踪。
存储超时与一致性边界: 客户端收到请求超时并不代表底层磁盘或 RPC I/O 已经停止,也不代表该次写入一定没有提交。在部分磁盘故障、锁租约过期或网络分区下,仍可能出现迟到提交、延迟回滚或短暂读到旧值与旧标签。本版未引入分布式锁 fencing,也不会自动恢复升级前已经损坏或丢失的对象、远端分层数据与元数据。
下载与验证
各平台的二进制文件名、SHA-256 校验和、Linux 软件包与验证说明见下载页面。版本化容器镜像可直接拉取:
- 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
arm64KES 二进制,先后搭配 SILO 20261018 与最终版 Server/mcli 20261026 Linuxarm64二进制完成了 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 记录)。