☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 7.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N 🐛 CWE-22
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-106557

CVE-2026-106557 Path Traversal in Backstage
📅 PUBLISHED: 2026-10-07 00:00 UTC 🔄 UPDATED: 2026-10-08 23:08 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.30%
👁️
0.30% probability
7.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1213
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.7
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: H Confidentiality High
I: N Integrity None
A: N Availability None
7.7
THREAT LEVEL
INTEL SOURCES NVD EPSS HOW WE SCORE →
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-106557 is a path traversal / insufficient validation vulnerability (CWE-22) in the Backstage @backstage/plugin-techdocs-node package, affecting versions prior to 1.14.6 and 1.15.4. An authenticated user who can register or modify documentation sources can cause a TechDocs build to access resources outside the intended documentation boundary, potentially exposing backend host data or internal network resources. Impact is high for confidentiality (CVSS 7.7) because a compromised or malicious documentation source can read data beyond the documented root and reach internal services, though there is no direct integrity or availability impact.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

Backstage is an open framework for building developer portals, and TechDocs is its documentation subsystem. The @backstage/plugin-techdocs-node package handles the Node.js side of TechDocs build orchestration. According to the NVD description, the package "did not sufficiently validate TechDocs Markdown extension configuration."

The core mechanism is a validation gap on Markdown extension configuration used during the TechDocs build process. Because the extension configuration is not properly constrained, a user with the ability to register or modify documentation sources can supply configuration that causes the build to resolve and access resources located outside the intended documentation boundary — that is, outside the directory tree the build is supposed to operate within. This is a systemic or scope-changing traversal issue: the impact crosses a trust boundary (CVSS scope is marked Changed: S:C), meaning the vulnerable component affects resources beyond its own security authority.

Two elements of the fix are relevant:

  • The Node.js package @backstage/plugin-techdocs-node was updated in 1.14.6 and 1.15.4 to validate the Markdown extension configuration adequately.
  • The description states the issue is fixed "when pymdown-extensions 10.21.3 or later is also used, normally through mkdocs-techdocs-core 1.7.0 or later." This indicates the TechDocs build invokes a MkDocs-based toolchain that relies on Python's pymdown-extensions; the traversal behavior can be influenced or enabled through that dependency as well. Consequently, remediation requires both the Node package upgrade and the updated pymdown-extensions/mkdocs-techdocs-core version.

Authentication is required (PR:L) and no user interaction is needed (UI:N). The attack is network-accessible (AV:N) with low complexity (AC:L). Note that "authenticated user who can register or modify documentation sources" is a broad set in many Backstage deployments, where catalog entities and their documentation sources may be created by engineering teams beyond a small admin group. No public PoC, exploit code, or Nuclei template is known as of this writing, and EPSS has not yet scored the CVE; the attack chain described below is inferred from the vulnerability class and the NVD description.

Insufficient technical detail is available in the NVD description to identify specific function names, code paths, URL endpoints, or configuration parameter names beyond those quoted above; this report deliberately avoids fabricating them.

Exploitation Scenarios

No public PoC is available; the following chain is inferred from the vulnerability class (CWE-22) and the NVD description.

  1. Reconnaissance / target identification. The attacker identifies a Backstage deployment that uses TechDocs. Because the vulnerability requires the ability to register or modify documentation sources, the attacker first needs a valid authenticated account with permission to create or edit a catalog entity and its documentation source (e.g., a component owner or team member in a permissive Backstage catalog configuration). The attacker enumerates TechDocs-enabled entities and identifies how the TechDocs build pipeline resolves documentation source locations.

  2. Triggering the flaw class. The attacker registers or modifies a documentation source whose Markdown extension configuration is crafted to point outside the intended documentation boundary. Because @backstage/plugin-techdocs-node prior to 1.14.6 / 1.15.4 does not sufficiently validate this configuration, the build accepts the out-of-boundary configuration and resolves resources outside the docs root. This is a path traversal / boundary-escape condition at the configuration level; no injected code is needed to reach the boundary itself.

  3. Payload / execution method (vulnerability-class level). The "payload" is the malicious Markdown extension configuration attached to the documentation source. When the TechDocs build runs, it resolves the configuration and accesses backend-host files or internal network resources beyond the intended documentation directory. The exact configuration syntax is not specified in the NVD description and is not invented here.

  4. Post-exploitation impact. Successful abuse results in disclosure of backend-host data (local files readable by the TechDocs build process) or exposure of internal network resources reachable from that host (for example, internal HTTP services), because the build's outbound and local access is no longer constrained to the documentation boundary. Confidentiality impact is high; there is no direct integrity or availability impact per the provided vector.

Impact Assessment

  • Confidentiality (C:H): High. Backend-host data and internal network resources can be exposed to a low-privileged authenticated user who controls documentation sources.
  • Integrity (I:N) / Availability (A:N): None per the CVSS vector; the flaw is information disclosure via boundary escape, not data modification or denial of service.
  • Scope (S:C): Changed. The vulnerable component (TechDocs build) affects resources beyond its own security authority — the backend host and internal network.
  • Attack requirements: Network-reachable, low complexity, low privileges, no user interaction. This makes it practical to exploit by any user who already has documentation-source write access.
  • Blast radius: Any Backstage instance running an affected @backstage/plugin-techdocs-node version with a permissive catalog model where engineering teams can create/modify docs sources. Exposed data can include configuration files, credentials material on the backend host, and reachable internal services.
  • Business impact: Potential leak of internal infrastructure detail, secrets in backend files, and internal service enumeration. In environments where Backstage runs with broad host access or in a shared backend network, this can escalate to lateral movement enablement.

Detection Guidance

