Traefik Warden Changelog & Release Notes
All notable changes to the Traefik Warden plugin (github.com/routewarden/traefik-warden) are documented here.
The format is based on Keep a Changelog, and Traefik Warden adheres to Semantic Versioning.
[v1.4.2] - 2026-10-09 (Latest)
Key Highlights
- Traefik Catalog Archive Integrity & Fresh Checksum Release:
- Published clean SemVer patch release
v1.4.2to resolve the immutable hash mismatch on Traefik Plugin Catalog (plugins.traefik.io), preventingplugin integrity check failederrors when installing from the catalog.
- Published clean SemVer patch release
- Local & Offline Plugin Installation (
/plugins-local):- Added comprehensive documentation and production deployment guides for running RouteWarden as a local Traefik plugin via
--experimental.localpluginsand volume mounting to/plugins-local/src/github.com/routewarden/traefik-warden, enabling zero-network air-gapped and enterprise usage.
- Added comprehensive documentation and production deployment guides for running RouteWarden as a local Traefik plugin via
- Documentation & Configuration Parity:
- Updated configuration tables with full documentation for
trustedProxies,checkHeaders,checkBody,checkBodyMaxBytes, andcheckBodyPatterns. - Corrected default
response.modeto"text"(matchingCreateConfig()). - Aligned all documentation links to canonical routes (
/traefik/*,/core/*).
- Updated configuration tables with full documentation for
[v1.4.1] - 2026-10-07
Key Highlights
- Standardization on Canonical
blockPatternsDirective:- Replaced all legacy
pathPatternsandpath_patternsreferences across documentation, Docker Compose examples,.traefik.ymlmanifest, and test scripts with canonicalblockPatterns. - Enforced strict canonical configuration directives, verifying that legacy aliases (
pathPatterns,path_patterns,action) do not populate active middleware configuration.
- Replaced all legacy
- Enhanced Verification & Alias Safety:
- Added comprehensive test suites verifying
blockPatternsandallowPatternsmatching, wildcard prefixes, and regex override precedence. - Added unit tests confirming removed legacy alias keys are ignored and do not affect canonical fields.
- Added comprehensive test suites verifying
[v1.4.0] - 2026-10-05
Key Highlights
- Canonical Directive Standardization & Duplicate Alias Removal:
- Standardized on
enableDefaultPatternsandenableDefaultAllowPatternsas the canonical boolean opt-in flags for built-in rule sets. - Standardized on single canonical
blockPatterns(list of regex strings) replacing all legacy aliases (pathPatterns,path_patterns,block_pattern). - Standardized on
mode(replacingaction),statusCode(replacingstatus),checkBodyPatterns(replacingbodyPatterns/body_pattern), andcheckBodyMaxBytes. - Removed duplicate config aliases across Go structures and documentation to eliminate configuration drift.
- Standardized on
- Docker Label Parsing Parity:
- Ensured compatibility with CLI label compilation, supporting indexed array notation (
blockPatterns[0],allowedIps[0], etc.).
- Ensured compatibility with CLI label compilation, supporting indexed array notation (
[v1.3.1] - 2026-10-02
Key Highlights
- Security Log Schema Normalization (
level: "warn"):- Embedded
"level": "warn"directly into structured JSONroutewarden_blocklog outputs. - Ensures seamless compatibility with log forwarders (Grafana Alloy, Promtail, Vector, Fluentbit) and SIEM pipelines that filter and colorize security events based on log severity level.
- Embedded
- HTTP Status Code Telemetry (
status_code):- Added
"status_code"field to security events representing the effective HTTP response status code dispatched to the client (403for forbidden,429for rate limit,302for redirect, or0for silent drop).
- Added
- Dashboard Telemetry Field Parity (
matched_pattern):- Emitted
"matched_pattern"alongside"pattern"in log events to guarantee 100% out-of-the-box compatibility with Grafana Loki overview dashboards and top blocked pattern metrics.
- Emitted
[v1.3.0] - 2026-10-01
Key Highlights
- Trusted Proxies Support (
trustedProxies):- Added
trustedProxiesconfiguration toIPFilterallowing operators to declare upstream load balancers, reverse proxies, and CDN CIDR subnets. - Forwarded client IP headers (
X-Forwarded-ForandX-Real-IP) are now only trusted when the direct socket connection (RemoteAddr) originates from a declared trusted proxy. - Prevents attackers from spoofing allowlisted CIDRs by sending forged
X-Forwarded-Forheaders directly to the Traefik entrypoint. - Automatically falls back to socket
RemoteAddrwhen the direct peer is not intrustedProxies.
- Added
- Redirect Mode Security Hardening (
response.mode: redirect):- Added strict validation for
redirectUrlduring middleware initialization. - Restricts redirect destinations to
http://,https://, or local relative paths beginning with/, preventing open-redirect exploitation andjavascript:pseudo-protocol execution.
- Added strict validation for
- Silent Drop Fallback Resilience (
response.mode: silentDrop):- Added robust fallback when HTTP hijacking (
http.Hijacker) is unavailable in the execution environment (e.g., HTTP/2 connections or specific proxy handlers). - Falls back to returning HTTP 200 OK with an empty body instead of leaking the blocking error status code, ensuring security scanning tools cannot infer rule triggering.
- Added robust fallback when HTTP hijacking (
- Captcha Template Error Handling:
- Implemented safe error recovery for custom and default CAPTCHA templates; logs render errors to stderr and emits a clean HTML challenge document to prevent empty or corrupted client responses.
- Query Parameter Candidate Slice Safety:
- Bounded candidate slice capacities (
keyCandidates[:len:len]andvalCandidates[:len:len]) during query parameter evaluation to prevent slice backing-array mutation or aliasing bugs.
- Bounded candidate slice capacities (
[v1.2.1] - 2026-09-24
Key Highlights
- Query Parameter Attack Surface Hardening (
checkQuery):- Query parameter inspection now validates both parameter keys and values.
- Neutralizes evasion attempts where malicious sensitive file paths are hidden in parameter names (e.g.,
/?foo=bar&.env=1or/?settings.py=). - Added recursive path normalization on candidate query parameters.
- Client IP Extraction & Port/Bracket Normalization (
ip_filter):- Hardened IP address parsing when upstream reverse proxies, load balancers, or CDNs (Cloudflare, AWS ALB, NGINX) include ports or brackets in
X-Forwarded-FororX-Real-IPheaders (e.g.,192.168.1.1:8080or[2001:db8::1]). - Implemented automatic port and bracket stripping (
cleanIP) before passing to CIDR evaluation, preventing false rejections of legitimate whitelisted IPs.
- Hardened IP address parsing when upstream reverse proxies, load balancers, or CDNs (Cloudflare, AWS ALB, NGINX) include ports or brackets in
- Response Modes & Silent Drop Parity (
response.mode: silentDrop):- Standardized
silentDropmode to match the modernresponse.mode: silentDropconfiguration (replacing legacy directsilentDrop: bool).
- Standardized
- Honeypot Evaluation Scope (
fakeSuccess):- Ensured
fakeSuccesshoneypot evaluation inspects both normalized URL paths and raw request URIs to prevent bypasses via URI manipulation.
- Ensured
- Traefik Logging Clean-Up:
- Standardized debug logging to stdout and eliminated duplicate stderr log messages.
[v1.2.0] - 2026-09-24
Key Highlights
- RouteWarden CLI (
rwarden) Multi-Target Generation:- Native compilation targets for Traefik:
rwarden generate --target traefik-yaml: Compilesroutewarden.jsondirectly into Traefik Dynamic Configuration YAML format.rwarden generate --target traefik-toml: Compilesroutewarden.jsondirectly into Traefik Dynamic Configuration TOML format.rwarden generate --target traefik-labels: Compilesroutewarden.jsondirectly into Traefik Docker Compose label syntax.
- Native compilation targets for Traefik:
- Interactive CodeViewer & Setup Snippets:
- Implemented interactive
Difftoggle in the 30-Second Setup documentation component.
- Implemented interactive
- Unified Versioning Automation:
- Updated
scripts/update-version.shto automatically synchronizeVERSIONING.mdalongsideversion.json,README.md, and source files upon release.
- Updated
[v1.1.0] - 2026-09-20
Key Highlights
- Expanded Default Block Patterns:
- Added built-in protection for private cryptographic keys and certificates (
*.pem,*.key,*.crt,*.pfx,*.p12,*.jks,*.kdb). - Added container manifest blocking (
Dockerfile*,docker-compose*.yml,docker-compose*.yaml). - Added OS directory structure leak protection (
.DS_Store). - Added CMS and framework configuration file protection (
wp-config.php*,configuration.php*,settings.py,local_settings.py).
- Added built-in protection for private cryptographic keys and certificates (
- Header Injection & Forwarded Path Inspection (
checkHeaders):- Configurable header inspection list to neutralize HTTP reverse-proxy header smuggling (
X-Forwarded-Uri,X-Rewrite-URL,X-Original-URL,X-Custom-Path). - Headers are passed through candidate path extraction and normalization before regex matching.
- Configurable header inspection list to neutralize HTTP reverse-proxy header smuggling (
- Path Normalizer Fuzz Testing:
- Implemented continuous fuzz testing (
FuzzExtractCandidatePaths) targeting percent-decoding, null bytes, backslashes, and matrix parameters.
- Implemented continuous fuzz testing (
[v1.0.0] - 2026-09-20
Key Highlights
- General Availability Release:
- Production-ready plugin for Traefik v2 and Traefik v3.
- Multi-layer anti-evasion path normalization (percent-decoding
%252e%252e, null-byte stripping, backslash conversion, dot-segment traversal protection). - Full suite of 13 response modes (
tarpit,gzipBomb,fakeSuccess,captcha,silentDrop,rateLimitChallenge,proxy,infiniteStream,json,html,text,xml,redirect). - IPv4 and IPv6 CIDR subnet whitelisting (
allowedIps). - Origin client IP resolution through
X-Forwarded-ForandX-Real-IP.
[v0.3.x Series] (Archived)
- HTTP Method Filtering (
methods): Granular verb filtering in path rules (blockPatterns[].methods: ["POST", "PUT"]). - CrowdSec SIEM Audit Logging (
securityLog: true): Single-line JSON block events on stdout for CrowdSec auto-bans. - Diagnostic Debug Logging (
debug: true): Verbose stdout diagnostic traces of candidate path transformations.
[v0.2.x Series] (Archived)
- CIDR/IP Whitelisting (
allowedIps): Network subnet allowlists to bypass security filtering. - Multi-Mode Response Engine: 13 response behaviors including reverse slowloris tarpits and synthetic decoys.
- Normalized Path Matching: Strict pre-regex path canonicalization.