{
  "threat_severity" : "Important",
  "public_date" : "2026-03-07T15:03:51Z",
  "bugzilla" : {
    "description" : "backstage/plugin-techdocs-node: TechDocs Mkdocs configuration key enables arbitrary code execution",
    "id" : "2445480",
    "url" : "https://bugzilla.redhat.com/show_bug.cgi?id=2445480"
  },
  "cvss3" : {
    "cvss3_base_score" : "9.1",
    "cvss3_scoring_vector" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L",
    "status" : "verified"
  },
  "cwe" : "CWE-791",
  "details" : [ "Backstage is an open framework for building developer portals. Prior to version 1.14.3, this is a configuration bypass vulnerability that enables arbitrary code execution. The @backstage/plugin-techdocs-node package uses an allowlist to filter dangerous MkDocs configuration keys during the documentation build process. A gap in this allowlist allows attackers to craft an mkdocs.yml that causes arbitrary Python code execution, completely bypassing TechDocs' security controls. This issue has been patched in version 1.14.3.", "A flaw was found in Backstage. The backstage/plugin-techdocs-node package uses an allowlist to filter dangerous MkDocs configuration keys during the documentation build process. A gap in this allowlist allows attackers to craft an mkdocs.yml file that causes arbitrary Python code execution." ],
  "statement" : "To exploit this issue, an attacker needs commit access to a repository that Backstage is configured to track and build in order to introduce a malicious mkdocs.yml file into the TechDocs build pipeline. Additionally, an attacker can execute arbitrary Python code but the payload is confined by the permissions granted to the TechDocs build process which is typically a restricted service account, limiting the impact of this vulnerability. Due to these reasons, this vulnerability has been rated with an important severity.",
  "affected_release" : [ {
    "product_name" : "Red Hat Developer Hub 1.8",
    "release_date" : "2026-04-22T00:00:00Z",
    "advisory" : "RHSA-2026:9742",
    "cpe" : "cpe:/a:redhat:rhdh:1.8::el9",
    "package" : "rhdh/rhdh-hub-rhel9:1776784286"
  }, {
    "product_name" : "Red Hat Developer Hub 1.9",
    "release_date" : "2026-05-05T00:00:00Z",
    "advisory" : "RHSA-2026:13826",
    "cpe" : "cpe:/a:redhat:rhdh:1.9::el9",
    "package" : "rhdh/rhdh-hub-rhel9:1777903262"
  } ],
  "package_state" : [ {
    "product_name" : "Self-service automation portal 2",
    "fix_state" : "Affected",
    "package_name" : "ansible-automation-platform/automation-portal",
    "cpe" : "cpe:/a:redhat:ansible_portal:2"
  } ],
  "references" : [ "https://www.cve.org/CVERecord?id=CVE-2026-29186\nhttps://nvd.nist.gov/vuln/detail/CVE-2026-29186\nhttps://github.com/backstage/backstage/security/advisories/GHSA-928r-fm4v-mvrw" ],
  "name" : "CVE-2026-29186",
  "mitigation" : {
    "value" : "To mitigate this issue, enable docker isolation by updating the Backstage configuration to use 'runIn: docker' instead of 'runIn: local', confining the arbitrary Python code execution to a containerized environment. Additionally, limit commit access to repositories tracked by Backstage to trusted contributors only, and enforce mandatory pull request (PR) reviews for any modifications made to the mkdocs.yml file.",
    "lang" : "en:us"
  },
  "csaw" : false
}