GitLab CE/EE
CVE-2025-12734
LOW
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to GitLab instance
-
ExploitInject malicious HTML into merge request title
-
ExecutionVictim opens dialog rendering the title
-
ImpactAttacker-controlled content renders in victim's view
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding for downstream
|
| Exploitation Conditions | Requires an authenticated GitLab user (PR:L) who can create or edit a merge request and place crafted HTML into the MR title field; the description notes it only works 'under certain conditions,' indicating specific rendering contexts (dialogs shown to other users) rather than universal triggering. Exploitation further requires a second user to interact with the UI that renders the title (UI:R), limiting it to a social-engineering / cross-user vector rather than silent exploitation. It affects GitLab CE/EE versions 15.6 through the patched releases (18.4.6, 18.5.4, 18.6.2); instances on these fixed versions are not exploitable. No elevation beyond a normal authenticated account is needed, but the requirement for both authentication and victim interaction, plus limited integrity-only impact, substantially constrains realistic risk. |
| Impact | This is a low-severity stored HTML injection (CWE-116) in GitLab CE/EE, and the signals are consistent in pointing to low real-world risk. The CVSS vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N, base 3.5) requires an authenticated attacker (PR:L) and victim interaction (UI:R), with only limited integrity impact (I:L) and no confidentiality or availability impact. The EPSS score of 0.27% (18th percentile) corroborates low expected exploitation likelihood. There is no CISA KEV listing, so this is not confirmed as actively exploited, and no public exploit code was identified - the referenced HackerOne report (3379381) is a coordinated disclosure, not published exploit tooling, so POC availability is unconfirmed. No SSVC decision data was provided. The signals do not conflict: a low CVSS, low EPSS, absence from KEV, and an authenticated+UI-gated attack all agree this is a hardening fix rather than an urgent priority. The main caveat is that the injection renders to OTHER users, which can carry cross-user/social-engineering risk beyond the raw I:L score, but it remains contingent on the malformed HTML sanitization context (no confirmed script execution / full XSS is described). |
| Exploit ScenarioDerived | An authenticated GitLab user with permission to create or edit a merge request embeds malicious HTML into the MR title; when another user (e.g., a reviewer) opens a dialog that renders that title, the injected content is displayed in their session. No public exploit code was identified, and exploitation requires the victim to interact with the affected UI element. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
HTML injection in GitLab CE/EE merge request titles allows an authenticated user to render attacker-supplied markup inside dialogs shown to other users, affecting all releases from 15.6 up to (but not including) 18.4.6, 18.5.4, and 18.6.2. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N, score 3.5) confirms the attack requires a valid authenticated account (PR:L) and interaction from a second victim user (UI:R), with impact limited to low integrity loss and no confidentiality or availability effect. No public exploit code has been identified at time of analysis, and EPSS is 0.27% (18th percentile), consistent with the low-severity, interaction-dependent nature of the flaw; there is no evidence of confirmed active exploitation (no CISA KEV listing).
RemediationAI
Vendor-released patch: upgrade to GitLab 18.4.6, 18.5.4, or 18.6.2 (or later) on the applicable version track - GitLab's patch release announcement for 18.6.2 (https://about.gitlab.com/releases/2025/12/10/patch-release-gitlab-18-6-2-released/) documents the fix alongside the corresponding 18.5.4 and 18.4.6 backports, and the tracking issue is https://gitlab.com/gitlab-org/gitlab/-/issues/579573. Because the exploit path requires an attacker to hold an authenticated account and place content into a merge request title that a second user then views in a dialog, interim compensating controls are limited but usable: restrict who can create or edit merge requests in sensitive projects via project membership and protected-branch/MR approval settings, and reduce the pool of untrusted authenticated users with write access to repositories - noting the trade-off that this curbs normal developer collaboration. Alternatively, disabling or restricting the affected dialog-based UI surfaces (for example, trimming custom notification/integration templates and reviewing any custom theming or branding that injects HTML into merge request views) lowers exposure, at the cost of degraded UI functionality. Given the low EPSS score (0.27%) and the absence of identified public exploit code, upgrade on a normal patch cadence is appropriate; no data indicates a need for emergency out-of-band action.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause class is CWE-116 (Improper Encoding or Escaping of Output): GitLab's dialog-rendering path fails to adequately encode or sanitize merge request title content before inserting it into HTML output, so crafted markup placed in an MR title is emitted as live HTML rather than inert text when the title is displayed in certain dialog contexts. GitLab is a Ruby-on-Rails (and increasingly Vue) web application, and this class of defect typically arises where a server-rendered or client-rendered template bypasses the framework's default output escaping, or where a rich-text/markup rendering helper is applied to data that should be treated as plain text. The affected code is the merge request title field and the dialog components that display it to other users, consistent with the tracked GitLab issue 579573 and HackerOne report 3379381 referenced by NVD. CPE data (cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:* and cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*) confirms both the Community Edition and Enterprise Edition distributions are affected; the flaw is cross-user and UI-driven rather than remote code execution, so it does not cross a privilege or sandbox boundary - the integrity impact is that a victim may see attacker-controlled rendered content within a trusted GitLab dialog.
Know when Gitlab 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:R/S:U/C:N/I:L/A:N
Authenticated user creates the MR title (PR:L), a victim must view the rendering dialog (UI:R), yielding limited integrity-only impact (I:L) with no confidentiality or availability effect.
Primary rating from Vendor (gitlab).
CVSS VectorVendor: gitlab
DescriptionCVE.org
GitLab has remediated an issue in GitLab CE/EE affecting all versions from 15.6 before 18.4.6, 18.5 before 18.5.4, and 18.6 before 18.6.2 that could have allowed an authenticated user to, under certain conditions, render content in dialogs to other users by injecting malicious HTML content into merge request titles.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Affected Products (CPE)CVE.org
An issue has been discovered in GitLab CE/EE affecting all versions starting from 11.9. Rated critical severity (CVSS 10
An issue has been discovered in GitLab CE/EE affecting all versions from 16.1 prior to 16.1.6, 16.2 prior to 16.2.9, 16.
When requests to the internal network for webhooks are enabled, a server-side request forgery vulnerability in GitLab af
Unauthenticated arbitrary file read in GitLab CE/EE lets remote attackers retrieve files from the GitLab server via the
The SSH key upload feature (lib/gitlab_keys.rb) in gitlab-shell before 1.7.3, as used in GitLab 5.0 before 5.4.1 and 6.x
A vulnerability in GitLab CE/EE affecting all versions from 11.10 prior to 15.1.6, 15.2 to 15.2.4, 15.3 to 15.3.2 allows
Remote code execution in GitLab CE/EE (all versions from 19.2 before 19.2.8, 19.3 before 19.3.5, and 19.4 before 19.4.2)
Sensitive credential and configuration disclosure in GitLab Enterprise Edition allows an authenticated user with Duo Cha
The Kubernetes integration in GitLab Enterprise Edition 11.x before 11.2.8, 11.3.x before 11.3.9, and 11.4.x before 11.4
Authenticated code execution on the GitLab server is possible in GitLab CE/EE 19.2 through 19.4.0, where an integer over
Authenticated users who can define or modify a CI/CD configuration can achieve remote code execution on GitLab CE/EE ser
Unauthenticated path traversal in the @zereight/mcp-gitlab Model Context Protocol server prior to version 2.1.27 allows
NVD
CVE.org
EPSS
GitHub PoC
Exploit-DB