CVE-2026-106501: Backstage: Sensitive information exposure in Scaffolder
Backstage's Scaffolder backend can return internal execution data to an authenticated user who reads another user's task. If that data holds credentials for an external service, the reader can use them. Patched in @backstage/plugin-scaffolder-backend 3.3.1, 3.4.1, 4.0.3 and 4.1.0, depending on your release line.
Published Oct 7, 2026 · Analysis Oct 25, 2026
What an attacker can do
The Scaffolder runs software templates, and each run is a task. A task carries internal execution data. In affected versions, a user who is allowed to read someone else's task receives that data. The advisory does not list the fields. It says that where the data contains credentials for an external service, the reader may gain disclosure of, and make unauthorized changes in, that service.
The attacker needs a Backstage login and permission to read other users' tasks. By default, any signed-in user may have that, depending on your permission policy. Think of a template that takes a token for a Git host, cloud account or registry. Another employee who can open the task could pick up that token and act on that service with its rights, which reaches well past Backstage itself. That explains the changed-scope vector and the 9.6 score.
If your policy already limits task reads to the task's creator, exposure is much lower.
Who is affected
Affected: npm package @backstage/plugin-scaffolder-backend below 3.3.1, 3.4.0 only (fixed in 3.4.1), 4.0.0 to 4.0.2 (fixed in 4.0.3), and 4.0.4 only (fixed in 4.1.0). Check:
npm ls @backstage/plugin-scaffolder-backendThen look at your permission policy for scaffolder.task.read. If it lets users read tasks they did not create, you are exposed.
@backstage/plugin-scaffolder-backend
- Ecosystem
- npm
- Affected
- < 3.3.1
- Fixed in
- 3.3.1
- Check
npm ls @backstage/plugin-scaffolder-backend
@backstage/plugin-scaffolder-backend
- Ecosystem
- npm
- Affected
- >= 3.4.0, < 3.4.1
- Fixed in
- 3.4.1
- Check
npm ls @backstage/plugin-scaffolder-backend
@backstage/plugin-scaffolder-backend
- Ecosystem
- npm
- Affected
- >= 4.0.0, < 4.0.3
- Fixed in
- 4.0.3
- Check
npm ls @backstage/plugin-scaffolder-backend
@backstage/plugin-scaffolder-backend
- Ecosystem
- npm
- Affected
- >= 4.0.4, < 4.1.0
- Fixed in
- 4.1.0
- Check
npm ls @backstage/plugin-scaffolder-backend
How to fix it
Upgrade @backstage/plugin-scaffolder-backend to the patched version for your line: 3.3.1, 3.4.1, 4.0.3, or 4.1.0.
yarn up @backstage/plugin-scaffolder-backendThe fix shipped in Backstage releases 1.49.6, 1.50.5 and 1.54.6. Workarounds from the advisory: configure scaffolder.task.read with the isTaskOwner condition so users read only tasks they created, and restrict affected integrations and workflows to trusted operators. After upgrading, rotate credentials that templates passed through tasks.
How to tell if you were hit
Look in Backstage backend logs for task read requests where the requester differs from the task creator. Check which external-service credentials your templates handle, then review those services' audit logs for unusual use from unexpected addresses or accounts. The advisory names no log strings.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Impact
An authenticated Backstage user who can read another user's Scaffolder task may receive internal execution data. In deployments where that data contains credentials for an external service, this may permit disclosure and unauthorized changes in that external service.
Patches
Patched in @backstage/plugin-scaffolder-backend version 4.1.0
Workarounds
- Configure
scaffolder.task.readwith theisTaskOwnercondition so users can only read tasks they created. - Restrict affected integrations and workflows to trusted operators until an upgrade is available.
Questions
- Can an unauthenticated visitor read tasks?
No. The advisory says an authenticated Backstage user is needed, and that user must be able to read another user's Scaffolder task.
- How do I restrict task reads?
Use the
isTaskOwnercondition onscaffolder.task.readin your permission policy, so users can only read tasks they created. This is the advisory's workaround.- Is there one fixed version?
No. Patched versions are 3.3.1, 3.4.1, 4.0.3 and 4.1.0, depending on your release line. The Backstage releases 1.49.6, 1.50.5 and 1.54.6 carry them.
References
Read for this analysis:
- https://nvd.nist.gov/vuln/detail/CVE-2026-106501
- https://github.com/backstage/backstage/commit/66d2219edf0abe33ab7d0c1ced5d069d1e065be5
- https://github.com/backstage/backstage/commit/c19838870476a8e29144c84b1a5ac0654ec20fb5
- https://github.com/backstage/backstage/commit/e262d649981ff99bb01ca7077807ae3e25e85560
- https://github.com/backstage/backstage/releases/tag/v1.49.6
- https://github.com/backstage/backstage/releases/tag/v1.50.5
- https://github.com/backstage/backstage/releases/tag/v1.54.6
- https://github.com/advisories/GHSA-g2v8-7jhw-pp8p
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
