knative.dev/pkg admission webhooks allow unbounded request-body memory exhaustion
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 sourcePublished 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"
}