Skip to content
Heist/ feed
Back to feed
Medium

knative.dev/pkg admission webhooks allow unbounded request-body memory exhaustion

Type: advisorySources: Official CVE List

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.

Products
pkg
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-54462
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 14:33 UTC · Revision 1

Source evidence

knative.dev/pkg admission webhooks allow unbounded request-body memory exhaustion

core-cve · Original source

Published 27 Oct 2026, 16:12 UTC

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.

cve:CVE-2026-54462

pkg

Fixed versions: Not specified

Complete source record
{
  "id": "b238a03fa80bbaac1a0642523a198f7c449b87ead207f2447a4456be30b8ab6b",
  "url": "https://www.cve.org/CVERecord?id=CVE-2026-54462",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "knative.dev/pkg admission webhooks allow unbounded request-body memory exhaustion",
    "summary": "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.",
    "evidence": "cve:CVE-2026-54462",
    "products": [
      {
        "name": {
          "value": "pkg",
          "evidence": "/containers/cna/affected/0/product"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": []
      }
    ],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-54462",
      "aliases": [
        "CVE-2026-54462"
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "scope": "UNCHANGED",
            "version": "3.1",
            "baseScore": 6.5,
            "attackVector": "NETWORK",
            "baseSeverity": "MEDIUM",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
            "integrityImpact": "NONE",
            "userInteraction": "NONE",
            "attackComplexity": "LOW",
            "availabilityImpact": "HIGH",
            "privilegesRequired": "LOW",
            "confidentialityImpact": "NONE"
          }
        }
      ],
      "affected": [
        {
          "vendor": "knative",
          "product": "pkg",
          "versions": [
            {
              "status": "affected",
              "version": "< 0.0.0-20260531000007-52dbd5ece63f"
            }
          ]
        }
      ],
      "modified": "2026-10-27T16:12:32.516Z",
      "provider": "cve",
      "references": [
        "https://github.com/knative/pkg/security/advisories/GHSA-2hw4-c9m4-f2fj",
        "https://github.com/knative/pkg/pull/3363",
        "https://github.com/knative/pkg/commit/52dbd5ece63fe6d2d340ecbebec160550f460818"
      ],
      "provider_metadata": {
        "cna": {
          "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
          "shortName": "GitHub_M",
          "dateUpdated": "2026-10-27T16:12:32.516Z"
        }
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-54462",
        "evidence": "/cveMetadata/cveId"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/containers/cna/metrics"
  },
  "source_id": "core-cve",
  "document_id": 394454,
  "published_at": "2026-10-27T16:12:32.516+00:00"
}