Detection content below targets the TechDocs build and boundary-escape behavior at the vulnerability-class level. Because no public PoC or indicator set exists, rules are heuristic and may require environment-specific tuning.

Sigma Rule

title: Backstage TechDocs Potential Path Traversal via Markdown Extension Configuration
id: 8f3c2b1a-0d4e-4a6f-9c21-7b5e1d9a2f10
status: experimental
description: Detects TechDocs build activity against affected @backstage/plugin-techdocs-node versions consistent with CVE-2026-106557 boundary-escape behavior.
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-106557
author: valtersit.com
date: 2026/06/01
logsource:
  product: application
  service: backstage
detection:
  selection_pkg:
    ProcessCommandLine|contains|all:
      - 'techdocs'
      - 'mkdocs'
  selection_config:
    EventMessage|contains|any:
      - 'pymdown'
      - 'markdown_extensions'
      - 'mkdocs-techdocs-core'
  selection_traversal:
    EventMessage|contains|any:
      - '../'
      - '..\\'
      - '/etc/passwd'
      - '/proc/self/'
      - 'file://'
  condition: selection_pkg and selection_config and selection_traversal
falsepositives:
  - Legitimate TechDocs builds referencing relative paths in plugin config
level: medium
tags:
  - attack.t1213
  - cve.2026.106557

YARA Rule

rule CVE_2026_106557_Backstage_TechDocs_Traversal
{
    meta:
        description = "Detects TechDocs Markdown extension configuration attempting path boundary escape (CVE-2026-106557)"
        author = "valtersit.com"
        date = "2026-06-01"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-106557"
        severity = "HIGH"
    strings:
        $mk1 = "markdown_extensions" ascii nocase
        $mk2 = "pymdown" ascii nocase
        $mk3 = "mkdocs-techdocs-core" ascii nocase
        $tr1 = "../" ascii
        $tr2 = "..\\" ascii
        $tr3 = "/etc/passwd" ascii
        $tr4 = "/proc/self/" ascii
        $tr5 = "file://" ascii nocase
    condition:
        (any of ($mk*)) and (any of ($tr*))
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-106557 Backstage TechDocs boundary escape attempt"; \
  flow:established,to_server; \
  (http.uri; content:"techdocs"; nocase; content:"markdown"; nocase; content:".."; nocase;) \
  http_user_agent; content:"Backstage"; nocase; \
  sid:10655701; rev:1; \
  reference:cve,2026-106557; \
  classtype:attempted-recon;)

Elastic Detection

sequence by process.entity_id with maxspan=2m
  [process where process.name in ("node","mkdocs","python","python3") and process.command_line like~ "*techdocs*"]
  [file where file.path like~ "*../*" or file.path : ("/etc/passwd","/proc/self/*","/root/*")]

Splunk SPL Query

index=backstage OR index=application sourcetype=backstage:techdocs OR "techdocs"
("markdown_extensions" OR "pymdown" OR "mkdocs-techdocs-core")
("../" OR "..\\" OR "/etc/passwd" OR "/proc/self/" OR "file://")
| stats count values(message) by host, user, source
| where count > 0

Wazuh OSSEC Rule

<group name="backstage,techdocs,cve-2026-106557,">
  <rule id="106557" level="10">
    <decoded_as>json</decoded_as>
    <field name="message">techdocs</field>
    <field name="message">markdown_extensions|pymdown|mkdocs-techdocs-core</field>
    <regex>\.\./|\.\.\\|/etc/passwd|/proc/self/|file://</regex>
    <description>Possible Backstage TechDocs boundary escape attempt (CVE-2026-106557)</description>
    <mitre>
      <id>T1213</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). The version numbers cited below come from the NVD description as the vendor-stated fix; they should be independently verified against upstream release notes before relying on them.

  1. Immediate mitigations

    • Restrict who can register or modify documentation sources in the Backstage catalog. Tighten entity ownership and catalog write permissions so that untrusted or broad groups cannot supply documentation source configuration.
    • If TechDocs builds are not required, disable the TechDocs build pipeline for untrusted entities.
    • Run the TechDocs build worker with least privilege: a dedicated, unprivileged service account, restricted filesystem access (read-only where possible), and egress network filtering so the build cannot reach internal services outside a documented allowlist.
    • Isolate build execution (container, namespace, or sandbox) to contain any boundary escape and reduce lateral reach.
  2. Patch / upgrade steps

    • Upgrade @backstage/plugin-techdocs-node to 1.14.6 or 1.15.4 (or later).
    • Ensure the Python toolchain uses pymdown-extensions 10.21.3 or later, normally obtained by upgrading mkdocs-techdocs-core to 1.7.0 or later.
    • Rebuild and redeploy affected Backstage instances so the updated Node package and MkDocs toolchain are both active; the description indicates both components matter.
    • Verify the installed versions are actually in effect in the running container/image and in any CI runners that build TechDocs.
  3. Long-term hardening

    • Enforce strict input validation and path canonicalization on all build configuration that influences filesystem or network access, and reject configurations resolving outside the documentation root.
    • Maintain a techdocs build sandbox with no ambient credentials and restricted network egress as the default operating mode.
    • Monitor upstream Backstage, pymdown-extensions, and mkdocs-techdocs-core release channels for advisories and apply updates on a routine cadence.
    • Keep an SBOM of the Backstage deployment plus its Python build dependencies so affected versions can be identified quickly during future advisories.

References

Threat actor campaigns / exploit-in-the-wild: No evidence available. CISA KEV does not list this CVE; no public PoC, exploit code, or Nuclei template is known at this time; EPSS has not yet scored the CVE.

👁️ SHODAN DORKS (THREAT HUNTING)

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.

product:"Backstage"
title:"Backstage"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-106557/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.