News KrakenD 3.0 Is Here: AI Router, Semantic Cache, and On-the-Fly Stream Manipulation News KrakenD CE 3.0.4, EE 3.0.4 and EE 2.13.14 Update Released News What Is an AI Gateway? Architecture, Controls and Use Cases News KrakenD CE 3.0.3, EE 3.0.3 and EE 2.13.13 Update Released

Product UpdatesSecurity

7 min read

KrakenD CE 3.0.4, EE 3.0.4 and EE 2.13.14 Update Released

by Jorge Tarrero

This patch release of KrakenD Community Edition and Enterprise Edition upgrades Go to 1.27.4 to address several disclosed CVEs, upgrades the CEL library, and brings a round of quota, AI Gateway and plugin fixes to the Enterprise Edition. We recommend upgrading, especially if you use monthly quotas in Enterprise. For 2.x users, Enterprise 2.13.14 backports the same security and CEL upgrades.

Go 1.27.4 Security Upgrade

All three releases move to Go 1.27.4, which fixes twelve CVEs. One of them lives in the HTTP server: CVE-2026-97054 can crash an HTTP/1 server that limits the request body with MaxBytesReader when a handler reads the body while it writes the response headers. KrakenD EE is exposed when you set the maximum request size (max_payload) at the service level: a client sending a body over the limit can crash the gateway. The endpoint-level max_payload and the Community Edition are not affected.

The other eleven CVEs live in the Go toolchain and abuse cgo flags and directives to run code or inject linker options while compiling. They do not affect the KrakenD binary. If you compile Enterprise plugins, use the krakend/builder-ee image of the new version, which ships the fixed toolchain.

Kafka Consumers in Enterprise

The Enterprise releases upgrade the compress dependency to fix CVE-2026-116591. A crafted zstd message can crash the decoder, and KrakenD decodes zstd when it consumes messages from Kafka, through the Kafka subscriber and the Kafka async agent. An attacker needs write access to a topic KrakenD consumes, or a position to tamper with the broker traffic, and the result is a crash of the gateway. Until you upgrade, restrict write access on the consumed topics to trusted producers and use TLS for broker connections.

Check our security advisories page for more details on how each CVE affects KrakenD.

Quota Fixes in Enterprise

KrakenD EE 3.0.4 fixes three issues in quotas:

  • Monthly windows in November: the refill time of monthly windows was wrong during November. If you use monthly quotas, upgrade before the month ends.
  • on_failure_allow: when the persistence layer fails, KrakenD now lets requests through as the option promises, instead of rejecting them as quota exceeded.
  • hash_keys: concurrent requests no longer mix their hashed keys, so each consumer’s hits count against its own quota.

AI Gateway and Plugin Fixes in Enterprise

The AI Router no longer treats successful Amazon Bedrock responses as failures, which triggered the failover provider on every call. The regular expressions of the Prompt Guard now check every string of a JSON body, including those nested in objects or arrays such as chat messages, instead of only the top-level values.

The krakend ai download-model command accepts a --cache-dir option to set the download cache directory, which defaults to a temporary directory, and a --timeout option that defaults to 1m.

KrakenD EE 3.0.4 also fixes a breaking change introduced in 3.0.0 in the interfaces of the request and response modifier plugins, so existing modifier plugins work again.

CEL Upgrade

All three releases upgrade the library behind Common Expression Language (CEL) expressions, which in Enterprise also powers Security Policies. The new version limits how deep and how large an expression can be, and the timestamp() function rejects strings that are not in RFC 3339 format. If any of your expressions or policies convert dates in other formats with timestamp(), review them before upgrading.

The full list of changes for each version follows.

🚀 Summary of changes for EEv3.0.4 (patch)

Recommended security upgrade addressing several vulnerabilities and feature fixes

  • The ai download-model command accepts a --cache-dir option to set the download cache directory, using a temporary directory by default, and a --timeout option that defaults to 1m
  • Upgraded the library behind CEL expressions and Security Policies, which adds nesting and size limits to expressions and makes timestamp() reject strings that are not RFC 3339
  • Quota on_failure_allow now lets requests through when the persistence layer fails, instead of rejecting them as quota exceeded
  • Fixed monthly quota windows calculating a wrong refill time during November
  • Fixed quota counters mixing keys under concurrent requests when hash_keys is enabled
  • The AI Router no longer treats successful Amazon Bedrock responses as failures that trigger the failover provider
  • Fixed a breaking change introduced in v3.0.0 in the request and response modifier plugins interfaces that broke compatibility with existing modifier plugins
  • Prompt Guard regular expressions now check every string of a JSON body, including those nested in objects or arrays such as chat messages, instead of only the top-level values
  • Upgraded compress dependency, addressing CVE-2026-116591
  • Upgraded cel-go dependency, addressing GHSA-gcjh-h69q-9w9g
  • Upgraded x/image dependency, addressing several CVEs with disclosed descriptions:
    • CVE-2026-33813 golang.org/x/image/webp: Panic when decoding large WEBP image on 32-bit platforms
    • CVE-2026-46601 golang.org/x/image/webp: Panic on VP8 alpha channel size mismatch
    • CVE-2026-46602 golang.org/x/image/tiff: Lack of limit on tile sizes
    • CVE-2026-46604 golang.org/x/image/tiff: Panic decoding image with out-of-bounds strip offset
    • CVE-2026-46603 golang.org/x/image/vp8l: Excessive memory allocation during VP8L decoding

  • Upgraded Go to 1.27.4, addressing several CVEs with disclosed descriptions:
    • CVE-2026-97054 net/http: HTTP/1 server crash due to MaxBytesReader header race
    • CVE-2026-97033 cmd/go: unexpected code execution via –sysroot, -target, -isysroot, -Wl,-syslibroot, and -x cgo flags
    • CVE-2026-97034 cmd/go: arbitrary command execution via GCC spec files in cgo linker search directories
    • CVE-2026-97035 cmd/go: unexpected code execution and arbitrary file write via Clang -gen-* and GCC -gnat* flags in cgo
    • CVE-2026-97036 cmd/go: arbitrary code execution during build on darwin via “-l to_library” in cgo
    • CVE-2026-97037 cmd/go: linker script injection via split -Wl, flags and Darwin or symbol linker flags in cgo
    • CVE-2026-97038 cmd/go: arbitrary code execution via crafted .syso files and cgo linker input files
    • CVE-2026-97039 cmd/go: flag sanitization bypass via “#cgo pkg-config:” directives
    • CVE-2026-97040 cmd/go, cmd/link: cgo directive injection via .syso files disguised as Go object files
    • CVE-2026-97041 cmd/compile, cmd/link: host linker flag injection via //go:cgo_* directives
    • CVE-2026-97042 cmd/cgo, cmd/compile, cmd/link: linker flag injection via cgo_import_dynamic and PE DLL names
    • CVE-2026-97043 cmd/go, cmd/compile: unexpected code execution via escaped quotes in //go:cgo_ldflag

