Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as user with K8s read permission
-
ExploitCraft entity data to deprecated /services endpoint
-
ExecutionBypass improper entity validation
-
ImpactRead Kubernetes object metadata across configured clusters
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Attacker must be an authenticated Backstage user who already holds Kubernetes read permissions (PR:L), and must target the specific DEPRECATED kubernetes services endpoint (POST /api/kubernetes/services/:serviceId in @backstage/plugin-kubernetes-backend) by supplying crafted entity data in the request body that the vulnerable code passes through without resolving it against the catalog. Limiting factors: exploitation is impossible for unauthenticated users or users lacking Kubernetes read permission; it only affects the deprecated services endpoint (not current endpoints); the result is read-only Kubernetes object metadata with no integrity or availability impact; and the high attack complexity (AC:H) reflects the need to craft an entity reference that evades validation. Not exploitable against instances already on @backstage/plugin-kubernetes-backend 0.21.8 or later. |
| Impact | This is a moderate, authorization-boundary (CWE-20) issue rather than a high-urgency priority. The provided CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N = 5.3) indicates network reachability but requires existing low privileges (PR:L) AND high attack complexity (AC:H), which materially constrains real-world exploitation. Exploitation status is 'no public exploit identified at time of analysis' - no POC, no EPSS score, and no CISA KEV listing were provided, so there is no evidence of active or at-scale exploitation; this looks like a privilege-scoping/IDOR-style defect most relevant to multi-tenant Backstage deployments. One signal to flag: the vendor rated C:H, but the description explicitly limits exposure to 'read-only access to Kubernetes object metadata' - no integrity or availability impact and no write/code execution - so the C:H rating is arguably generous for metadata-only disclosure; verify sensitivity of exposed metadata against your environment. Net: real but low-to-moderate priority, driven by the need for a pre-authenticated user who already holds Kubernetes read permissions. |
| Exploit ScenarioDerived | An authenticated Backstage user who already holds Kubernetes read permissions issues a request to the deprecated kubernetes services endpoint with crafted entity data that is not properly resolved against the catalog, causing the backend to return Kubernetes workload metadata for clusters/entities outside the user's intended authorization scope. No public exploit code was identified, and the high attack complexity (AC:H) means the attacker must shape the entity reference payload precisely to bypass validation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Improper entity validation in the deprecated Kubernetes services endpoint of @backstage/plugin-kubernetes-backend lets an authenticated Backstage user who already holds Kubernetes read permissions retrieve Kubernetes object metadata beyond their intended scope by submitting crafted entity data in the request body. The vulnerable handler trusted the caller-supplied entity reference instead of resolving it against the Backstage catalog, so the request was processed against an entity the user was not authorized for; the fix (0.21.8) parses the entity reference and performs a catalog lookup, returning 403 when no matching entity exists. Exposure is limited to read-only Kubernetes object metadata across configured clusters with no integrity or availability impact, and no public exploit code has been identified at time of analysis; exploitation is constrained to the legacy deprecated services endpoint and requires a crafted request that evades validation (AC:H).
RemediationAI
Vendor-released patch: upgrade @backstage/plugin-kubernetes-backend to 0.21.8 (or bump the Backstage distribution to v1.54.1), per the advisory at https://github.com/backstage/backstage/security/advisories/GHSA-r9ph-3637-55px; the fixing commit is https://github.com/backstage/backstage/commit/2d5d3e77d630455d6d48cfa8f31fd3c126fd6f29. If immediate upgrading is not possible, the highest-value compensating control is to stop exposing the deprecated services endpoint - remove or block POST /api/kubernetes/services/:serviceId at the reverse proxy or ingress, or unregister the legacy router; the trade-off is that any legacy integrations still depending on that endpoint will break, but current Kubernetes backend endpoints remain functional. Because the flaw is authorization-boundary limited, review and tighten Kubernetes RBAC so that Backstage service accounts and their permission framework bindings grant the minimum necessary read scope, reducing the blast radius of any metadata that could be returned; this is defense-in-depth only and does not substitute for the patch. Finally, audit logs for requests to the deprecated services endpoint carrying entity bodies that do not correspond to catalog entities, since the fixed code surfaces those as 403 with an audit-event failure.
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 @backstage/plugin-kubernetes-backend is its backend plugin that brokers read access to Kubernetes clusters on behalf of catalog entities. The root cause is CWE-20 (Improper Input Validation): in the deprecated services endpoint (POST /api/kubernetes/services/:serviceId in plugins/kubernetes-backend/src/service/KubernetesRouter.ts), the router passed requestBody?.entity straight through to the Kubernetes service layer (ObjectsByEntityRequest) rather than resolving that entity against the Backstage catalog. The upstream diff shows the fix importing parseEntityRef, obtaining httpAuth.credentials(req), calling catalog.getEntityByRef(parsedRef, { credentials }), and throwing NotAllowedError('Entity not found, ...') when no catalog entity matches, replacing the untrusted client-supplied entity with the catalog-resolved object. A regression test ('rejects entities not found in catalog') asserts HTTP 403 and an audit-event failure. CPE data (cpe:2.3:a:backstage:backstage and cpe:2.3:a:@backstage:plugin-kubernetes-backend) confirms both the Backstage distribution and the standalone plugin package are in scope. Note that the referenced upstream commit also bundles unrelated changesets for search-backend and the Elasticsearch search module (empty document type / unfiltered query fixes), which are separate defects and not part of this CVE.
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:U/C:H/I:N/A:N
Authenticated user with existing K8s read (PR:L) crafting payloads to a deprecated endpoint (AC:H); impact is read-only metadata disclosure only, so C:L (not vendor's C:H), I:N, A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
Backstage is an open framework for building developer portals. Prior to 0.21.8, the @backstage/plugin-kubernetes-backend package is affected by improper entity validation in deprecated kubernetes services endpoint. An authenticated user with Kubernetes read permissions could access Kubernetes workload data beyond their intended scope by supplying crafted entity data to the deprecated services endpoint. The exposure is limited to read-only access to Kubernetes object metadata across configured clusters. This issue is fixed in version 0.21.8.
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-94376
GHSA-r9ph-3637-55px
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB