CVE-2025-29781 Details
Description
The Bare Metal Operator (BMO) implements a Kubernetes API for managing bare metal hosts in Metal3. Baremetal Operator enables users to load Secret from arbitrary namespaces upon deployment of the namespace scoped Custom Resource `BMCEventSubscription`. Prior to versions 0.8.1 and 0.9.1, an adversary Kubernetes account with only namespace level roles (e.g. a tenant controlling a namespace) may create a `BMCEventSubscription` in his authorized namespace and then load Secrets from his unauthorized namespaces to his authorized namespace via the Baremetal Operator, causing Secret Leakage. The patch makes BMO refuse to read Secrets from other namespace than where the corresponding BMH resource is. The patch does not change the `BMCEventSubscription` API in BMO, but stricter validation will fail the request at admission time. It will also prevent the controller reading such Secrets, in case the BMCES CR has already been deployed. The issue exists for all versions of BMO, and is patched in BMO releases v0.9.1 and v0.8.1. Prior upgrading to patched BMO version, duplicate any existing Secret pointed to by `BMCEventSubscription`'s `httpHeadersRef` to the same namespace where the corresponding BMH exists. After upgrade, remove the old Secrets. As a workaround, the operator can configure BMO RBAC to be namespace scoped, instead of cluster scoped, to prevent BMO from accessing Secrets from other namespaces, and/or use `WATCH_NAMESPACE` configuration option to limit BMO to single namespace.
A vulnerability in the Bare Metal Operator (BMO) allows for the unauthorized access of Secrets across different namespaces. This issue arises when a Kubernetes account with only namespace-level roles creates a BMCEventSubscription that references a Secret in a different namespace, leading to potential Secret leakage. The vulnerability is present in BMO versions prior to 0.8.1 and 0.9.1.
Users can upgrade to Bare Metal Operator versions 0.9.1 or 0.8.1, where this vulnerability has been patched. After upgrading, remove any old Secrets that were duplicated to the same namespace as the corresponding Bare Metal Host. As an alternative, BMO can be configured to be namespace-scoped to prevent access to Secrets from other namespaces.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Mar 17, 2025CISA-ADP
Assessed Mar 18, 2025References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/metal3-io/metal3-docs/blob/main/design/baremetal-operator/bmc-events.md | CISA-ADP | Not ApplicableVendor |
| https://github.com/metal3-io/baremetal-operator/commit/19f8443b1fe182f76dd81b43122e8dd102f8b94c | [email protected] | Source CodeVendor |
| https://github.com/metal3-io/baremetal-operator/pull/2321 | [email protected] | Issue TrackingVendor |
| https://github.com/metal3-io/baremetal-operator/pull/2322 | [email protected] | Issue TrackingVendor |
| https://github.com/metal3-io/baremetal-operator/security/advisories/GHSA-c98h-7hp9-v9hq | [email protected] | AdvisoryRemedyVendor |
| https://github.com/metal3-io/metal3-docs/blob/main/design/baremetal-operator/bmc-events.md | [email protected] | Not ApplicableVendor |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-200 | Exposure of Sensitive Information to an Unauthorized Actor | [email protected] |
| CWE-653 | Improper Isolation or Compartmentalization | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| metal3-io baremetal-operator | v0.9.0 (semver) <= v0.8.0 (semver) |
CPE
Remediation
| |
Change History
4 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | [email protected] |
| Jun 17, 2026 | CVE Modified | CISA-ADP |
| Mar 18, 2025 | CVE Modified | CISA-ADP |
| Mar 17, 2025 | New CVE Received | [email protected] |
Volerion