CVE-2026-24046

7.1 HIGH

📋 TL;DR

This CVE describes a symlink-based path traversal vulnerability in Backstage's Scaffolder component. Attackers with template creation/execution privileges can exploit symlinks to read, delete, or write arbitrary files on the filesystem. This affects any Backstage deployment where users can create or execute Scaffolder templates.

💻 Affected Systems

Products:
  • Backstage
  • @backstage/backend-defaults
  • @backstage/plugin-scaffolder-backend
  • @backstage/plugin-scaffolder-node
Versions: All versions before @backstage/backend-defaults 0.12.2, 0.13.2, 0.14.1, 0.15.0; @backstage/plugin-scaffolder-backend before 2.2.2, 3.0.2, 3.1.1; @backstage/plugin-scaffolder-node before 0.11.2, 0.12.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments where users can create or execute Scaffolder templates. Default Backstage installations with template capabilities are vulnerable.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise via reading sensitive files (secrets, configs), deleting critical system files, or writing malicious files to sensitive locations.

🟠

Likely Case

Unauthorized access to sensitive configuration files, secrets, or user data stored on the filesystem.

🟢

If Mitigated

Limited impact if proper access controls restrict template creation/execution to trusted users only.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access with template creation/execution permissions. The vulnerability is straightforward to exploit once access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: @backstage/backend-defaults 0.12.2, 0.13.2, 0.14.1, 0.15.0 or later; @backstage/plugin-scaffolder-backend 2.2.2, 3.0.2, 3.1.1 or later; @backstage/plugin-scaffolder-node 0.11.2, 0.12.3 or later

Vendor Advisory: https://github.com/backstage/backstage/security/advisories/GHSA-rq6q-wr2q-7pgp

Restart Required: Yes

Instructions:

1. Update affected packages to patched versions using npm/yarn. 2. Restart Backstage services. 3. Verify no regressions in template functionality.

🔧 Temporary Workarounds

Restrict template permissions

all

Limit who can create and execute Scaffolder templates using Backstage's permissions framework

Configure Backstage permission policies to restrict template operations

Container isolation

linux

Run Backstage in containerized environment with limited filesystem access

docker run -v /safe/path:/app --read-only ...

🧯 If You Can't Patch

  • Implement strict access controls to limit who can create/execute Scaffolder templates
  • Audit existing templates for symlink usage and remove suspicious templates
  • Run Backstage with minimal filesystem permissions in isolated container

🔍 How to Verify

Check if Vulnerable:

Check package.json for affected package versions: @backstage/backend-defaults <0.12.2, <0.13.2, <0.14.1, <0.15.0; @backstage/plugin-scaffolder-backend <2.2.2, <3.0.2, <3.1.1; @backstage/plugin-scaffolder-node <0.11.2, <0.12.3

Check Version:

npm list @backstage/backend-defaults @backstage/plugin-scaffolder-backend @backstage/plugin-scaffolder-node

Verify Fix Applied:

Verify updated packages show patched versions in package.json and node_modules

📡 Detection & Monitoring

Log Indicators:

  • Unusual file access patterns via Scaffolder actions
  • Template execution accessing paths outside workspace
  • Symlink creation in template operations

Network Indicators:

  • N/A - local filesystem exploitation

SIEM Query:

source="backstage" AND (action="debug:log" OR action="fs:delete") AND path CONTAINS "/etc/" OR path CONTAINS "/root/" OR path CONTAINS ".."

🔗 References

📤 Share & Export