2026-10-06 21:50CVE-2026-106509GitHub_M
PUBLISHED5.2CWE-94CWE-1336

Backstage: Improper validation of MkDocs theme configuration in TechDocs

Backstage is an open framework for building developer portals. Prior to 1.14.6, the @backstage/plugin-techdocs-node package is affected by improper validation of mkdocs theme configuration in techdocs. When TechDocs is configured to build documentation locally or in a container, a user with write access to a registered repository can include configuration values in mkdocs.yml that cause arbitrary code execution during the documentation build process. This issue is fixed in versions 1.14.6 and 1.15.4.

Problem type

Affected products

backstage

backstage

< 1.50.5 - AFFECTED

>= 1.51.0-next.0, < 1.54.6 - AFFECTED

@backstage

plugin-techdocs-node

< 1.14.6 - AFFECTED

>= 1.15.0, < 1.15.4 - AFFECTED

References

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-106509
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-106509",
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "dateUpdated": "2026-10-06T21:50:07.721Z",
    "dateReserved": "2026-10-06T18:46:47.767Z",
    "datePublished": "2026-10-06T21:50:07.721Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M",
        "dateUpdated": "2026-10-06T21:50:07.721Z"
      },
      "title": "Backstage: Improper validation of MkDocs theme configuration in TechDocs",
      "descriptions": [
        {
          "lang": "en",
          "value": "Backstage is an open framework for building developer portals. Prior to 1.14.6, the @backstage/plugin-techdocs-node package is affected by improper validation of mkdocs theme configuration in techdocs. When TechDocs is configured to build documentation locally or in a container, a user with write access to a registered repository can include configuration values in mkdocs.yml that cause arbitrary code execution during the documentation build process. This issue is fixed in versions 1.14.6 and 1.15.4."
        }
      ],
      "affected": [
        {
          "vendor": "backstage",
          "product": "backstage",
          "versions": [
            {
              "version": "< 1.50.5",
              "status": "affected"
            },
            {
              "version": ">= 1.51.0-next.0, < 1.54.6",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "@backstage",
          "product": "plugin-techdocs-node",
          "versions": [
            {
              "version": "< 1.14.6",
              "status": "affected"
            },
            {
              "version": ">= 1.15.0, < 1.15.4",
              "status": "affected"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-94: Improper Control of Generation of Code ('Code Injection')",
              "cweId": "CWE-94",
              "type": "CWE"
            }
          ]
        },
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-1336: Improper Neutralization of Special Elements Used in a Template Engine",
              "cweId": "CWE-1336",
              "type": "CWE"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://github.com/backstage/backstage/security/advisories/GHSA-8w7q-29mw-gf5c",
          "name": "https://github.com/backstage/backstage/security/advisories/GHSA-8w7q-29mw-gf5c",
          "tags": [
            "x_refsource_CONFIRM"
          ]
        },
        {
          "url": "https://github.com/backstage/backstage/commit/02cd7cdbb18b687446277b5602adaee7f1d53cbb",
          "name": "https://github.com/backstage/backstage/commit/02cd7cdbb18b687446277b5602adaee7f1d53cbb",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/backstage/backstage/commit/a900a9953c8f7ad3ba1906d1d257725a9996cc9d",
          "name": "https://github.com/backstage/backstage/commit/a900a9953c8f7ad3ba1906d1d257725a9996cc9d",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/backstage/backstage/releases/tag/v1.50.5",
          "name": "https://github.com/backstage/backstage/releases/tag/v1.50.5",
          "tags": [
            "x_refsource_MISC"
          ]
        },
        {
          "url": "https://github.com/backstage/backstage/releases/tag/v1.54.6",
          "name": "https://github.com/backstage/backstage/releases/tag/v1.54.6",
          "tags": [
            "x_refsource_MISC"
          ]
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "version": "3.1",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L",
            "attackVector": "NETWORK",
            "attackComplexity": "HIGH",
            "privilegesRequired": "LOW",
            "userInteraction": "NONE",
            "scope": "CHANGED",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "LOW",
            "availabilityImpact": "LOW",
            "baseScore": 7.7,
            "baseSeverity": "HIGH"
          }
        }
      ]
    }
  }
}