---
id: "CVE-2026-54462"
kind: "vulnerability"
aliases: ["CVE-2026-54462"]
title: "Knative pkg: unbounded webhook body lets one request exhaust controller memory"
severity: "medium"
cvss: 6.5
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["go", "keda", "knative", "kpack", "kubernetes", "package", "sigstore", "tekton"]
not_affected_if: ["no-admission-webhook-deployed", "patched-pkg-version"]
published_at: "2026-10-27T17:17:01+00:00"
first_seen_at: "2026-10-27T17:32:46+00:00"
updated_at: "2026-10-27T17:34:49+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-54462", "first_seen_at": "2026-10-27T17:32:46+00:00"}]
---

# Knative pkg: unbounded webhook body lets one request exhaust controller memory

The shared Knative webhook admission handler reads an incoming AdmissionReview without any body-size limit, so a single oversized POST makes the pod retain copies of the request until it runs out of memory. An attacker on the pod network can crash the controller and disrupt admission for Knative, Tekton, KEDA, Sigstore policy-controller and Kpack.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check whether the controller imports `knative.dev/pkg` below `0.0.0-20260531000007-52dbd5ece63f` in its `go.mod`.
- Check whether any admission webhook from Knative, Tekton, KEDA, Sigstore policy-controller or Kpack is deployed in the cluster and reachable from pods.

## Fix

- Upgrade `knative.dev/pkg` to `0.0.0-20260531000007-52dbd5ece63f` or later.
- Rebuild and redeploy the affected controllers (Knative, Tekton, KEDA, policy-controller, Kpack) against the fixed package.

## Timeline

- 2026-10-27T17:32:46+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-54462

## From the sources

Knative pkg provides common packages shared across Knative repositories. Prior to 0.0.0-20260531000007-52dbd5ece63f, the knative.dev/pkg/webhook admissionHandler in webhook/admission.go decodes an attacker-supplied AdmissionReview through json.NewDecoder(io.TeeReader(r.Body, &bodyBuffer)) under an http.HandlerFunc without an http.MaxBytesReader or equivalent body-size limit. A pod-network client can send one oversized POST to an admission webhook, causing the decoder and bodyBuffer to retain amplified copies of the request until the controller pod exhausts memory and is OOM-killed. Every downstream consumer using the shared webhook server inherits the vulnerable behavior, including Knative, Tekton, KEDA, Sigstore policy-controller, and Kpack. For consumers configured with failurePolicy=Fail, loss of the controller can interrupt admission; with failurePolicy=Ignore, the affected webhook is unavailable while other admissions continue. This issue is fixed in version 0.0.0-20260531000007-52dbd5ece63f.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
