发布日期: 2026-04-22
版本号: v3.6.14

本次发布的Traefik v3.6.14包含一个重要的行为变更修复:Chain中间件的CRD现在会正确遵守allowCrossNamespace配置。在之前的版本中,即使该配置被禁用,Chain中间件仍然可以引用其他命名空间的中间件。从v3.6.14起,当allowCrossNamespace为默认的false时,引用其他命名空间中间件的Chain将被拒绝并记录错误。这是一个针对非预期行为的修复,可能会影响依赖旧有错误行为的现有配置,升级前请务必审查相关配置。 此次更新还修复了多个安全漏洞(CVE-2026-40912、CVE-2026-39858、CVE-2026-35051、CVE-2026-41263、CVE-2026-41174),以及包括Docker、会话Cookie、Kubernetes CRD支持、中间件认证和WebUI组件在内的多处缺陷,同时更新了相关文档。

更新内容 (中文)

⚠️ 破坏性变更 ⚠️

此版本包含一个错误修复(#12976),使得 Chain 中间件的自定义资源定义(CRD)遵循 allowCrossNamespace 配置。在此版本之前,Chain 中间件无论 allowCrossNamespace 设置如何,都可以引用其他命名空间中的中间件。从 v3.6.14 开始,当 allowCrossNamespace=false(默认值)时,引用其他命名空间中中间件的 Chain 将会被拒绝,并会记录一条错误日志。

这是一个错误修复,并非我们意图支持的行为,但它可能会影响依赖先前(不正确)行为的现有配置。请在升级前检查您的 Chain 中间件引用。详情请参阅迁移指南


重要提示: 请阅读迁移指南

已修复的CVE:

错误修复:

  • [acme] 将 github.com/go-acme/lego/v4 升级至 v4.34.0(#12993 @ldez)
  • [docker] 在检查时降低因容器缺失而产生的日志级别(#12900 @Otoru)
  • [sticky-session, k8s/crd] 使 SameSite cookie 值不区分大小写(#12922 @murataslan1)
  • [k8s/crd, k8s] 使 Chain 中间件 CRD 遵循 allowCrossNamespace 配置(#12976 @rtribotte)
  • [middleware] 移除不可信的带有下划线的 X 头(#12961 @rtribotte)
  • [middleware] 在剥离前缀后清理请求 URL(#12990 @kevinpollet)
  • [middleware] 弃用 ForwardAuth.TrustForwardHeader 选项(#13012 @kevinpollet)
  • [middleware, authentication] 移除导致基本身份验证 notFoundSecret 为空的映射查找(#12960 @rtribotte)
  • [middleware, authentication] 修复转发身份验证中间件上的 trustForwardHeader(#12994 @juliens)
  • [middleware, authentication] 清理并统一 ForwardAuth 日志(#13013 @kevinpollet)
  • [webui] 将 form-data 升级至 2.5.4、3.0.4、4.0.4(#12958 @orbisai0security)

文档:

  • [k8s] 修复 yaml 缩进(#12957 @isayme)
  • [k8s] 澄清安装配置的 watchNamespace 仅监视单个命名空间(#12962 @parkerfath)
  • [k8s/crd] 更新 ingressroute.md(#12916 @Rajakavitha1)
  • 在迁移指南中反转版本顺序(#12959 @nmengin)
  • 更新漏洞提交指南(#12968 @emilevauge)

更新内容 (原始)

⚠️ Breaking change ⚠️

This release includes a bug fix (#12976) that makes Chain middleware CRDs honor the allowCrossNamespace configuration. Before this version, Chain middlewares could reference middlewares from other namespaces regardless of allowCrossNamespace. Starting with v3.6.14, when allowCrossNamespace=false (the default), a Chain referencing a middleware in a different namespace will be rejected and an error will be logged.

This was a bug fix and not a behavior we intended to support, but it may impact existing configurations that were relying on the previous (incorrect) behavior. Please review your Chain middleware references before upgrading. See the migration guide for details.


Important: Please read the migration guide.

CVE fixed:

Bug fixes:

  • [acme] Bump github.com/go-acme/lego/v4 to v4.34.0 (#12993 @ldez)
  • [docker] Downgrade log level for missing container on inspect (#12900 @Otoru)
  • [sticky-session, k8s/crd] Make SameSite cookie value case-insensitive (#12922 @murataslan1)
  • [k8s/crd, k8s] Honor allowCrossNamespace with chain middleware CRD (#12976 @rtribotte)
  • [middleware] Remove untrusted X headers with underscores (#12961 @rtribotte)
  • [middleware] Sanitize the request URL after stripping the prefix (#12990 @kevinpollet)
  • [middleware] Deprecate ForwardAuth.TrustForwardHeader option (#13012 @kevinpollet)
  • [middleware, authentication] Remove map lookup making the basic auth notFoundSecret empty (#12960 @rtribotte)
  • [middleware, authentication] Fix trustForwardHeader on forward auth middleware (#12994 @juliens)
  • [middleware, authentication] Cleanup and make ForwardAuth logs consistent (#13013 @kevinpollet)
  • [webui] Upgrade form-data to 2.5.4, 3.0.4, 4.0.4 (#12958 @orbisai0security)

Documentation:

  • [k8s] Fix yaml indentation (#12957 @isayme)
  • [k8s] Clarify install config watchNamespace watches only one namespace (#12962 @parkerfath)
  • [k8s/crd] Update ingressroute.md (#12916 @Rajakavitha1)
  • Reverse versions order in migration guide (#12959 @nmengin)
  • Update vulnerability submission guidelines (#12968 @emilevauge)

下载链接