Skip to content

Commit 19fc6a5

Browse files
1 parent 1177f4d commit 19fc6a5

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

advisories/github-reviewed/2024/11/GHSA-r4pg-vg54-wxx4/GHSA-r4pg-vg54-wxx4.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"schema_version": "1.4.0",
33
"id": "GHSA-r4pg-vg54-wxx4",
4-
"modified": "2024-11-22T20:50:10Z",
4+
"modified": "2026-06-05T21:21:55Z",
55
"published": "2024-11-20T20:48:11Z",
66
"aliases": [],
77
"summary": "cert-manager ha a potential slowdown / DoS when parsing specially crafted PEM inputs",
8-
"details": "### Impact\n\ncert-manager packages which call the standard library `pem.Decode()` function can take a long time to process specially crafted invalid PEM data.\n\nIf an attacker is able to modify PEM data which cert-manager reads (e.g. in a Secret resource), they may be able to use large amounts of CPU in the cert-manager controller pod to effectively create a denial-of-service (DoS) vector for cert-manager in the cluster.\n\nSecrets are limited in size to [1MiB](https://kubernetes.io/docs/concepts/configuration/secret/#restriction-data-size), which reduces the impact of this issue; it was discovered through an ~856kB fuzz test input which causes `pem.Decode` to take roughly 750ms to reject the input on an M2 Max Macbook Pro. By way of comparison, a valid PEM-encoded 4096-bit RSA key takes roughly 70µs to parse on the same machine.\n\nGiven the required size of PEM data needed to present a realistic DoS vector, an attacker would need to create or insert many different large sized resources in the cluster, and so the best secondary defense is to ensure that sensible limits are placed via RBAC.\n\nThis issue affects all versions of cert-manager to have been released since at least v0.1.0 (since `pem.Decode` is core functionality for cert-manager). All [supported releases](https://cert-manager.io/docs/releases/) are patched.\n\n### Patches\n\nThe fixed versions are v1.16.2, v1.15.4 and v1.12.14.\n\n- master branch: https://github.com/cert-manager/cert-manager/pull/7400\n- release-1.16 branch: https://github.com/cert-manager/cert-manager/pull/7401\n- release-1.15 branch: https://github.com/cert-manager/cert-manager/pull/7402\n- release-1.12 branch: https://github.com/cert-manager/cert-manager/pull/7403\n\n### Workarounds\n\nEnsure that RBAC is scoped correctly in your cluster. If a user is able to modify resources containing PEM data to be able to exploit this, it's like that those permissions are a bigger security threat than this issue - especially for Secret resources.\n\n### References\n\n- Upstream issue: https://github.com/golang/go/issues/50116\n- Similar issue: https://github.com/sigstore/sigstore/issues/198\n- Google OSSFuzz: https://issues.oss-fuzz.com/issues/376728466\n",
8+
"details": "### Impact\n\ncert-manager packages which call the standard library `pem.Decode()` function can take a long time to process specially crafted invalid PEM data.\n\nIf an attacker is able to modify PEM data which cert-manager reads (e.g. in a Secret resource), they may be able to use large amounts of CPU in the cert-manager controller pod to effectively create a denial-of-service (DoS) vector for cert-manager in the cluster.\n\nSecrets are limited in size to [1MiB](https://kubernetes.io/docs/concepts/configuration/secret/#restriction-data-size), which reduces the impact of this issue; it was discovered through an ~856kB fuzz test input which causes `pem.Decode` to take roughly 750ms to reject the input on an M2 Max Macbook Pro. By way of comparison, a valid PEM-encoded 4096-bit RSA key takes roughly 70µs to parse on the same machine.\n\nGiven the required size of PEM data needed to present a realistic DoS vector, an attacker would need to create or insert many different large sized resources in the cluster, and so the best secondary defense is to ensure that sensible limits are placed via RBAC.\n\nThis issue affects all versions of cert-manager to have been released since at least v0.1.0 (since `pem.Decode` is core functionality for cert-manager). All [supported releases](https://cert-manager.io/docs/releases/) are patched.\n\n### Patches\n\nThe fixed versions are v1.16.2, v1.15.4 and v1.12.14.\n\n- master branch: https://github.com/cert-manager/cert-manager/pull/7400\n- release-1.16 branch: https://github.com/cert-manager/cert-manager/pull/7401\n- release-1.15 branch: https://github.com/cert-manager/cert-manager/pull/7402\n- release-1.12 branch: https://github.com/cert-manager/cert-manager/pull/7403\n\n### Workarounds\n\nEnsure that RBAC is scoped correctly in your cluster. If a user is able to modify resources containing PEM data to be able to exploit this, it's like that those permissions are a bigger security threat than this issue - especially for Secret resources.\n\n### References\n\n- Upstream issue: https://github.com/golang/go/issues/50116\n- Similar issue: https://github.com/sigstore/sigstore/issues/198\n- Google OSSFuzz: https://issues.oss-fuzz.com/issues/376728466",
99
"severity": [
1010
{
1111
"type": "CVSS_V4",
@@ -96,6 +96,14 @@
9696
"type": "WEB",
9797
"url": "https://github.com/cert-manager/cert-manager/pull/7403"
9898
},
99+
{
100+
"type": "WEB",
101+
"url": "https://github.com/cert-manager/cert-manager/commit/3a4c9eb55e2e43570679840bbe3217869fbc8efc"
102+
},
103+
{
104+
"type": "WEB",
105+
"url": "https://github.com/cert-manager/cert-manager/commit/f22f78c8c0a64d718e203b326bc844c488ad7850"
106+
},
99107
{
100108
"type": "PACKAGE",
101109
"url": "https://github.com/cert-manager/cert-manager"

0 commit comments

Comments
 (0)