Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain out-of-scope GitLab account
-
DeliveryTrigger org user ingestion event
-
ExploitUnintended catalog identity created
-
ExecutionSign in as standard user
-
ImpactAccess resources beyond intended scope
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a deployment that (1) enables GitLab organization event ingestion in the @backstage/plugin-catalog-backend-module-gitlab module and (2) relies on the scoped set of ingested catalog users as an access/sign-in boundary; the patch adds getGroupMemberById to validate that an ingested user is actually a member of the configured GitLab group, confirming the flaw is that org user-creation events were applied without verifying configured-group scope. Limiting factors: the vulnerable org-ingestion/events path is an optional, non-default configuration; the attacker must possess a GitLab account that gets ingested; impact is capped at the privileges of a standard authenticated user per the sign-in and permission configuration (PR:L in the CVSS vector indicates an authenticated precondition); deployments not using scoped catalog users as an access boundary are not meaningfully exposed. |
| Impact | This is a moderate-severity improper-authorization flaw (CWE-863, CVSS 5.4) rather than a high-urgency issue. The provided CVSS vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N) indicates network reach, low attack complexity, no user interaction, but requires low privileges (PR:L) - consistent with the description's premise that an unintended but authenticated catalog identity is admitted and acts as a standard authenticated user. Impact is partial on confidentiality and integrity (C:L/I:L) with no availability impact, reflecting access limited to what a normal authenticated Backstage user can do, not full compromise. Exploitation status is 'no public exploit identified at time of analysis': there is no CISA KEV listing, no POC referenced, and no EPSS score was supplied in the input, so real-world exploitation probability cannot be quantified from the data given. The signals are internally consistent - there is no CVSS-versus-description conflict - but the dependency on a specific optional feature (GitLab organization event ingestion) and on using scoped catalog users as an access boundary means realistic exploitability is conditional, not universal. Net assessment: a genuine authorization-boundary bug worth patching on normal maintenance cadence for affected deployments, not a drop-everything emergency absent evidence of active exploitation. |
| Exploit ScenarioDerived | An organization runs Backstage with GitLab organization event ingestion enabled and relies on the set of ingested (scoped) catalog users to decide who may sign in. A GitLab user who falls outside the intended group scope is nonetheless ingested as a catalog identity due to missing group-membership validation, then signs in and operates with the permissions of a standard authenticated Backstage user. No public exploit code is referenced for this issue. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Improper authorization in Backstage's GitLab organization discovery plugin (@backstage/plugin-catalog-backend-module-gitlab) before 0.8.7 causes catalog user-creation events to be applied for GitLab accounts that are not members of the configured group, admitting an unintended catalog identity into the software catalog. Deployments that enable GitLab organization event ingestion and treat the scoped set of ingested catalog users as an access or sign-in boundary may consequently grant an attacker the permissions of a standard authenticated user, consistent with the assessed CVSS 3.1 vector 5.4 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N), which confirms an authenticated precondition rather than unauthenticated exploitation. The vulnerable org-ingestion/events path is an optional, non-default configuration and no public exploit identified at time of analysis, so this is a moderate-severity authorization hygiene issue rather than an urgent, remotely exploitable bug.
RemediationAI
Vendor-released patch: upgrade @backstage/plugin-catalog-backend-module-gitlab to 0.8.7 (shipped in Backstage v1.54.6, https://github.com/backstage/backstage/releases/tag/v1.54.6); the advisory is GHSA-gp6m-x9vw-5c5x and the fixing commit is c211b4b67d28efd2f4fac63e35e2ac515e305cb3 (https://github.com/backstage/backstage/commit/c211b4b67d28efd2f4fac63e35e2ac515e305cb3), which adds group-membership validation (getGroupMemberById) before applying organization user-creation events. If immediate upgrade is not possible, the most direct compensating control is to disable GitLab organization event ingestion for the catalog provider so user-creation events are no longer processed out of scope, accepting the trade-off that new GitLab users will only appear after the next scheduled discovery refresh rather than in near real time; alternatively, keep the module's group-scoped/restricted-user configuration enabled so ingestion is limited to members of the intended group, and treat the catalog as a discovery convenience rather than an authorization boundary. Additional hardening with low operational cost: audit and remove any catalog users already ingested from outside the configured group, and ensure sign-in resolvers and permission policies do not confer access solely on the basis of catalog presence, since that assumption is precisely what this flaw undermines. Deployments that never enabled org event ingestion or that do not use scoped catalog users as an access boundary are not exposed and can schedule the upgrade through normal release cadence.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is a CWE-863 improper authorization defect in Backstage's catalog GitLab organization discovery provider. That provider subscribes to GitLab organization events (notably user-creation events) and translates them into catalog entities, but prior to the fix it applied those mutations without confirming that the referenced GitLab user actually belonged to the group(s) configured for ingestion. The upstream patch adds a GitLabClient.getGroupMemberById(groupPath, userId) helper that issues GET /groups/:groupPath/members/all/:userId against the GitLab API, returns undefined on HTTP 404 (user is not a member) and throws on other non-OK responses, and the GitlabOrgDiscoveryEntityProvider now uses it to validate scope before processing a user event, alongside a changeset note describing a 'scope validation issue in GitLab organization discovery'. CPE data identifies the affected components as Backstage itself (cpe:2.3:a:backstage:backstage) and the specific plugin package (cpe:2.3:a:@backstage:plugin-catalog-backend-module-gitlab), reflecting that the defect lives in the plugin while remediation ships through Backstage releases. The practical consequence is an identity-provisioning trust gap: the catalog, and by extension any authorization decision layered on catalog identities (sign-in resolvers, permission policies), could contain and honor a user who should have been out of scope.
Know when Backstage gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
Network-reachable sign-in path with low complexity; requires an attacker-controlled GitLab account that gets ingested, so PR:L, yielding limited authenticated-user-level confidentiality and integrity impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Backstage is an open framework for building developer portals. Prior to 0.8.7, the @backstage/plugin-catalog-backend-module-gitlab package is affected by improper authorization in gitlab organizational user ingestion. Deployments that enable GitLab organization event ingestion and rely on scoped catalog users as an access boundary may admit an unintended catalog identity. Depending on sign-in and permission configuration, this may allow unauthorized access with the permissions of a standard authenticated user. This issue is fixed in version 0.8.7.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
The Bitbucket pull-request Scaffolder actions in Backstage can be abused by an authenticated user with template-executio
Backstage is an open platform for building developer portals. Rated critical severity (CVSS 9.9), this vulnerability is
Authenticated Backstage users can retrieve the internal execution data of other users' Scaffolder tasks - notably the Se
Authenticated users who can register or modify a TechDocs documentation source can achieve code execution inside the Bac
Authenticated remote code execution in the @backstage/plugin-techdocs-node package shipped with the Backstage developer
Arbitrary code execution in Backstage TechDocs documentation builds allows an authenticated user with write access to a
Arbitrary Python code execution in Backstage's @backstage/plugin-techdocs-node (versions < 1.13.11 and = 1.14.0) lets a
Improper task-state validation in the @backstage/plugin-scaffolder-backend plugin (Backstage versions prior to 3.3.1, 3.
Arbitrary code execution on the TechDocs backend host is achievable through a sanitizer bypass in the @backstage/plugin-
Improper input validation in the @backstage/plugin-scaffolder-backend-module-sentry scaffolder actions (Backstage 0.3.0
@backstage/plugin-scaffolder-backend is the backend for the default Backstage software templates. Rated high severity (C
Authenticated users of Backstage Scaffolder can bypass administrator-configured action restrictions in @backstage/plugin
EUVD-2026-94000
GHSA-gp6m-x9vw-5c5x
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB