Skip to content
Fencer Vulns
medium 6.5

CVE-2025-29781 json

Bare Metal Operator (BMO) can expose any secret from other namespaces via BMCEventSubscription CRD

published 2025-03-17 19 mo ago modified 2026-06-17 4 mo ago also EUVD-2025-6528 , GHSA-c98h-7hp9-v9hq , GO-2025-3530

cvss
6.5
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.2%
EPSS 0.2% chance of exploitation in 30 days, percentile 8%
public exploits
0
none known

Summary

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.

Patch / fix

  • go github.com/metal3-io/baremetal-operator/apis 0.8.1, 0.9.1
  • linuxfoundation baremetal_operator 0.8.1
  • govulncheck-vulndb openSUSE Tumbleweed 0.0.20250318T181448-1.1

opensuse advisories openSUSE-SU-2025:14910-1

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2025-29781 updated cvss 8.2

baremetal-operator/apis: Bare Metal Operator (BMO) can expose any secret from other namespaces via BMCEventSubscription CRD

  • Red Hat Assisted Installer for Red Hat OpenShift Container Platform 2 rhai-tech-preview/assisted-installer-rhel8, rhai-tech-preview/assisted-installer-reporter-rhel8 Red Hat Multicluster Engine for Kubernetes openshift4/multicluster-engine-hive, multicluster-engine/agent-service-rhel8, multicluster-engine/assisted-service-8-rhel8, multicluster-engine/assisted-service-9-rhel9, multicluster-engine/image-based-install-rhel9, openshift4/multicluster-engine-assisted-installer, +2 more Red Hat Advanced Cluster Management for Kubernetes 2 rhacm2/acm-siteconfig-rhel9 Red Hat OpenShift Container Platform 4 openshift4/ose-baremetal-cluster-api-controllers-rhel9 Red Hat OpenStack Platform 16.2 rhosp-rhel9/osp-director-agent, rhosp-rhel8/osp-director-operator, rhosp-rhel9/osp-director-downloader Red Hat OpenStack Platform 17.1 rhosp-rhel9/osp-director-agent, rhosp-rhel8/osp-director-operator, rhosp-rhel9/osp-director-downloader
    +1 more products
    Red Hat OpenStack Platform 18.0 rhoso-operators/openstack-rhel9-operator, rhoso-operators/openstack-operator-bundle, rhoso-operators/openstack-baremetal-agent-rhel9, rhoso-operators/openstack-baremetal-rhel9-operator, rhoso-operators/openstack-baremetal-operator-bundle
    affected: workaround, no fix available “Fix deferred”
  • Red Hat OpenShift Container Platform 4.12 openshift4/ose-baremetal-rhel8-operator v4.12.0-202504241000.p0.g6817f4e.assembly.stream.el8
    fixed: vendor fix RHSA-2025:4409
  • Red Hat OpenShift Container Platform 4.13 openshift4/ose-baremetal-rhel8-operator v4.13.0-202504231429.p0.g3f56e49.assembly.stream.el8
    fixed: vendor fix RHSA-2025:4677
  • Red Hat OpenShift Container Platform 4.14 openshift4/ose-baremetal-rhel8-operator v4.14.0-202504220036.p0.g483d019.assembly.stream.el8
    fixed: vendor fix RHSA-2025:4177
  • Red Hat OpenShift Container Platform 4.15 openshift4/ose-baremetal-rhel9-operator v4.15.0-202504281408.p0.g880ee05.assembly.stream.el9
    fixed: vendor fix RHSA-2025:4422
  • Red Hat OpenShift Container Platform 4.16 openshift4/ose-baremetal-rhel9-operator v4.16.0-202504120704.p0.g84aeac3.assembly.stream.el9
    fixed: vendor fix RHSA-2025:4008
  • Red Hat OpenShift Container Platform 4.17 openshift4/ose-baremetal-rhel9-operator v4.17.0-202504091537.p0.ge6e5d54.assembly.stream.el9
    fixed: vendor fix RHSA-2025:3798
  • Red Hat OpenShift Container Platform 4.18 openshift4/ose-baremetal-rhel9-operator v4.18.0-202504090803.p0.g001d949.assembly.stream.el9
    fixed: vendor fix RHSA-2025:3775
