You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: developer-support/release-notes/gateway.mdx
+56-10Lines changed: 56 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,13 +44,25 @@ For a comprehensive list of changes, please refer to the detailed [changelog](#C
44
44
45
45
#### Breaking Changes
46
46
47
-
There are no breaking changes in this release.
47
+
**1. Query parameter handling in Tyk internal loops (tyk://) now requires explicit configuration**
48
+
49
+
In Tyk Gateway version 5.8.14, we have fixed inconsistent query parameter behavior in URL rewrites using Tyk internal loops (`tyk://api-id/path`). Previously, query parameters added to the `rewrite_to` URL were silently dropped, while original request parameters were automatically preserved. This behavior was inconsistent with standard HTTP URL rewrites and prevented proper parameter transformation during internal API routing.
50
+
51
+
**Impact**
52
+
- Original request query parameters are no longer automatically forwarded through internal loops
53
+
- Existing URL rewrite configurations may lose query parameters that were previously passed through automatically
54
+
- APIs relying on automatic parameter forwarding will receive incomplete requests
55
+
56
+
**Migration Required**
57
+
Update your URL rewrite configurations to explicitly include any original query parameters you want to preserve. For example:
| Gateway Version | Recommended Releases | Backwards Compatibility |
52
64
|--------|-------------------|---- |
53
-
| 5.12.0 | MDCB v2.10.0 | MDCB v2.10.0 |
65
+
| 5.13.0 | MDCB v2.10.0 | MDCB v2.10.0 |
54
66
|| Operator v1.4.0 | Operator v0.17 |
55
67
|| Sync v2.1.7 | Sync v2.1.0 |
56
68
|| Helm Chart v5.2.0 | Helm all versions |
@@ -315,17 +327,34 @@ For example, if an API has `config_data: {"environment": "staging", "team": "pla
315
327
316
328
<AccordionGroup>
317
329
318
-
(TBR!!)<Accordiontitle='Reduced Log Noise for TLS Certificate Authentication Errors'>
319
-
Resolved an issue where TLS certificate authentication errors were creating excessive log noise. Previously, when clients attempted to connect without required TLS certificates, the "Client TLS certificate is required" message was logged at WARNING level, causing unnecessary alert fatigue in production environments where this is often expected behavior. The Gateway now logs these authentication failures at INFO level, maintaining security visibility while reducing log noise for operators.
330
+
<Accordiontitle='Fixed Log Level for Client TLS Certificate Requirement Errors'>
331
+
Resolved an issue where "Client TLS certificate is required" errors were logged at WARNING level, creating unnecessary noise in production logs. Previously, these common client-side authentication failures generated excessive warning-level log entries that could trigger false alerts and obscure more critical issues. The Gateway now logs these authentication failures at INFO level, maintaining security visibility while reducing log noise and alert fatigue for operations teams.
332
+
</Accordion>
333
+
334
+
<Accordiontitle='Fixed malformed responses from Go plugins returning error status codes'>
335
+
Resolved an issue where Go plugins returning error status codes caused duplicate `response.WriteHeader` calls, resulting in malformed response bodies that concatenated the original plugin response with additional Gateway error messages.
336
+
337
+
The Gateway now properly handles plugin-generated error responses without double-writing headers, ensuring response bodies contain only the original plugin content and eliminating superfluous WriteHeader warnings in logs.
338
+
</Accordion>
339
+
340
+
<Accordiontitle='Fixed query parameter handling in Tyk internal loops (tyk://)'>
341
+
Resolved inconsistent query parameter handling in URL rewrites using Tyk internal loops (`tyk://api-id/path`). Previously, custom query parameters specified in the `rewrite_to` URL were silently dropped, while original request parameters were unexpectedly preserved.
342
+
343
+
**What's Fixed:**
344
+
- Query parameters explicitly added to `rewrite_to` URLs are now correctly passed to target APIs
345
+
- Control parameters (`method`, `loop_limit`, `check_limits`) are properly consumed and removed
346
+
- Behavior now matches standard HTTP URL rewrites for consistency
347
+
348
+
Original request query parameters are no longer automatically forwarded through internal loops. Update your URL rewrite configurations to explicitly include any required parameters in the `rewrite_to` URL.
320
349
</Accordion>
321
350
322
-
<Accordiontitle='!!Fixed Client mTLS Authentication Between Tyk Gateways'>
351
+
<Accordiontitle='Fixed Client mTLS Authentication Between Tyk Gateways'>
323
352
Resolved an issue where a Tyk Gateway acting as a client (using upstream mTLS) would fail to authenticate against another mTLS-protected Tyk Gateway or upstream server, resulting in `HTTP 403 Forbidden: "Client TLS certificate is required"` errors.
324
353
325
354
The Gateway now reliably presents the configured upstream client certificate whenever requested by the target server, ensuring seamless mTLS communication between gateways and other upstream services.
326
355
</Accordion>
327
356
328
-
<Accordiontitle='!!Fixed Default Gateway TLS Version to TLS 1.3'>
357
+
<Accordiontitle='Fixed Default Gateway TLS Version to TLS 1.3'>
329
358
Resolved an issue where the Tyk Gateway default maximum TLS version was incorrectly set to TLS 1.2 instead of TLS 1.3.
330
359
331
360
Tyk Gateway now follows Go's native TLS defaults (TLS 1.2 minimum, TLS 1.3 maximum), aligning with industry security standards. This maintains full backward compatibility for existing deployments that explicitly configure TLS versions.
@@ -335,24 +364,24 @@ To change the maximum TLS version, you must now explicitly set `TYK_GW_HTTPSERVE
335
364
To change the minimum TLS version, you must now explicitly set `TYK_GW_HTTPSERVEROPTIONS_MINVERSION` for client-to-Gateway connections or `TYK_GW_PROXYSSLMINVERSION` for Gateway-to-upstream connections.
336
365
</Accordion>
337
366
338
-
<Accordiontitle='!!Fixed CORS Preflight Blocking by AllowList Middleware'>
367
+
<Accordiontitle='Fixed CORS Preflight Blocking by AllowList Middleware'>
339
368
Resolved an issue where CORS preflight OPTIONS requests were incorrectly blocked by the AllowList middleware when `options_passthrough` was disabled. Previously, when APIs had CORS enabled with Tyk handling OPTIONS requests internally (`options_passthrough: false`), preflight requests would fail AllowList validation because users typically don't explicitly define OPTIONS endpoints in their AllowList configurations, causing "Requested endpoint is forbidden" errors.
340
369
341
370
The Tyk Gateway now properly recognizes CORS preflight requests and allows them to bypass AllowList middleware checks when Tyk is configured to handle OPTIONS internally, restoring the expected behavior where CORS preflight handling works automatically without requiring explicit OPTIONS endpoint definitions.
342
371
</Accordion>
343
372
344
-
Accordion title='!!Fixed Analytics Generation for OAS API Mock Endpoints'>
373
+
Accordion title='Fixed Analytics Generation for OAS API Mock Endpoints'>
345
374
Resolved an issue where OAS APIs with mock endpoints stopped generating analytics data. Previously, analytics were properly captured for mock responses in OAS APIs since the Mock Middleware executes at the end of the middleware chain, but this functionality was inadvertently broken while fixing an unrelated internal API proxying issue.
346
375
347
376
Tyk Gateway now correctly generates analytics for OAS API mock endpoints while maintaining the existing behavior for Classic APIs, which intentionally do not generate analytics for mock endpoints, as it is documented.
348
377
</Accordion>
349
378
350
-
<Accordiontitle='!!Fixed OpenTelemetry Configuration File Settings Being Ignored'>
379
+
<Accordiontitle='Fixed OpenTelemetry Configuration File Settings Being Ignored'>
351
380
Resolved an issue where OpenTelemetry settings in the Gateway configuration file were not being applied. Previously, when users configured OpenTelemetry via the `opentelemetry` section in the Gateway config file (including `enabled`, `exporter`, and `endpoint` fields), these settings were ignored, and only environment variables like `TYK_GW_OPENTELEMETRY_ENABLED` would take effect.
352
381
Tyk Gateway now properly reads and applies OpenTelemetry configuration from the config file as documented.
353
382
</Accordion>
354
383
355
-
<Accordiontitle='!!Resolved issue with Gateway entering an unresponsive state during registration failures'>
384
+
<Accordiontitle='Resolved issue with Gateway entering an unresponsive state during registration failures'>
356
385
Fixed an issue where the Gateway would fail to load APIs and policies if the Dashboard database was temporarily unavailable during startup. The Gateway will now automatically retry loading configurations with exponential backoff until successful, restoring self-healing capabilities without requiring a manual restart.
357
386
</Accordion>
358
387
@@ -380,6 +409,23 @@ Resolved an issue where the `tyk.gateway.apis.loaded` and `tyk.gateway.policies.
380
409
381
410
</AccordionGroup>
382
411
412
+
##### Security Fixes
413
+
414
+
<AccordionGroup>
415
+
416
+
<Accordiontitle='CVE fixed'>
417
+
Addressed CVEs reported in dependent libraries, providing increased protection against security
0 commit comments