{"schemaVersion":3,"id":"CVE-2026-106486","aliases":["GHSA-g8rx-f7m5-7794"],"status":"published","duplicateOf":null,"title":null,"description":"Backstage is an open framework for building developer portals. Prior to 0.3.10 in @backstage/plugin-scaffolder-backend-module-bitbucket-cloud and 0.2.25 in @backstage/plugin-scaffolder-backend-module-bitbucket-server, the Bitbucket pull-request Scaffolder actions did not sufficiently validate filesystem paths. An authenticated user who can execute an eligible template and influence an allowed Bitbucket repository could affect paths outside the expected working area, potentially compromising backend confidentiality, integrity, or availability. This issue is fixed in @backstage/plugin-scaffolder-backend-module-bitbucket-cloud 0.3.10 and @backstage/plugin-scaffolder-backend-module-bitbucket-server 0.2.25.","dates":{"published":"2026-10-06T20:35:10.380Z","modified":"2026-10-07T16:22:11.503Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.5,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":8.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Npm","score":8.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","exploitability":4.6,"impact":10,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":8.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00325,"percentile":0.2416,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-10-07T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00325,"percentile":0.2416}],"last30":[{"date":"2026-10-07T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00325,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00325,"percentile":0.2416}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"},{"id":"CWE-59","name":"Improper Link Resolution Before File Access ('Link Following')","description":"The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":"Medium","url":"https://cwe.mitre.org/data/definitions/59.html"}],"affected":[{"vendor":"backstage","product":"backstage","name":"backstage","label":"backstage","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 1.54.6","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.54.6","eol":null,"hubHref":"/vendor/backstage/backstage"},{"vendor":"@backstage","product":"plugin-scaffolder-backend-module-bitbucket-cloud","name":"plugin-scaffolder-backend-module-bitbucket-cloud","label":"plugin-scaffolder-backend-module-bitbucket-cloud","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 0.3.10","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.3.10","eol":null,"hubHref":"/vendor/backstage/plugin-scaffolder-backend-module-bitbucket-cloud"},{"vendor":"@backstage","product":"plugin-scaffolder-backend-module-bitbucket-server","name":"plugin-scaffolder-backend-module-bitbucket-server","label":"plugin-scaffolder-backend-module-bitbucket-server","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 0.2.25","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.2.25","eol":null,"hubHref":"/vendor/backstage/plugin-scaffolder-backend-module-bitbucket-server"},{"vendor":"@backstage","product":"plugin-scaffolder-backend-module-bitbucket-cloud","name":"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud","label":"plugin-scaffolder-backend-module-bitbucket-cloud","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@backstage/plugin-scaffolder-backend-module-bitbucket-cloud","purlType":"npm","versions":[{"text":"< 0.3.10","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.3.10","eol":null,"hubHref":null},{"vendor":"@backstage","product":"plugin-scaffolder-backend-module-bitbucket-server","name":"@backstage/plugin-scaffolder-backend-module-bitbucket-server","label":"plugin-scaffolder-backend-module-bitbucket-server","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@backstage/plugin-scaffolder-backend-module-bitbucket-server","purlType":"npm","versions":[{"text":"< 0.2.25","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.2.25","eol":null,"hubHref":null}],"affectedCount":5,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/backstage/backstage/security/advisories/GHSA-g8rx-f7m5-7794","label":"github.com/backstage/backstage/security/advisories/GHSA-g8rx-f7m5-7794","hostname":"github.com","tags":["X Refsource CONFIRM","WEB"]},{"url":"https://github.com/backstage/backstage/commit/818528e112c36167d76187e9e63fb518399c4dd2","label":"github.com/backstage/backstage/commit/818528e112c36167d76187e9e63fb518399c4dd2","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://github.com/backstage/backstage/releases/tag/v1.54.6","label":"github.com/backstage/backstage/releases/tag/v1.54.6","hostname":"github.com","tags":["X Refsource MISC","WEB"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-106486","label":"nvd.nist.gov/vuln/detail/CVE-2026-106486","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/backstage/backstage","label":"github.com/backstage/backstage","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-10-06T20:35:10.380Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-10-07T16:22:11.503Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":34,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T09:29:48.835Z","stale":false,"partial":false}}