Upgrading to the latest version is always advised.

🚀 Summary of changes for CEv3.0.4 (patch)

Recommended security upgrade addressing several vulnerabilities

  • Upgraded the CEL library, which adds nesting and size limits to expressions and makes timestamp() reject strings that are not RFC 3339
  • Upgraded cel-go dependency, addressing GHSA-gcjh-h69q-9w9g
  • Upgraded Go to 1.27.4, addressing several CVEs with disclosed descriptions:
    • CVE-2026-97054 net/http: HTTP/1 server crash due to MaxBytesReader header race
    • CVE-2026-97033 cmd/go: unexpected code execution via –sysroot, -target, -isysroot, -Wl,-syslibroot, and -x cgo flags
    • CVE-2026-97034 cmd/go: arbitrary command execution via GCC spec files in cgo linker search directories
    • CVE-2026-97035 cmd/go: unexpected code execution and arbitrary file write via Clang -gen-* and GCC -gnat* flags in cgo
    • CVE-2026-97036 cmd/go: arbitrary code execution during build on darwin via “-l to_library” in cgo
    • CVE-2026-97037 cmd/go: linker script injection via split -Wl, flags and Darwin or symbol linker flags in cgo
    • CVE-2026-97038 cmd/go: arbitrary code execution via crafted .syso files and cgo linker input files
    • CVE-2026-97039 cmd/go: flag sanitization bypass via “#cgo pkg-config:” directives
    • CVE-2026-97040 cmd/go, cmd/link: cgo directive injection via .syso files disguised as Go object files
    • CVE-2026-97041 cmd/compile, cmd/link: host linker flag injection via //go:cgo_* directives
    • CVE-2026-97042 cmd/cgo, cmd/compile, cmd/link: linker flag injection via cgo_import_dynamic and PE DLL names
    • CVE-2026-97043 cmd/go, cmd/compile: unexpected code execution via escaped quotes in //go:cgo_ldflag

Upgrading to the latest version is always advised.

🚀 Summary of changes for EEv2.13.14 (patch)

Recommended security backport upgrade addressing several vulnerabilities

  • Upgraded the library behind CEL expressions and Security Policies, which adds nesting and size limits to expressions and makes timestamp() reject strings that are not RFC 3339
  • Upgraded compress dependency, addressing CVE-2026-116591
  • Upgraded cel-go dependency, addressing GHSA-gcjh-h69q-9w9g
  • Upgraded Go to 1.27.4, addressing several CVEs with disclosed descriptions:
    • CVE-2026-97054 net/http: HTTP/1 server crash due to MaxBytesReader header race
    • CVE-2026-97033 cmd/go: unexpected code execution via –sysroot, -target, -isysroot, -Wl,-syslibroot, and -x cgo flags
    • CVE-2026-97034 cmd/go: arbitrary command execution via GCC spec files in cgo linker search directories
    • CVE-2026-97035 cmd/go: unexpected code execution and arbitrary file write via Clang -gen-* and GCC -gnat* flags in cgo
    • CVE-2026-97036 cmd/go: arbitrary code execution during build on darwin via “-l to_library” in cgo
    • CVE-2026-97037 cmd/go: linker script injection via split -Wl, flags and Darwin or symbol linker flags in cgo
    • CVE-2026-97038 cmd/go: arbitrary code execution via crafted .syso files and cgo linker input files
    • CVE-2026-97039 cmd/go: flag sanitization bypass via “#cgo pkg-config:” directives
    • CVE-2026-97040 cmd/go, cmd/link: cgo directive injection via .syso files disguised as Go object files
    • CVE-2026-97041 cmd/compile, cmd/link: host linker flag injection via //go:cgo_* directives
    • CVE-2026-97042 cmd/cgo, cmd/compile, cmd/link: linker flag injection via cgo_import_dynamic and PE DLL names
    • CVE-2026-97043 cmd/go, cmd/compile: unexpected code execution via escaped quotes in //go:cgo_ldflag

Upgrading to the latest version is always advised.

Stay up to date with KrakenD releases and important updates