Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Scaffolder template-authoring privileges
-
DeliveryCreate template iterating transformed environment.secrets in an each loop
-
ExploitTrigger task execution that logs iteration values
-
ExecutionSecret-derived value persisted unredacted to task log
-
ImpactRead exposed secret from accessible task logs
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A09:2025 - Security Logging & Alerting Failures
ASVS 5.0
V16 - Security Logging and Error Handling Log data sanitization
|
| Exploitation Conditions | Exploitation requires a specific non-default configuration AND privileged access. First, the deployment must populate sensitive values in scaffolder.defaultEnvironment.secrets (without configured secrets there is nothing to leak). Second, the attacker must already hold the privileged capability to create or modify Scaffolder templates (reflected as PR:H). Third, the malicious template must use secret-derived values inside an 'each' iteration where the value is passed through a transforming Nunjucks filter (e.g. upper, replace, or a custom filter such as toSecretKeyedObject), because untransformed secrets were already redacted - only transformed/derived forms escaped redaction. Finally, a reader must have access to the resulting task logs to actually obtain the value. Limiting factors: no anonymous/unauthenticated path, requires trusted template-author role, requires secrets to be configured at all, and requires log-read access - making realistic risk substantially lower than the C:H rating alone suggests. |
| Impact | This is a genuinely moderate, hard-to-exploit information-disclosure issue rather than a high-urgency flaw, and the signals are consistent in pointing that way. The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N, base 4.9 MEDIUM) shows high confidentiality impact but gated behind PR:H - the attacker must already hold the privileged ability to author or modify Scaffolder templates, which in most Backstage deployments is a trusted role. No EPSS score, KEV listing, or POC was provided in the intelligence, so there is no evidence of active or probable exploitation; exploitation status is 'no public exploit identified at time of analysis.' Two conditions must BOTH hold: the deployment must configure real secrets in scaffolder.defaultEnvironment.secrets, AND an attacker must already be a (malicious or compromised) template author, AND finally a victim must be able to read the resulting task logs. The high-privilege precondition plus the non-default secret configuration requirement sharply narrow real-world exposure despite the C:H rating. This should be patched on a normal maintenance cadence, not treated as an emergency. One versioning nuance to verify: the description says 'prior to 4.1.0 / fixed in 4.1.0' (the @backstage/plugin-scaffolder-backend package version), while the NVD reference points to release tag v1.54.6 (the umbrella Backstage release) - these are not conflicting, they are two different version namespaces, but operators should confirm which they track. |
| Exploit ScenarioDerived | A user with Scaffolder template-authoring rights in a Backstage instance that has secrets configured under scaffolder.defaultEnvironment.secrets writes a template that iterates (via an 'each' loop) over a secret value passed through a transforming filter such as upper or replace. Because transformed secret-derived values were not redacted, the resolved secret is persisted into the Scaffolder task log, where any user able to view that task's logs can read it. No public exploit code was identified in the provided intelligence; the fix in 4.1.0 extends log redaction to these transformed iteration values. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Secret-derived values used during Scaffolder template iteration in Backstage can leak into task logs, exposing configured scaffolder.defaultEnvironment.secrets to anyone who can read those logs. Affected deployments run the @backstage/plugin-scaffolder-backend package prior to version 4.1.0, and exploitation requires a privileged, authenticated template author (PR:H in the CVSS vector) plus a deployment that has populated sensitive values in scaffolder.defaultEnvironment.secrets. The flaw only manifests when secret-derived values pass through a transforming Nunjucks filter inside an 'each' loop, since untransformed secrets were already redacted; no public exploit code has been identified at time of analysis and there is no confirmed active exploitation (not in CISA KEV). Realistic risk is moderate given the layered prerequisites, though the confidentiality impact for exposed credentials is high.
RemediationAI
Upgrade @backstage/plugin-scaffolder-backend to version 4.1.0 or later, or update to the Backstage release v1.54.6 (https://github.com/backstage/backstage/releases/tag/v1.54.6); the change is a patch-level update and the diff can be reviewed at https://github.com/backstage/backstage/commit/dc30fae2d96cb1606d36cc40b242f9b9e539bd70, with details in the advisory GHSA-mfvq-x7vr-rgqg. If immediate upgrade is not possible, compensating controls include: removing sensitive values from scaffolder.defaultEnvironment.secrets and supplying them via a dedicated secret-management action rather than environment templating, which eliminates the leak path but requires reworking template inputs; tightening the Scaffolder template-authoring permission so only the most trusted principals can create or modify templates, which directly removes the PR:H prerequisite; and restricting read access to Scaffolder task logs or disabling persistent task-log storage for templates that consume secrets, though this reduces operational debuggability. Note that log redaction operates on display, so any secret value already persisted by a vulnerable version should be treated as compromised and rotated.
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 issue is a classic CWE-532 (Insertion of Sensitive Information into Log File) rooted in Backstage's Scaffolder task-log redaction logic. Backstage uses the Nunjucks templating engine inside NunjucksWorkflowRunner to render Scaffolder step definitions, including 'each' iterations that build context objects such as each.value and each.key. The runner maintains an environment.secrets / task.secrets set and scrubs raw secret strings from logs, but the pre-patch implementation compared resolved iteration values against the original secret set. When a template applies a transforming filter - for example upper, replace, or a custom filter like toSecretKeyedObject - the secret is mutated into a derived value that no longer matches the raw secret, so the redaction routine fails to recognize it and the derived value is persisted to task logs. The upstream fix (commit dc30fae) resolves each iteration a second time against a context with secrets stripped (preparedPreIterationContextNoSecrets), discovers which rendered iteration entries are secret-derived, and redacts those entries before any logging or execution. The updated tests demonstrate redaction of upper-cased, replace-transformed, and key-derived secret values while leaving genuinely public iteration values intact.
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:H/UI:N/S:U/C:H/I:N/A:N
Template authoring is a privileged capability (PR:H) over the network-facing portal (AV:N/AC:L); impact is secret disclosure only (C:H, I:N, A:N) with no scope change.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
Backstage is an open framework for building developer portals. Prior to 4.1.0, the @backstage/plugin-scaffolder-backend package could expose secret-derived values in Scaffolder task logs. Deployments that configure sensitive scaffolder.defaultEnvironment.secrets and allow an attacker to create or modify Scaffolder templates are affected. A template author could cause secret-derived values used during template iteration to be persisted and exposed to users who can access the resulting task logs. This issue is fixed in version 4.1.0.
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.
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.
Path traversal in the Backstage Scaffolder Bitbucket pull-request publish actions allows an authenticated user who can e
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-94057
GHSA-mfvq-x7vr-rgqg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB