CVE-2026-106561
Executive Summary
CVE-2026-106561 is a sensitive information disclosure vulnerability in the @backstage/plugin-kubernetes-backend package of Backstage, an open framework for building developer portals. In versions prior to 0.21.9, an authenticated user with only the standard Kubernetes resource read permission could retrieve sensitive values that the plugin is designed to mask, potentially exposing credentials and other confidential material held in the connected clusters. The exposure is limited to resources the Backstage service account can read that match a targeted catalog entity's namespace and label selector, yielding moderate confidentiality impact (CVSS 5.0).
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The affected component is the @backstage/plugin-kubernetes-backend package. Backstage is an open framework for building developer portals, and this plugin brokers interactions between the Backstage backend and connected Kubernetes clusters. Per the NVD description, the flaw is a sensitive information disclosure (CWE-200) in Kubernetes resource queries.
The plugin contains masking logic intended to filter sensitive values out of Kubernetes resource responses before they are surfaced to a requesting user. In versions prior to 0.21.9, that masking can be bypassed: an authenticated user who holds the standard Kubernetes resource read permission is able to retrieve the sensitive values the plugin is designed to mask. Concretely, this means values that the plugin normally redacts (described by the CNA as potentially including credentials and other confidential material stored in the connected clusters) can be returned to a lower-privileged authenticated user who should not see them.
Several scoping constraints limit the blast radius and are important for defenders:
- The requester must be authenticated and must hold the standard Kubernetes resource read permission. No privilege escalation beyond an already-held read permission is implied.
- Exposure is bounded by the Backstage service account's own permissions — only resources that service account can read are reachable.
- Exposure is further bounded by the targeted catalog entity's namespace and label selector, meaning the query is anchored to a specific catalog entity's scope.
- Deployments whose cluster credentials do not grant read access to the affected resources are unaffected.
The root cause class is insufficient enforcement of output masking/redaction on a backend query path — i.e., the read-authorization check passes but the secondary redaction control does not hold. No specific function names, endpoints, parameters, or file paths are provided in the available advisory text, so the precise code path cannot be described without fabrication. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N) reflects a network-reachable, low-complexity, low-privilege-triggerable disclosure with a scope change, low confidentiality impact, and no integrity or availability impact.
Exploitation Scenarios
No public proof-of-concept, exploit code, or Nuclei template is available; the attack chain below is inferred from the vulnerability class and the advisory text only.
Reconnaissance / target identification. An attacker gains authenticated access to a Backstage developer portal in which the
@backstage/plugin-kubernetes-backendpackage is installed at a version prior to 0.21.9. The attacker identifies catalog entities that are mapped to connected Kubernetes clusters and enumerates which entities carry namespace and label selectors tied to the attacker's authorized (or guessable) scope.Triggering the flaw class. Leveraging the standard Kubernetes resource read permission already granted to their account, the attacker issues Kubernetes resource queries through the Backstage plugin. Because masking is not correctly enforced in the vulnerable versions, the returned resource data includes the sensitive field values the plugin is intended to mask.
Payload/execution method. At the vulnerability-class level, this is an abuse of an authorized read operation on an information repository (T1213) — no memory-corruption payload or code injection is involved. The attacker simply performs resource queries that fall within the service account's readable set and their catalog entity's namespace/label scope, harvesting the unredacted response fields.
Post-exploitation impact. Harvested sensitive values — potentially credentials and other confidential material held in the connected clusters — can be reused to pivot into cluster-connected systems, escalate access, or exfiltrate further data, subject to the permissions attached to the disclosed credentials. Exposure remains bounded by the Backstage service account's read permissions and the entity namespace/label selector.
Impact Assessment
The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N yields a base score of 5.0 (Medium). Subscores indicate:
- Attack Vector: Network — exploitable remotely against the Backstage backend API.
- Attack Complexity: Low — no special conditions or race windows are required.
- Privileges Required: Low — the attacker must be an authenticated user with the standard Kubernetes resource read permission.
- User Interaction: None — no victim action needed.
- Scope: Changed — the disclosure affects resources beyond the vulnerable component's own security authority (connected clusters), which is why scope is marked Changed.
- Confidentiality: Low / Integrity: None / Availability: None — limited to information disclosure.
Business impact centers on credential and confidential-material disclosure from connected Kubernetes clusters. Because the disclosed secrets may grant access to additional systems, the practical blast radius can exceed the nominal "Low" confidentiality rating, subject to the permissions attached to the exposed credentials. The scope constraints (service account read permissions, entity namespace/label selector) mean multi-tenant Backstage deployments with broad service account read access carry the greatest exposure. There is no integrity or availability impact, and no evidence of exploitation in the wild; CISA KEV status is NO and EPSS is not yet scored.
Detection Guidance
Sigma Rule
title: Backstage Kubernetes Plugin Sensitive Resource Query Disclosure (CVE-2026-106561)
id: 8e3f4a12-6c2b-4d9e-9f1a-7b5c0d2e4a6f
status: experimental
description: Detects anomalous authenticated Kubernetes resource queries via the Backstage plugin-kubernetes-backend that may indicate exploitation of the masking-bypass information disclosure.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-106561
author: valtersit.com
date: 2026-01-01
logsource:
product: backstage
service: kubernetes-backend
detection:
selection_endpoint:
http.url|contains: '/kubernetes'
selection_verb:
http.method: 'GET'
selection_status:
http.response.status: 200
selection_resource:
http.url|contains:
- 'resources'
- 'secrets'
condition: selection_endpoint and selection_verb and selection_status and selection_resource
fields:
- http.url
- http.method
- client.ip
- user.name
falsepositives:
- Legitimate developer portal queries to Kubernetes resources
level: medium
YARA Rule
rule CVE_2026_106561_Backstage_K8s_Disclosure
{
meta:
description = "Detects Backstage plugin-kubernetes-backend artifacts/version strings associated with CVE-2026-106561"
author = "valtersit.com"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-106561"
date = "2026-01-01"
strings:
$pkg = "@backstage/plugin-kubernetes-backend"
$ver = "0.21.9"
condition:
$pkg and not $ver
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-106561 Backstage Kubernetes Backend Sensitive Resource Disclosure Attempt"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"/kubernetes"; http.uri; content:"resources"; classtype:attempted-recon; reference:cve,CVE-2026-106561; sid:2026106561; rev:1;)
Elastic Detection
sequence by user.name with maxspan=1m
[ http where http.request.method == "GET" and http.request.path : "*kubernetes*" ]
[ http where http.request.method == "GET" and http.request.path : "*resources*" and http.response.status_code == 200 ]
Splunk SPL Query
index=web sourcetype=backstage OR sourcetype=nginx:access
| search uri="*kubernetes*" uri="*resources*" method=GET status=200
| stats count values(uri) as uris by src_ip, user
| where count > 10
Wazuh OSSEC Rule
<group name="backstage,cve-2026-106561,">
<rule id="106561" level="10">
<decoded_as>json</decoded_as>
<field name="http.url">/kubernetes</field>
<regex>resources</regex>
<description>CVE-2026-106561: Backstage Kubernetes backend sensitive resource query detected</description>
<mitre>
<id>T1213</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). No vendor fix, workaround, affected-version list, or OSV package metadata is available in tracked sources; the advisory states the issue is fixed in version 0.21.9, which should be treated as the remediation target and independently verified.
Immediate mitigations.
- Restrict the Backstage service account's Kubernetes read permissions to the minimum required set, applying least privilege so that sensitive resources (e.g., credential-bearing resources) are not readable. The advisory notes deployments whose cluster credentials do not grant read access to these resources are unaffected — narrowing service account access reduces the exposure window on vulnerable versions.
- Audit and reduce which catalog entities map to namespaces/label selectors containing sensitive resources.
- Review authenticated-user access: since exploitation requires only the standard Kubernetes resource read permission, tightly control which portal users hold that permission until the package is upgraded.
Patch/upgrade steps.
- Upgrade
@backstage/plugin-kubernetes-backendto version 0.21.9 or later. - Validate the upgrade and confirm masking behavior on affected resource queries.
- Because patch confidence is 0/4 and no vendor patch source is currently tracked, verify the fix against the project's own release/advisory artifacts before relying on it and monitor NVD/vendor channels for authoritative patch confirmation.
- Upgrade
Long-term hardening.
- Enforce least-privilege RBAC for the Backstage service account on all connected clusters.
- Continuously monitor authenticated queries that touch sensitive resource types for anomalous volumes or scopes.
- Track the CVE for KEV/EPSS updates and integrate version detection of
@backstage/plugin-kubernetes-backendinto dependency and SBOM scanning.
References
- NVD — https://nvd.nist.gov/vuln/detail/CVE-2026-106561
- Backstage project repository and release notes for
@backstage/plugin-kubernetes-backend(version 0.21.9 fix target) — https://github.com/backstage/backstage - Backstage Kubernetes plugin documentation — https://backstage.io/docs
- CWE-200: Exposure of Sensitive Information to an Unauthorized Actor — https://cwe.mitre.org/data/definitions/200.html
No threat actor campaigns or exploit-in-the-wild evidence are known; CISA KEV status is NO, EPSS is not yet scored, and no public PoC or Nuclei template is available.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.