Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as catalog contributor
-
DeliveryCreate malicious kubernetes-cluster entity with serviceAccount auth
-
ExploitBackend resolves cluster via catalog discovery
-
ExecutionBackend uses in-cluster identity
-
ImpactRead Kubernetes resources visible to that identity
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service Proxy/intermediary controls
|
| Exploitation Conditions | Exploitation requires ALL of the following, drawn directly from the advisory description: (1) the deployment must use catalog cluster discovery (the CatalogClusterLocator), a non-default cluster-sourcing mode; (2) the attacker must be a catalog contributor able to create or modify kubernetes-cluster Resource entities, matching PR:L; (3) the required endpoint permissions must be granted; and (4) the backend pod must have RBAC allowing its in-cluster service account to read the targeted Kubernetes resources - the disclosure is bounded by exactly what that service account can already read. Limiting factors: the credential is only ever used against the local in-cluster API endpoint and is never sent to the catalog-supplied endpoint, authentication as a catalog contributor is mandatory, and the multiple stacked preconditions (AC:H) make opportunistic or automated exploitation unlikely. |
| Impact | This is a genuinely low-priority, low-real-risk issue despite being network-reachable. The supplied CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:N/A:N) scores only 3.5 (Low), and every signal reinforces that: AC:H and PR:L mean the attacker must already be an authenticated catalog contributor AND several environmental preconditions must line up, while impact is limited to C:L with no integrity or availability effect. No EPSS score, no CISA KEV listing, and no public exploit were provided in the intelligence, so exploitation status is 'no public exploit identified at time of analysis' - there is no evidence of active or automated exploitation. The flaw is a classic confused-deputy pattern (CWE-441): a catalog-supplied kubernetes-cluster entity requesting the unsupported serviceAccount auth provider caused the backend to fall back to its own in-cluster identity, so a malicious catalog entry could read cluster resources that the backend's service account can see. Note the official vector does not conflict with the description; both point to a config/authorization-dependent, insider-leaning weakness rather than a mass-exploitable remote bug. The strongest limiting factors (catalog write access, specific endpoint permissions, pod RBAC, and the non-default catalog cluster discovery mode) are exactly why real-world risk is far below what 'network vector' alone might suggest. |
| Exploit ScenarioDerived | A user who can author or edit catalog entities adds or modifies a kubernetes-cluster Resource entity declaring the serviceAccount auth provider; a deployment using catalog cluster discovery then has the backend connect to that cluster using its own in-cluster service account identity, returning Kubernetes resources readable by that identity back to the actor. No public exploit code is known, and AC:H/PR:L means the attacker needs existing catalog-contributor access plus matching endpoint permissions and pod RBAC for the disclosure to occur. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Information disclosure in the Backstage Kubernetes backend plugin (@backstage/plugin-kubernetes-backend) before 0.21.10 allows an authenticated catalog contributor who can create or modify kubernetes-cluster Resource entities to steer cluster discovery into an unsupported authentication mode, causing the backend to answer Kubernetes API requests using its own local in-cluster service-account identity rather than a catalog-supplied credential. The disclosure is bounded strictly by what that pod service account is already permitted to read via RBAC, and the leaked credential is used only against the local in-cluster API endpoint and is never transmitted to the catalog-supplied endpoint; exploitation requires a non-default catalog cluster discovery deployment, the relevant endpoint permissions, and over-privileged pod RBAC, which is why the assessed severity is low. No public exploit code or confirmed active exploitation was identified at time of analysis, and the issue is fixed in 0.21.10 (shipped in the Backstage release v1.54.6).
RemediationAI
Upgrade @backstage/plugin-kubernetes-backend to 0.21.10 or later; the fix is shipped in the Backstage release v1.54.6 (https://github.com/backstage/backstage/releases/tag/v1.54.6), and the advisory GHSA-h53x-hjx6-25gr with the code change at commit c14f8be6908f0f719b16356e5492352311e28946 documents the exact fix. Before upgrading, audit the catalog for kubernetes-cluster Resource entities that declare authProvider 'serviceAccount': because the patched code throws an error instead of warning and skipping, a single such entity will now cause the entire catalog-based cluster retrieval to fail, so those entities must be removed or converted to a supported authentication profile (for example a configured service-account or OIDC-based profile) or cluster discovery will break after the upgrade. If upgrading is not immediately possible, compensating controls with their trade-offs are: remove catalog write permission for creating or editing kubernetes-cluster Resource entities so only trusted maintainers can define clusters (this closes the attack path but pushes cluster onboarding into a manual review process); switch from catalog cluster discovery to a statically configured KubernetesClustersSupplier in app-config (this eliminates the untrusted input path entirely but requires clusters to be declared as configuration rather than as catalog entities and loses self-service onboarding); and tighten the backend pod's Kubernetes RBAC so its in-cluster service account can read only the namespaces and resource types genuinely required (this does not fix the flaw but caps the blast radius, at the cost of possibly breaking legitimate cluster views for entities that relied on the broader permissions).
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Backstage is an open framework for building developer portals, and the affected component is the @backstage/plugin-kubernetes-backend package, which supplies cluster inventory to the Kubernetes frontend plugin through a KubernetesClustersSupplier. One supplier implementation, CatalogClusterLocator, derives clusters from annotation data on kubernetes-cluster Resource entities stored in the Backstage software catalog. The catalog schema permits an authProvider field on those entities, and although the catalog cluster locator does not support the 'serviceAccount' provider, the affected versions did not enforce that constraint, so an entity declaring an unsupported authentication mode could be processed by the backend and satisfied with the pod's own in-cluster service account. This is the classic confused-deputy pattern described by CWE-441 (Unintended Proxy or Intermediary): the backend acts with its own ambient authority on behalf of a caller that should not have that authority. The fix in commit c14f8be6908f0f719b16356e5492352311e28946 replaces the previous non-fatal warn-and-skip handling with a thrown error, so any catalog cluster whose authProvider is 'serviceAccount' now causes cluster retrieval to fail rather than silently proceeding, and the accompanying test was rewritten from 'ignores serviceAccount auth provider clusters' to 'rejects all catalog clusters when one uses service account authentication'. The CPE data covers both the backstage umbrella product and the specific @backstage/plugin-kubernetes-backend package.
Know when Backstage gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N
Catalog contributor access gives PR:L; multiple stacked preconditions (discovery mode, endpoint perms, pod RBAC) justify AC:H; disclosure of in-cluster resources is C:L with S:C, no I/A impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
Backstage is an open framework for building developer portals. Prior to 0.21.10, the @backstage/plugin-kubernetes-backend package is affected by unsupported catalog cluster authentication mode in kubernetes backend. Deployments using catalog cluster discovery may be affected when catalog contributors can create or modify kubernetes-cluster Resource entities. With the required endpoint permissions and pod RBAC, the backend can use its local in-cluster identity, potentially exposing Kubernetes resources readable by that identity. The credential is used only with the local in-cluster API endpoint and is not sent to the catalog-supplied endpoint. This issue is fixed in version 0.21.10.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
The Bitbucket pull-request Scaffolder actions in Backstage can be abused by an authenticated user with template-executio
Backstage is an open platform for building developer portals. Rated critical severity (CVSS 9.9), this vulnerability is
Authenticated Backstage users can retrieve the internal execution data of other users' Scaffolder tasks - notably the Se
Authenticated users who can register or modify a TechDocs documentation source can achieve code execution inside the Bac
Authenticated remote code execution in the @backstage/plugin-techdocs-node package shipped with the Backstage developer
Arbitrary code execution in Backstage TechDocs documentation builds allows an authenticated user with write access to a
Arbitrary Python code execution in Backstage's @backstage/plugin-techdocs-node (versions < 1.13.11 and = 1.14.0) lets a
Improper task-state validation in the @backstage/plugin-scaffolder-backend plugin (Backstage versions prior to 3.3.1, 3.
Arbitrary code execution on the TechDocs backend host is achievable through a sanitizer bypass in the @backstage/plugin-
Improper input validation in the @backstage/plugin-scaffolder-backend-module-sentry scaffolder actions (Backstage 0.3.0
@backstage/plugin-scaffolder-backend is the backend for the default Backstage software templates. Rated high severity (C
Authenticated users of Backstage Scaffolder can bypass administrator-configured action restrictions in @backstage/plugin
EUVD-2026-94005
GHSA-h53x-hjx6-25gr
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB