Skip to content
Heist/ feed
Back to feed
High

Backstage: Improper validation of MkDocs plugin configuration in TechDocs

Type: advisorySources: OSV

Backstage is an open framework for building developer portals. From 0.11.12 until 1.14.7 and 1.15.5, the @backstage/plugin-techdocs-node package is affected by improper validation of mkdocs plugin configuration in techdocs. An authenticated attacker with control over a TechDocs source repository could cause a documentation build to retrieve and publish data from network locations reachable by the build environment. Exposure depends on deployment topology, build mode, and target endpoint protections. Modern cloud metadata services that require tokens or special headers are not directly accessible through the affected behavior. This issue is fixed in @backstage/plugin-techdocs-node versions 1.14.7 and 1.15.5.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-106455
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 12:09 UTC · Revision 1

Source evidence

Backstage: Improper validation of MkDocs plugin configuration in TechDocs

core-osv · Original source

Published 6 Oct 2026, 20:06 UTC

Backstage is an open framework for building developer portals. From 0.11.12 until 1.14.7 and 1.15.5, the @backstage/plugin-techdocs-node package is affected by improper validation of mkdocs plugin configuration in techdocs. An authenticated attacker with control over a TechDocs source repository could cause a documentation build to retrieve and publish data from network locations reachable by the build environment. Exposure depends on deployment topology, build mode, and target endpoint protections. Modern cloud metadata services that require tokens or special headers are not directly accessible through the affected behavior. This issue is fixed in @backstage/plugin-techdocs-node versions 1.14.7 and 1.15.5.

osv:CVE-2026-106455
Complete source record
{
  "id": "9c147c5e1b53a8c8cda8f4462d0c0d8fe06057b77880225659a56aa84e4a8613",
  "url": "https://osv.dev/vulnerability/CVE-2026-106455",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Backstage: Improper validation of MkDocs plugin configuration in TechDocs",
    "summary": "Backstage is an open framework for building developer portals. From 0.11.12 until 1.14.7 and 1.15.5, the @backstage/plugin-techdocs-node package is affected by improper validation of mkdocs plugin configuration in techdocs. An authenticated attacker with control over a TechDocs source repository could cause a documentation build to retrieve and publish data from network locations reachable by the build environment. Exposure depends on deployment topology, build mode, and target endpoint protections. Modern cloud metadata services that require tokens or special headers are not directly accessible through the affected behavior. This issue is fixed in @backstage/plugin-techdocs-node versions 1.14.7 and 1.15.5.",
    "evidence": "osv:CVE-2026-106455",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-106455",
      "aliases": [
        "CVE-2026-106455",
        "GHSA-q38j-6vcm-2f5m"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/backstage/backstage",
              "type": "GIT",
              "events": [
                {
                  "introduced": "9b46fcf52c465f3f53d53c257547ef784c11e8cd"
                },
                {
                  "fixed": "0f1b86f07004a0afc1958281253d5d13bb1e1cc8"
                },
                {
                  "introduced": "d7c94cba92159b2f427a412d72381b294575193f"
                },
                {
                  "fixed": "b565780781014c16ad5673facb953fc24ec4d969"
                },
                {
                  "introduced": "cfb9f07c281effcb0683e8372fd0ee4edda498bf"
                },
                {
                  "fixed": "28aa82ae2815988721dd7bbf43cd69c431dcd71b"
                },
                {
                  "fixed": "9f76ea445088961f68c364764cc4b7734f368fc0"
                },
                {
                  "fixed": "23161ae67d0f064e97c60c4c62b86e94c43a383e"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0.71.1"
                      },
                      {
                        "fixed": "1.50.6"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "1.51.1"
                      },
                      {
                        "fixed": "1.54.8"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:-:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "1.51.0-NA"
                      },
                      {
                        "last_affected": "1.51.0-NA"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:next0:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "1.51.0-next0"
                      },
                      {
                        "last_affected": "1.51.0-next0"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:next1:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "1.51.0-next1"
                      },
                      {
                        "last_affected": "1.51.0-next1"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:next2:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "1.51.0-next2"
                      },
                      {
                        "last_affected": "1.51.0-next2"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:next3:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "1.51.0-next3"
                      },
                      {
                        "last_affected": "1.51.0-next3"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "range": [
                      {
                        "fixed": "28aa82ae2815988721dd7bbf43cd69c431dcd71b"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "9f76ea445088961f68c364764cc4b7734f368fc0"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "0f1b86f07004a0afc1958281253d5d13bb1e1cc8"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v1.50.6"
                  },
                  {
                    "range": [
                      {
                        "fixed": "b565780781014c16ad5673facb953fc24ec4d969"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v1.54.8"
                  },
                  {
                    "range": [
                      {
                        "fixed": "23161ae67d0f064e97c60c4c62b86e94c43a383e"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v1.55.0"
                  }
                ]
              }
            }
          ],
          "versions": [
            "1.51.0-NA",
            "1.51.0-next0",
            "1.51.0-next1",
            "1.51.0-next2",
            "1.51.0-next3",
            "v1.54.7",
            "v1.55.0-next.2",
            "v1.54.6",
            "v1.55.0-next.1",
            "v1.54.5",
            "v1.54.4",
            "v1.55.0-next.0",
            "v1.54.3",
            "v1.54.2",
            "v1.54.1",
            "v1.54.0",
            "v1.54.0-next.3",
            "v1.54.0-next.2",
            "v1.53.0",
            "v1.54.0-next.1",
            "v1.54.0-next.0",
            "v1.53.0-next.2",
            "v1.53.0-next.1",
            "v1.52.0",
            "v1.53.0-next.0",
            "v1.52.0-next.2",
            "v1.52.0-next.1",
            "v1.51.0",
            "v1.52.0-next.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-106455.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:28.582400686Z",
      "provider": "osv",
      "references": [
        "https://github.com/backstage/backstage/releases/tag/v1.50.6",
        "https://github.com/backstage/backstage/releases/tag/v1.54.8",
        "https://github.com/backstage/backstage/releases/tag/v1.55.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/106xxx/CVE-2026-106455.json",
        "https://github.com/backstage/backstage/security/advisories/GHSA-q38j-6vcm-2f5m",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-106455",
        "https://github.com/backstage/backstage/commit/28aa82ae2815988721dd7bbf43cd69c431dcd71b",
        "https://github.com/backstage/backstage/commit/9f76ea445088961f68c364764cc4b7734f368fc0"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-918"
        ],
        "cna_assigner": "GitHub_M",
        "unresolved_ranges": [
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "introduced": "0.11.12"
                  },
                  {
                    "fixed": "1.14.7"
                  },
                  {
                    "introduced": "1.15.0"
                  },
                  {
                    "fixed": "1.15.5"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StringRangeExpression"
              }
            ]
          }
        ],
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/106xxx/CVE-2026-106455.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-106455",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 495238,
  "published_at": "2026-10-06T20:06:06.505+00:00"
}