show 3 more
  • Red Hat OpenShift Container Platform 4.19 openshift4/ose-cluster-baremetal-operator-rhel9 v4.19.0-202505200051.p0.gf64a5c1.assembly.stream.el9
    fixed: vendor fix RHSA-2024:11038
  • Red Hat Multicluster Engine for Kubernetes rhoai/odh-trustyai-service-rhel9
    not affected: component not present
  • Red Hat OpenShift Container Platform 4.12 rhcos 412.86.202504240545-0, openshift4/ose-cli v4.12.0-202504010132.p0.gd691257.assembly.stream.el8, openshift4/ose-pod v4.12.0-202504010132.p0.g1eb8682.assembly.stream.el8, openshift4/ose-etcd v4.12.0-202504010132.p0.gbb82e89.assembly.stream.el8, openshift4/ose-tests v4.12.0-202504251430.p0.g3b2567f.assembly.stream.el8, openshift4/ose-console v4.12.0-202504251629.p0.gb1a1975.assembly.stream.el8, +185 more Red Hat OpenShift Container Platform 4.13 rhcos 413.92.202505061702-0, openshift4/ose-cli v4.13.0-202504220029.p0.gd192e90.assembly.stream.el8, openshift4/ose-pod v4.13.0-202504220029.p0.g53fd427.assembly.stream.el8, openshift4/ose-tests v4.13.0-202505010331.p0.g7f472fe.assembly.stream.el8, openshift4/ose-console v4.13.0-202504300029.p0.g0f90f85.assembly.stream.el8, openshift4/ose-coredns v4.13.0-202504220029.p0.ge70f097.assembly.stream.el8, +186 more Red Hat OpenShift Container Platform 4.14 rhcos 414.92.202504210147-0, openshift4/ose-cli v4.14.0-202504220036.p0.g44b3ac2.assembly.stream.el8, openshift4/ose-pod v4.14.0-202504220036.p0.g03a907c.assembly.stream.el8, openshift4/ose-tests v4.14.0-202504220036.p0.g8906dc5.assembly.stream.el8, openshift4/ose-console v4.14.0-202504220036.p0.gee29720.assembly.stream.el8, openshift4/ose-coredns v4.14.0-202504220036.p0.gfdd6037.assembly.stream.el8, +193 more Red Hat OpenShift Container Platform 4.15 rhcos 415.92.202504282058-0, openshift4/ose-cli v4.15.0-202504220035.p0.g8231637.assembly.stream.el8, openshift4/ose-tests v4.15.0-202504220035.p0.g7358b02.assembly.stream.el8, openshift4/ose-console v4.15.0-202504281408.p0.gfb0b085.assembly.stream.el8, openshift4/ose-deployer v4.15.0-202504220035.p0.g8231637.assembly.stream.el8, openshift4/ose-installer v4.15.0-202504241905.p0.g2d2704c.assembly.stream.el8, +187 more Red Hat OpenShift Container Platform 4.16 rhcos 416.94.202504151456-0, openshift4/ose-cli-rhel9 v4.16.0-202504120704.p0.gee354f6.assembly.stream.el9, openshift4/ose-pod-rhel9 v4.16.0-202504120704.p0.g7cf4c05.assembly.stream.el9, openshift4/ose-sdn-rhel9 v4.16.0-202504120704.p0.gcbddb0b.assembly.stream.el9, openshift4/ose-etcd-rhel9 v4.16.0-202504121405.p0.ge7911c0.assembly.stream.el9, openshift4/ose-tests-rhel9 v4.16.0-202504141106.p0.ge47256f.assembly.stream.el9, +185 more Red Hat OpenShift Container Platform 4.17 rhcos 417.94.202504080421-0, openshift4/frr-rhel9 v4.17.0-202504091537.p0.gc30988b.assembly.stream.el9, openshift4/ose-cli-rhel9 v4.17.0-202504091537.p0.g0000b3e.assembly.stream.el9, openshift4/ose-pod-rhel9 v4.17.0-202504091537.p0.g89ebee0.assembly.stream.el9, openshift4/ose-etcd-rhel9 v4.17.0-202504091537.p0.g0d9e0a9.assembly.stream.el9, openshift4/ose-tests-rhel9 v4.17.0-202504091537.p0.g4a06fd3.assembly.stream.el9, +183 more
    +2 more products
    Red Hat OpenShift Container Platform 4.18 rhcos 418.94.202504080525-0, openshift4/frr-rhel9 v4.18.0-202504090803.p0.g78714ea.assembly.stream.el9, openshift4/ose-cli-rhel9 v4.18.0-202504090803.p0.geb9bc9b.assembly.stream.el9, openshift4/ose-pod-rhel9 v4.18.0-202504090803.p0.g97471c6.assembly.stream.el9, openshift4/ose-etcd-rhel9 v4.18.0-202504090803.p0.g98b1915.assembly.stream.el9, openshift4/ose-tests-rhel9 v4.18.0-202504090803.p0.gf9e1b11.assembly.stream.el9, +180 more Red Hat OpenShift Container Platform 4.19 rhcos 4.19.9.6.202506020926-0, rhcos 4.19.9.6.202506021814-0, openshift4/frr-rhel9 v4.19.0-202505200051.p0.g5076dbc.assembly.stream.el9, openshift4/ose-cli-rhel9 v4.19.0-202505210330.p0.g8f1c8b5.assembly.stream.el9, openshift4/ose-pod-rhel9 v4.19.0-202505290612.p0.gfadb78e.assembly.stream.el9, openshift4/ose-etcd-rhel9 v4.19.0-202505200051.p0.ga5421df.assembly.stream.el9, +184 more
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
Proof of concept is public
Automatable
no
Technical impact
partial
Assessed
19 mo ago

Exploit prediction

0.18% chance of exploitation in the next 30 days, higher than 8% of all scored CVEs (FIRST EPSS, 2026-11-08).

Exploits and checks

  • github.com https://github.com/metal3-io/metal3-docs/blob/main/design/baremetal-operator/bmc-events.md referenced PoC, tagged "exploit" by a source, unverified

CVSS scores

assigned by version score vector
CNA 3.1 6.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
GitHub 3.1 6.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

Affected packages

ecosystem package affected fixed in
go github.com/metal3-io/baremetal-operator/apis
>=0.9.0, <0.9.1
<0.8.1
0.9.1
0.8.1

Affected products

  • metal3-io baremetal-operator

Classification

Weakness
  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor
  • CWE-653 Improper Isolation or Compartmentalization

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.

CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.