{"id":"CVE-2025-71425","aliases":["EUVD-2025-211007","GHSA-7f88-pr8w-xgw6","GHSA-h5f8-crrq-4pw8","GO-2025-3718"],"status":"published","title":"Contrast before 1.8.1 Information Disclosure via Logging","description":"Contrast (Edgeless Systems) before 1.8.1 logs the workload secret to stderr, and thus to Kubernetes logs, when the Contrast initializer is configured with CONTRAST_LOG_LEVEL set to info or debug. Because info is the default, all installations that do not customize the initializer log level are affected. This exposes workload secrets — normally accessible only to the Contrast Coordinator, the initializer, the seedshare owner, and the workload owner — to Kubernetes users with get or list permission on pods/logs and to anyone with read access to the Kubernetes log storage, such as the cloud provider. Deployments that do not use workload secrets are unaffected.","severity":{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.0019,"percentile":0.08704,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-532"],"published":"2025-05-28T14:40:25Z","modified":"2026-10-28T02:31:00Z","fixes":[{"ecosystem":"Go","package":"github.com/edgelesssys/contrast","fixed_in":["1.8.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"github.com/edgelesssys/contrast","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.8.0"},{"fixed":"1.8.1"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/edgelesssys/contrast","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.8.1"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/edgelesssys/contrast","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.8.1"}]}]}],"products":[{"vendor":"edgelesssys","product":"contrast"}],"references":[{"url":"https://github.com/edgelesssys/contrast/security/advisories/GHSA-h5f8-crrq-4pw8","tags":["vendor-advisory","advisory","web"]},{"url":"https://www.vulncheck.com/advisories/contrast-before-1.8.1-information-disclosure-via-logging","tags":["third-party-advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-71425","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-7f88-pr8w-xgw6"},{"url":"https://github.com/advisories/GHSA-h5f8-crrq-4pw8"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/71xxx/CVE-2025-71425.json","tags":["advisory"]},{"url":"https://github.com/edgelesssys/contrast","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-71425","title":"Contrast before 1.8.1 Information Disclosure via Logging","description":"Contrast (Edgeless Systems) before 1.8.1 logs the workload secret to stderr, and thus to Kubernetes logs, when the Contrast initializer is configured with CONTRAST_LOG_LEVEL set to info or debug. Because info is the default, all installations that do not customize the initializer log level are affected. This exposes workload secrets — normally accessible only to the Contrast Coordinator, the initializer, the seedshare owner, and the workload owner — to Kubernetes users with get or list permission on pods/logs and to anyone with read access to the Kubernetes log storage, such as the cloud provider. Deployments that do not use workload secrets are unaffected.","status":"published","published":"2026-09-27T01:28:27.27Z","modified":"2026-10-08T15:21:38.434Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high","assessor":"cna"},{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-532"],"updated_at":"2026-11-02T14:32:43.10004Z"}],"euvd":[{"id":"EUVD-2025-211007","description":"Contrast (Edgeless Systems) before 1.8.1 logs the workload secret to stderr, and thus to Kubernetes logs, when the Contrast initializer is configured with CONTRAST_LOG_LEVEL set to info or debug. Because info is the default, all installations that do not customize the initializer log level are affected. This exposes workload secrets — normally accessible only to the Contrast Coordinator, the initializer, the seedshare owner, and the workload owner — to Kubernetes users with get or list permission on pods/logs and to anyone with read access to the Kubernetes log storage, such as the cloud provider. Deployments that do not use workload secrets are unaffected.","status":"published","published":"2026-09-27T01:28:27Z","modified":"2026-10-08T15:21:38Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T17:27:32.18003Z"}],"ghsa":[{"id":"GHSA-7f88-pr8w-xgw6","title":"Contrast (Edgeless Systems) before 1.8.1 logs the workload secret to stderr, and thus to...","description":"Contrast (Edgeless Systems) before 1.8.1 logs the workload secret to stderr, and thus to Kubernetes logs, when the Contrast initializer is configured with CONTRAST_LOG_LEVEL set to info or debug. Because info is the default, all installations that do not customize the initializer log level are affected. This exposes workload secrets — normally accessible only to the Contrast Coordinator, the initializer, the seedshare owner, and the workload owner — to Kubernetes users with get or list permission on pods/logs and to anyone with read access to the Kubernetes log storage, such as the cloud provider. Deployments that do not use workload secrets are unaffected.","status":"published","published":"2026-09-27T03:31:03Z","modified":"2026-09-27T03:31:12Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high"},{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-532"],"updated_at":"2026-11-02T15:12:30.689958Z"},{"id":"GHSA-h5f8-crrq-4pw8","title":"Contrast workload secrets leak to logs on INFO level","description":"### Impact\n\nWhen the Contrast initializer is configured with a `CONTRAST_LOG_LEVEL` of `info` or `debug`, the workload secret is logged to `stderr` and written to Kubernetes logs. \n\nSince `info` is the default setting, this affects all Contrast installations that don't customize their initializers' log level.\n\nThe following audiences are **intended** to have access to workload secrets (see https://docs.edgeless.systems/contrast/1.7/architecture/secrets#workload-secrets):\n\n* Contrast Coordinator (can derive all workload secrets)\n* Contrast Initializer (obtains only the secret configured in the manifest)\n* Seedshare owner (can derive all workload secrets)\n* Workload owner (can update manifests to obtain secrets)\n\nThis vulnerability allows the following parties **unintended access** to workload secrets issued by a Coordinator:\n\n* Kubernetes users with `get` or `list` permission on `pods/logs`.\n* Others with read access to the Kubernetes log storage (most notably, the cloud provider).\n\nThis vulnerability **does not affect** scenarios where workload secrets are not used by the application (directly or with [secure persistence](https://docs.edgeless.systems/contrast/1.7/architecture/secrets#secure-persistence)). Applications designed for workload owner exclusion can't use workload secrets and are thus unaffected.\n\n### Patches\n\nN/A\n\n### Workarounds\n\nThis vulnerability can be mitigated by adding an environment variable `CONTRAST_LOG_LEVEL=warn` to the initializer after running `contrast generate`, and then running `contrast generate` again.\n\n### References\n\nN/A","status":"published","published":"2025-05-28T14:40:25Z","modified":"2025-05-28T14:40:26Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-532"],"updated_at":"2026-11-02T14:38:44.991725Z"}],"nvd":[{"id":"CVE-2025-71425","description":"Contrast (Edgeless Systems) before 1.8.1 logs the workload secret to stderr, and thus to Kubernetes logs, when the Contrast initializer is configured with CONTRAST_LOG_LEVEL set to info or debug. Because info is the default, all installations that do not customize the initializer log level are affected. This exposes workload secrets — normally accessible only to the Contrast Coordinator, the initializer, the seedshare owner, and the workload owner — to Kubernetes users with get or list permission on pods/logs and to anyone with read access to the Kubernetes log storage, such as the cloud provider. Deployments that do not use workload secrets are unaffected.","status":"published","published":"2026-09-27T02:17:16.797Z","modified":"2026-10-14T13:10:00.187Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"},{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-532"],"updated_at":"2026-11-02T14:12:03.20248Z"}],"osv":[{"id":"CVE-2025-71425","title":"Contrast before 1.8.1 Information Disclosure via Logging","description":"Contrast (Edgeless Systems) before 1.8.1 logs the workload secret to stderr, and thus to Kubernetes logs, when the Contrast initializer is configured with CONTRAST_LOG_LEVEL set to info or debug. Because info is the default, all installations that do not customize the initializer log level are affected. This exposes workload secrets — normally accessible only to the Contrast Coordinator, the initializer, the seedshare owner, and the workload owner — to Kubernetes users with get or list permission on pods/logs and to anyone with read access to the Kubernetes log storage, such as the cloud provider. Deployments that do not use workload secrets are unaffected.","status":"published","published":"2026-09-27T01:28:27.27Z","modified":"2026-10-28T02:31:00.293880348Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-532"],"updated_at":"2026-11-02T15:44:53.185592Z"},{"id":"GHSA-h5f8-crrq-4pw8","title":"Contrast workload secrets leak to logs on INFO level","description":"### Impact\n\nWhen the Contrast initializer is configured with a `CONTRAST_LOG_LEVEL` of `info` or `debug`, the workload secret is logged to `stderr` and written to Kubernetes logs. \n\nSince `info` is the default setting, this affects all Contrast installations that don't customize their initializers' log level.\n\nThe following audiences are **intended** to have access to workload secrets (see https://docs.edgeless.systems/contrast/1.7/architecture/secrets#workload-secrets):\n\n* Contrast Coordinator (can derive all workload secrets)\n* Contrast Initializer (obtains only the secret configured in the manifest)\n* Seedshare owner (can derive all workload secrets)\n* Workload owner (can update manifests to obtain secrets)\n\nThis vulnerability allows the following parties **unintended access** to workload secrets issued by a Coordinator:\n\n* Kubernetes users with `get` or `list` permission on `pods/logs`.\n* Others with read access to the Kubernetes log storage (most notably, the cloud provider).\n\nThis vulnerability **does not affect** scenarios where workload secrets are not used by the application (directly or with [secure persistence](https://docs.edgeless.systems/contrast/1.7/architecture/secrets#secure-persistence)). Applications designed for workload owner exclusion can't use workload secrets and are thus unaffected.\n\n### Patches\n\nN/A\n\n### Workarounds\n\nThis vulnerability can be mitigated by adding an environment variable `CONTRAST_LOG_LEVEL=warn` to the initializer after running `contrast generate`, and then running `contrast generate` again.\n\n### References\n\nN/A","status":"published","published":"2025-05-28T14:40:25Z","modified":"2026-09-27T11:55:47.067562466Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-532"],"updated_at":"2026-11-02T15:46:48.546324Z"},{"id":"GO-2025-3718","title":"Contrast workload secrets leak to logs on INFO level in github.com/edgelesssys/contrast","description":"Contrast workload secrets leak to logs on INFO level in github.com/edgelesssys/contrast","status":"published","published":"2025-05-29T20:59:03Z","modified":"2026-09-27T11:55:47.067562466Z","updated_at":"2026-11-02T15:47:01.728182Z"}]}}
