Skip to main content

GitLab CE/EE CVE-2025-12734

LOW
Improper Encoding or Escaping of Output (CWE-116)
2025-12-11 cve@gitlab.com
3.5
CVSS 3.1 · Vendor: gitlab
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to GitLab instance
  2. Exploit
    Inject malicious HTML into merge request title
  3. Execution
    Victim opens dialog rendering the title
  4. Impact
    Attacker-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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (gitlab) PRIMARY 3.5 LOW
AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N
vuln.today AI 3.5 LOW

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (gitlab).

CVSS VectorVendor: gitlab

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

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

EPSS Score
0.3%
Top 82% exploitable
Prevalence
High
GitLab CE/EE is widely deployed enterprise DevOps/SCM software
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
High

Priority Score

18
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

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

cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*
cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*
cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*
cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*
cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*
cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*

More in Gitlab

View all
CVE-2021-22205 CRITICAL POC
10.0 Apr 23

An issue has been discovered in GitLab CE/EE affecting all versions starting from 11.9. Rated critical severity (CVSS 10

CVE-2023-7028 CRITICAL POC
10.0 Jan 12

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.

CVE-2021-22175 CRITICAL POC
9.8 Jun 11

When requests to the internal network for webhooks are enabled, a server-side request forgery vulnerability in GitLab af

CVE-2026-85706 CRITICAL POC
10.0 Sep 12

Unauthenticated arbitrary file read in GitLab CE/EE lets remote attackers retrieve files from the GitLab server via the

CVE-2013-4490 MEDIUM POC
6.5 May 13

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

CVE-2022-2992 CRITICAL POC
9.9 Oct 17

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

CVE-2026-97229 CRITICAL POC
10.0 Oct 13

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)

CVE-2026-87719 CRITICAL POC
9.9 Sep 12

Sensitive credential and configuration disclosure in GitLab Enterprise Edition allows an authenticated user with Duo Cha

CVE-2018-18843 CRITICAL POC
10.0 Dec 04

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

CVE-2026-93577 CRITICAL POC
9.9 Sep 23

Authenticated code execution on the GitLab server is possible in GitLab CE/EE 19.2 through 19.4.0, where an integer over

CVE-2026-89078 CRITICAL POC
9.9 Sep 23

Authenticated users who can define or modify a CI/CD configuration can achieve remote code execution on GitLab CE/EE ser

CVE-2026-61560 CRITICAL POC
9.8 Sep 15

Unauthenticated path traversal in the @zereight/mcp-gitlab Model Context Protocol server prior to version 2.1.27 allows

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy