CVE-2026-106556
Backstage is an open framework for building developer portals. Prior to 1.14.6, the @backstage/plugin-techdocs-node package is affected by configuration bypass in techdocs mkdocs.yml sanitization. Insufficient validation of MkDocs configuration during TechDocs generation could allow an authenticated user who can register or modify documentation sources to execute arbitrary commands in the build environment. Impact is limited to resources accessible to the TechDocs backend or build container. This issue is fixed in versions 1.14.6 and 1.15.4.
CVSS
- Version: 3.1
- Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L
- Base score: 7.7
Exploitation probability (EPSS)
- Probability of exploitation in the next 30 days: 0.26%
- Percentile among all scored CVEs: 16
- Score date: 10/17/2026
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
🎯 ATT&CK techniques
How this vulnerability is exploited and what the attacker gains, in MITRE ATT&CK terms.
- Exploitation
T1210Exploitation of Remote Serviceslateral movement75 % - Primary impact
T1059Command and Scripting Interpreterexecution80 % - Secondary impact
T1068Exploitation for Privilege Escalationprivilege escalation60 %
AV:N/PR:L requiere acceso autenticado remoto (T1210). La bypasss de sanitización en mkdocs.yml permite ejecución arbitraria de comandos en el entorno de construcción (T1059). Con contexto de contenedor podría escalar privilegios (T1068).
Inferred by our analysis agent from the official description, CVSS vector and CWE, and checked by a supervisor. May contain errors.
🛡️ ATT&CK mitigations that cover these techniques
Affected technologies (2)
CWEs
- CWE-78, CWE-184
References
- https://github.com/backstage/backstage/commit/25125ee727a3de3418a8fa6a9e458cd5b73ecf26
- https://github.com/backstage/backstage/commit/b6d1aea0bef99b8dfec3c8746032474867ba677a
- https://github.com/backstage/backstage/releases/tag/v1.50.5
- https://github.com/backstage/backstage/releases/tag/v1.54.6
- https://github.com/backstage/backstage/security/advisories/GHSA-g2hj-v2j6-vfvg
Raw JSON (NVD)
Show
{
"id": "CVE-2026-106556",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-106556",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-10-07T16:15:35.192583Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "CHANGED",
"version": "3.1",
"baseScore": 7.7,
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:L",
"integrityImpact": "LOW",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "LOW",
"privilegesRequired": "LOW",
"confidentialityImpact": "HIGH"
},
"impactScore": 5.3,
"exploitabilityScore": 1.8
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "backstage",
"product": "backstage",
"versions": [
{
"status": "affected",
"version": "< 1.50.5"
},
{
"status": "affected",
"version": ">= 1.51.0-next.0, < 1.54.6"
}
]
},
{
"vendor": "@backstage",
"product": "plugin-techdocs-node",
"versions": [
{
"status": "affected",
"version": "< 1.14.6"
},
{
"status": "affected",
"version": ">= 1.15.0, < 1.15.4"
}
]
}
]
}
],
"published": "2026-10-07T15:17:12.960",
"references": [
{
"url": "https://github.com/backstage/backstage/commit/25125ee727a3de3418a8fa6a9e458cd5b73ecf26",
"tags": [
"Patch"
],
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/backstage/backstage/commit/b6d1aea0bef99b8dfec3c8746032474867ba677a",
"tags": [
"Patch"
],
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/backstage/backstage/releases/tag/v1.50.5",
"tags": [
"Patch",
"Release Notes"
],
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/backstage/backstage/releases/tag/v1.54.6",
"tags": [
"Patch",
"Release Notes"
],
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/backstage/backstage/security/advisories/GHSA-g2hj-v2j6-vfvg",
"tags": [
"Mitigation",
"Vendor Advisory"
],
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Analyzed",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-78"
},
{
"lang": "en",
"value": "CWE-184"
}
]
}
],
"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 configuration bypass in techdocs mkdocs.yml sanitization. Insufficient validation of MkDocs configuration during TechDocs generation could allow an authenticated user who can register or modify documentation sources to execute arbitrary commands in the build environment. Impact is limited to resources accessible to the TechDocs backend or build container. This issue is fixed in versions 1.14.6 and 1.15.4."
}
],
"lastModified": "2026-10-13T14:25:23.130",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "FEBB527C-B9CC-4ACD-ACE6-5E42C47576B7",
"versionEndExcluding": "1.50.5"
},
{
"criteria": "cpe:2.3:a:linuxfoundation:backstage:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "949CA2FA-BF88-425F-910D-3D7E817E6420",
"versionEndExcluding": "1.54.6",
"versionStartIncluding": "1.51.1"
},
{
"criteria": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:-:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "91628A7C-3017-4ACD-A100-330BB9F983B2"
},
{
"criteria": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:next0:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "C5AEDDFD-39AE-4D5C-91C8-49DA83DF407F"
},
{
"criteria": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:next1:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "8C1DE1E3-862E-4512-A66B-9804B2451D7F"
},
{
"criteria": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:next2:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "C5D0AF99-42C1-4AD2-84D6-11327EFD314B"
},
{
"criteria": "cpe:2.3:a:linuxfoundation:backstage:1.51.0:next3:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "3796F724-6F1F-45CA-BB1F-5F2DCCC37986"
}
],
"operator": "OR"
}
]
},
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:linuxfoundation:backstage_plugin-techdocs-node:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "F5189301-5EC3-4F9F-952B-7993F3BFBF06",
"versionEndExcluding": "1.14.6"
},
{
"criteria": "cpe:2.3:a:linuxfoundation:backstage_plugin-techdocs-node:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "5CB4C5CD-5A68-42D5-AE7F-65362C0E7165",
"versionEndExcluding": "1.15.4",
"versionStartIncluding": "1.15.0"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "security-advisories@github.com"
}