/

CVE-2026-106557

Severity:

HIGH RISK

(7.7)

Path Traversal (CWE-22) in Backstage TechDocs Plugin

CVE-2026-106557

Awaiting Analysis

Vulnerability type

Category:

Path Traversal

CWE:

CWE-22, CWE-918

Impact:

Sensitive Information Disclosure and Server-Side Request Forgery

Severity:

HIGH RISK

(7.7)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Backstage TechDocs did not sufficiently validate Markdown extension configuration, allowing an authenticated user who can register or modify documentation sources to influence build-time resource access.

Under those conditions, a TechDocs build may access files outside the intended documentation boundary or reach internal network resources, potentially exposing backend-host data.

Backstage TechDocs did not sufficiently validate Markdown extension configuration, allowing an authenticated user who can register or modify documentation sources to influence build-time resource access.

Under those conditions, a TechDocs build may access files outside the intended documentation boundary or reach internal network resources, potentially exposing backend-host data.

Affected context

The issue occurs in Backstage deployments using the TechDocs Node plugin and Markdown extensions to build documentation from user-controlled or user-modifiable documentation sources. Risk is higher when authenticated users can register repositories, change documentation configuration, or otherwise influence the Markdown extension settings used during a build.

The issue occurs in Backstage deployments using the TechDocs Node plugin and Markdown extensions to build documentation from user-controlled or user-modifiable documentation sources. Risk is higher when authenticated users can register repositories, change documentation configuration, or otherwise influence the Markdown extension settings used during a build.

Exploit preconditions

  • Attack surface: TechDocs documentation registration and build processing
  • Required access: Authenticated access with permission to register or modify documentation sources or related configuration
  • Trigger point: TechDocs builds that process affected Markdown extension configuration
  • Why exploitation is possible: Insufficient validation can allow resource references to escape the intended documentation boundary or target internal network locations
  • Attack surface: TechDocs documentation registration and build processing
  • Required access: Authenticated access with permission to register or modify documentation sources or related configuration
  • Trigger point: TechDocs builds that process affected Markdown extension configuration
  • Why exploitation is possible: Insufficient validation can allow resource references to escape the intended documentation boundary or target internal network locations

Why this happens

The underlying issue is inadequate boundary validation for resources referenced through TechDocs Markdown extension configuration. Input that should have been constrained to the documentation workspace was not sufficiently restricted before being used by the build process.

This maps primarily to CWE-22: Improper Limitation of a Pathname to a Restricted Directory, because path and resource resolution may escape an intended directory. It is also related to CWE-918: Server-Side Request Forgery when build-time processing can make requests to internal or otherwise unintended network destinations.

The underlying issue is inadequate boundary validation for resources referenced through TechDocs Markdown extension configuration. Input that should have been constrained to the documentation workspace was not sufficiently restricted before being used by the build process.

This maps primarily to CWE-22: Improper Limitation of a Pathname to a Restricted Directory, because path and resource resolution may escape an intended directory. It is also related to CWE-918: Server-Side Request Forgery when build-time processing can make requests to internal or otherwise unintended network destinations.

Potential impact

  • Backend-host files may be exposed through generated documentation or build results
  • Internal network services may receive unintended requests
  • Credentials, metadata, or configuration data may be disclosed
  • Documentation build workers may be used to probe protected network locations
  • Trust between documentation contributors and the developer portal may be weakened
  • Backend-host files may be exposed through generated documentation or build results
  • Internal network services may receive unintended requests
  • Credentials, metadata, or configuration data may be disclosed
  • Documentation build workers may be used to probe protected network locations
  • Trust between documentation contributors and the developer portal may be weakened

General mitigation guidance

Mitigation generally focuses on enforcing strict resource boundaries during documentation builds and reducing trust in user-controlled configuration.

Common defensive patterns include:

  • Restricting file resolution to an explicitly defined documentation root
  • Canonicalizing paths before authorization and rejecting traversal outside approved directories
  • Allowlisting supported Markdown extensions and their configuration options
  • Applying outbound network policies that deny unnecessary access from build workers
  • Separating documentation build identities from sensitive backend services
  • Running build processes with least-privilege filesystem and network permissions
  • Treating documentation sources and extension settings as untrusted input
  • Keeping related parser and documentation dependencies aligned with security fixes

Mitigation generally focuses on enforcing strict resource boundaries during documentation builds and reducing trust in user-controlled configuration.

Common defensive patterns include:

  • Restricting file resolution to an explicitly defined documentation root
  • Canonicalizing paths before authorization and rejecting traversal outside approved directories
  • Allowlisting supported Markdown extensions and their configuration options
  • Applying outbound network policies that deny unnecessary access from build workers
  • Separating documentation build identities from sensitive backend services
  • Running build processes with least-privilege filesystem and network permissions
  • Treating documentation sources and extension settings as untrusted input
  • Keeping related parser and documentation dependencies aligned with security fixes

How teams detect issues like this

Detection approaches may include:

  • Static analysis for path joins, file reads, and URL requests that use documentation or extension configuration without boundary checks
  • Code review checks for canonicalization performed after authorization, unrestricted resource schemes, and user-controlled build settings
  • Runtime monitoring of TechDocs workers accessing files outside approved roots or making unexpected internal network connections
  • Egress policies and alerts for build containers contacting private address ranges or sensitive service endpoints
  • Automated dependency and security review tools that flag affected parser and documentation components

Detection approaches may include:

  • Static analysis for path joins, file reads, and URL requests that use documentation or extension configuration without boundary checks
  • Code review checks for canonicalization performed after authorization, unrestricted resource schemes, and user-controlled build settings
  • Runtime monitoring of TechDocs workers accessing files outside approved roots or making unexpected internal network connections
  • Egress policies and alerts for build containers contacting private address ranges or sensitive service endpoints
  • Automated dependency and security review tools that flag affected parser and documentation components

Sources

SourceLink
github.comgithub.com/backstage/backstage/commit/017ace52d9b327ededc6704cf17799c875ae0f29
github.comgithub.com/backstage/backstage/commit/2d9de4ca117a529de4b6ed7dfb7aa507ca7b3f91
github.comgithub.com/backstage/backstage/releases/tag/v1.50.5
github.comgithub.com/backstage/backstage/releases/tag/v1.54.6
github.comgithub.com/backstage/backstage/security/advisories/GHSA-f7v3-xhm6-w245

Frequently asked

questions

It can be exploitable through the Backstage application when an authenticated user has permission to register or modify documentation sources or related TechDocs configuration. It is not necessarily reachable by unauthenticated users.

The relevant account must be able to influence documentation input or configuration processed by a TechDocs build. The exact scope depends on Backstage authorization and repository-management policies.

Enforce canonical, allowlisted file and network boundaries before resource access, use restricted Markdown extension configuration, and prevent build workers from reaching unnecessary filesystem and network resources.

Treat documentation configuration as untrusted input, apply least privilege and network egress controls to build workers, review resource-resolution code, and continuously scan dependencies and build components for security updates.

It can be exploitable through the Backstage application when an authenticated user has permission to register or modify documentation sources or related TechDocs configuration. It is not necessarily reachable by unauthenticated users.

The relevant account must be able to influence documentation input or configuration processed by a TechDocs build. The exact scope depends on Backstage authorization and repository-management policies.

Enforce canonical, allowlisted file and network boundaries before resource access, use restricted Markdown extension configuration, and prevent build workers from reaching unnecessary filesystem and network resources.

Treat documentation configuration as untrusted input, apply least privilege and network egress controls to build workers, review resource-resolution code, and continuously scan dependencies and build components for security updates.

Find out what's already
exploitable in your codebase.