Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Backstage with K8s read permission
-
ExploitQuery Secrets via custom resources path
-
ExecutionReceive unmasked data/stringData values
-
ImpactHarvest exposed cluster credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated Backstage user holding the standard Kubernetes resource read permission; exploitation occurs specifically through the custom resources query path of @backstage/plugin-kubernetes-backend, where Secret |
| Impact | This is a genuine but moderate-severity information-disclosure issue, not a top-priority emergency. The vendor/NVD CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N, base 5.0) indicates a network-reachable, low-complexity flaw that nevertheless requires authentication (PR:L) and yields only limited confidentiality impact with no integrity or availability effect. The scope change (S:C) is appropriate and meaningful here: the Backstage plugin leaks data belonging to a separate security authority (the connected Kubernetes cluster), and the leaked material is credentials/secrets, which raises the practical stakes above what C:L alone suggests. No EPSS score, CISA KEV listing, or public POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation - the signals are not conflicting, they are simply absent on the exploitation-likelihood side. The realistic risk is constrained by two factors confirmed in the description: the attacker must already be an authenticated user with the standard Kubernetes resource read permission, and disclosure is bounded to secrets the Backstage service account itself can read within the targeted catalog entity's namespace and label selector. Net: treat as a prioritized patch for environments running the kubernetes-backend plugin with broad service-account RBAC, but it is not a drop-everything internet-facing RCE. |
| Exploit ScenarioDerived | An authenticated Backstage user who holds the standard Kubernetes resource read permission issues a resource query through the custom resources path for Secret objects. Because redaction was not applied on that path prior to 0.21.9, the response returns the real |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Sensitive information disclosure in the @backstage/plugin-kubernetes-backend package before version 0.21.9 allows an authenticated Backstage user who holds the standard Kubernetes resource read permission to retrieve Kubernetes Secret values that the plugin is designed to mask. The flaw is specifically reachable through the custom resources query path, where both the data and stringData fields of Secrets were returned unmasked, potentially exposing credentials and other confidential material held in connected clusters. Exposure is bounded by the Backstage service account's RBAC scope and by the targeted catalog entity's namespace and label selector, so deployments whose cluster credentials cannot read those resources are unaffected; there is no public exploit code identified at time of analysis and the issue carries a moderate CVSS of 5.0.
RemediationAI
Apply the vendor-released patch by upgrading @backstage/plugin-kubernetes-backend to 0.21.9 or later, or upgrade the Backstage distribution to v1.54.2 where the fix ships (the upstream change is commit 388926ae5734bc20bd6a1520d02896be834f6527, referenced from advisory GHSA-p795-mqf2-36mf). Because exposure flows through the custom resources query path, a compensating control for environments that cannot upgrade immediately is to disable or restrict the custom resources configuration (the customResources entries in the Kubernetes plugin's cluster/entity configuration) so that Secrets cannot be requested via group/apiVersion/plural tuples, accepting that this removes legitimate custom-resource visibility for that entity; alternatively, temporarily revoke the Kubernetes service account's get/list permission on secrets in the connected clusters, which stops the disclosure at the source but will break any Backstage feature that legitimately reads Secret metadata. Tightening the label selectors and namespaces attached to catalog entities reduces the number of Secrets reachable, and reviewing the read permission granted to standard Backstage users limits who can trigger the query path.
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
The vulnerability is rooted in CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) and lives in the KubernetesClientBasedFetcher's resource transformation logic of @backstage/plugin-kubernetes-backend. Backstage is an open framework for building developer portals, and this backend plugin brokers queries against connected Kubernetes clusters on behalf of catalog entities. Secret redaction was implemented only for the standard secrets object type and for responses whose list kind resolved to SecretList; the custom resources query path supplied a user-controlled group/apiVersion/plural tuple (for example group '', apiVersion 'v1', plural 'secrets'), so a SecretList returned through that path bypassed the masking branch entirely. Additionally, redaction covered only the data field, leaving the stringData field - which can carry plaintext secret material - untouched. The upstream fix (commit 388926ae5734bc20bd6a1520d02896be834f6527) normalizes the singular kind from the list kind and extends redaction to both objectType === 'secrets' and any resource whose kind resolves to Secret, masking both data and stringData values as ***, while explicitly leaving non-Secret custom resources unredacted. The CVSS scope change (S:C) reflects that the exposed data belongs to external Kubernetes clusters rather than the Backstage host itself.
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
Network API access with low complexity; PR:L because a valid user with K8s read permission is required; S:C because leaked secrets belong to the separate cluster authority; only limited confidentiality impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Backstage is an open framework for building developer portals. Prior to 0.21.9, the @backstage/plugin-kubernetes-backend package is affected by sensitive information disclosure in kubernetes resource queries. An authenticated user holding the standard Kubernetes resource read permission could retrieve sensitive values that the Kubernetes plugin is designed to mask, potentially exposing credentials and other confidential material held in the connected clusters. Exposure is limited to resources that the Backstage service account is permitted to read and that match the targeted catalog entity's namespace and label selector. Deployments whose cluster credentials do not grant read access to these resources are unaffected. This issue is fixed in version 0.21.9.
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-94374
GHSA-p795-mqf2-36mf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB