{"id":"CVE-2026-54462","kind":"vulnerability","aliases":["CVE-2026-54462"],"related":[],"title":"Knative pkg: unbounded webhook body lets one request exhaust controller memory","description":"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.","summary":"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.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["go","keda","knative","kpack","kubernetes","package","sigstore","tekton"],"not_affected_if":["no-admission-webhook-deployed","patched-pkg-version"],"how_to_check":"- Check whether the controller imports `knative.dev/pkg` below `0.0.0-20260531000007-52dbd5ece63f` in its `go.mod`.\n- 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.\n- Rebuild and redeploy the affected controllers (Knative, Tekton, KEDA, policy-controller, Kpack) against the fixed package.","status":"open","published_at":"2026-10-27T17:17:01+00:00","first_seen_at":"2026-10-27T17:32:46+00:00","triaged_at":"2026-10-27T17:34:49+00:00","updated_at":"2026-10-27T17:34:49+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-27T17:34:49Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade `knative.dev/pkg` to `0.0.0-20260531000007-52dbd5ece63f` or later.\n- Rebuild and redeploy the affected controllers (Knative, Tekton, KEDA, policy-controller, Kpack) against the fixed package.","reach":"network","title":"Knative pkg: unbounded webhook body lets one request exhaust controller memory","impact":"medium","summary":"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.","category":"package","nicknames":[],"who_cares":["kubernetes","knative","tekton","keda","sigstore","kpack","go"],"confidence":0.7,"needs_auth":"no","worst_case":"Controller pod is out-of-memory killed, interrupting admission","analyst_note":"","how_to_check":"- Check whether the controller imports `knative.dev/pkg` below `0.0.0-20260531000007-52dbd5ece63f` in its `go.mod`.\n- Check whether any admission webhook from Knative, Tekton, KEDA, Sigstore policy-controller or Kpack is deployed in the cluster and reachable from pods.","needs_analyst":false,"not_affected_if":["no-admission-webhook-deployed","patched-pkg-version"],"who_is_affected":"Clusters running an admission webhook built on the shared Knative `webhook` server package, such as Knative Serving or Eventing, Tekton, KEDA, Sigstore policy-controller or Kpack. The webhook endpoint must be reachable from pods on the cluster network, and a controller crash affects admission only where failurePolicy is Fail or the webhook is needed for the admitted resources. Teams that do not run these controllers can skip it.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000721,"input_tokens":3587,"output_tokens":724,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-20260531000007':96C,220C '-52':97C,221C '-54462':14A,17A '/pkg/webhook':102C '0.0.0':95C,219C 'across':90C 'admiss':30B,73B,141C,200C,211C 'admissionhandl':103C 'admissionreview':35B,111C 'affect':205C 'amplifi':150C 'attack':62B,109C 'attacker-suppli':108C 'behavior':177C 'bodi':5A,39B,126C 'body-s':38B,125C 'bodybuff':116C,147C 'caus':143C 'client':133C 'common':87C 'configur':190C 'consum':168C,189C 'continu':212C 'control':10A,70B,81B,157C,185C,197C 'copi':51B,151C 'crash':68B 'cve':12A,15A 'dbd5ece63f':98C,222C 'decod':106C,145C 'disrupt':72B 'downstream':167C 'equival':124C 'everi':166C 'exhaust':9A,159C 'fail':193C 'failurepolici':192C,202C 'fix':216C 'go':18B 'handler':31B 'http.handlerfunc':119C 'http.maxbytesreader':122C 'ignor':203C 'includ':178C 'incom':34B 'inherit':174C 'interrupt':199C 'io.teereader':114C 'issu':214C 'json.newdecoder':113C 'keda':19B,77B,181C 'kill':165C 'knativ':1A,20B,28B,75B,84C,91C,179C 'knative.dev':101C 'knative.dev/pkg/webhook':100C 'kpack':21B,83B,187C 'kubernet':22B 'let':6A 'limit':41B,128C 'loss':194C 'make':47B 'memori':11A,60B,160C 'network':66B,132C 'one':7A,136C 'oom':164C 'oom-kil':163C 'overs':45B,137C 'packag':23B,88C 'pkg':2A,85C 'pod':49B,65B,131C,158C 'pod-network':130C 'polici':80B,184C 'policy-control':79B,183C 'post':46B,138C 'prior':93C 'provid':86C 'r.body':115C 'read':32B 'repositori':92C 'request':8A,54B,154C 'retain':50B,149C 'run':57B 'send':135C 'server':173C 'share':27B,89C,171C 'sigstor':24B,78B,182C 'singl':44B 'size':40B,127C 'suppli':110C 'tekton':25B,76B,180C 'unavail':208C 'unbound':3A 'use':169C 'version':218C 'vulner':176C 'webhook':4A,29B,142C,172C,206C 'webhook/admission.go':105C 'without':36B,120C","nicknames":[],"mitigations":[],"who_affected":"Clusters running an admission webhook built on the shared Knative `webhook` server package, such as Knative Serving or Eventing, Tekton, KEDA, Sigstore policy-controller or Kpack. The webhook endpoint must be reachable from pods on the cluster network, and a controller crash affects admission only where failurePolicy is Fail or the webhook is needed for the admitted resources. Teams that do not run these controllers can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-27T17:17:01+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-54462","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54462","severity":null,"published_at":"2026-10-27T17:17:01+00:00","modified_at":"2026-10-27T17:17:01+00:00","first_seen_at":"2026-10-27T17:32:46+00:00","fetched_at":"2026-10-27T17:32:46+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}