Skip to main content

Drupal Umami Analytics CVE-2025-10931

LOW
Cross-site Scripting (XSS) (CWE-79)
2025-10-30 mlhess@drupal.org
3.8
CVSS 3.1 · Vendor: drupal
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as high-privileged Drupal user
  2. Exploit
    Inject script via Umami Analytics config
  3. Execution
    Stored payload renders unsanitized
  4. Impact
    Script executes in victim browser session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an attacker to already possess a high-privileged Drupal account (PR:H) with permission to configure the Umami Analytics module (versions 0.0.0 up to but not including 1.0.1). The malicious input must be injected through a module field/setting that is later rendered without output neutralization, so the payload affects other users who view the affected page. Limiting factors: the privileged-role prerequisite sharply narrows the attacker population to trusted/administrative users, there is no availability impact, and only the Umami Analytics contrib module on Drupal is affected. The precise configuration field is not named in the advisory description.

Impact

This is a low-severity issue (CVSS 3.8) that is unlikely to be an operational priority. The CVSS vector (AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N) is network-reachable with low complexity but requires high privileges (PR:H), meaning the attacker must already hold a privileged/administrative role in the Drupal site to inject the malicious payload - a significant limiting factor. EPSS is low at 0.20% (9th percentile), consistent with the low CVSS and the absence of any exploitation signal. There is no CISA KEV listing and no public POC identified, so there is no evidence of active or opportunistic exploitation. No SSVC decision data was provided in the input. The signals are mutually consistent (low CVSS, low EPSS, no KEV, no POC, high-privilege requirement all point the same direction); there is no conflict to flag. The only real-world risk is a malicious or compromised privileged user staging stored XSS against other users of the site, so this is best treated as a routine patch-when-convenient item rather than an emergency.

Exploit ScenarioDerived

A user who already holds a high-privileged role (e.g., a site administrator or content/configuration manager) that can configure the Umami Analytics module supplies a crafted value containing a script payload. When another user loads a page where that value is rendered without proper neutralization, the injected JavaScript executes in the victim's browser. No public exploit code was identified for this issue.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 08, 2026

Cross-site scripting in the Drupal Umami Analytics contributed module (versions 0.0.0 up to but not including 1.0.1) allows a user who already holds a high-privileged Drupal account with permission to configure the module to inject markup that is later rendered without output neutralization for other users viewing the affected page. The high-privilege prerequisite (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N, score 3.8) sharply narrows the attacker population to trusted/administrative users, there is no availability impact, and EPSS places exploitation likelihood at about 0.2% (9th percentile). There is no public exploit identified at time of analysis and the issue is not in CISA KEV, but a vendor patch is available.

RemediationAI

Upgrade the Umami Analytics contributed module to version 1.0.1 or later, which is the vendor-released fix; the change is published in Drupal security advisory SA-CONTRIB-2025-109 at https://www.drupal.org/sa-contrib-2025-109, and Drupal site owners should also verify the module is not running an unmaintained release and subscribe to the Drupal security advisory list. If the upgrade cannot be applied immediately, the most effective compensating control is to restrict the permission that governs administration of the Umami Analytics module to the smallest possible set of trusted roles - ideally a single dedicated administrator account - recognizing that this does not remove the flaw and only reduces the number of users who can trigger it, and that legitimate configuration changes will then require the elevated account. In addition, review any stored module configuration for suspicious markup before and after updating, since previously injected values may persist and continue to render even after patching, and enforce multi-factor authentication and routine auditing of high-privilege Drupal accounts as a general control against misuse of the privileged access this vulnerability requires. No workaround that fully neutralizes the issue is described in the advisory, so patching to 1.0.1 or later should be treated as the required action.

Affected Packages

composer drupal/umami_analytics fix: 1.0.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in composer

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The Umami Analytics module is a Drupal contributed integration for the self-hosted, privacy-focused Umami web analytics platform; it adds configuration for the analytics endpoint and tracking behavior to a Drupal site. The root cause is CWE-79, improper neutralization of input during web page generation: values accepted through the module's administrative settings are stored and then emitted into generated pages without adequate escaping, so a crafted value executes as script in the browser of any user who renders the affected page. The supplied CVSS vector confirms the network attack vector, low attack complexity, no user-interaction requirement, and unchanged scope, with PR:H indicating the attacker must already be an authenticated, highly privileged administrator of the Drupal site - this is not an unauthenticated or anonymously reachable flaw. Impact is confined to low confidentiality and low integrity loss and no availability loss, and the CPE cpe:2.3:a:umami:umami_analytics:*:*:*:*:*:drupal:*:*: identifies the affected component as the Drupal module package rather than the standalone Umami analytics server product. The issue was reported by mlhess@drupal.org and disclosed through Drupal's contributed-module security advisory process as SA-CONTRIB-2025-109.

Know when Umami Analytics 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 (drupal) PRIMARY 3.8 LOW
AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 3.8 LOW

Injection requires a high-privileged module-configuration role so PR:H; network-delivered stored XSS with low complexity (AC:L), limited confidentiality/integrity impact on the same scope and no availability impact.

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

Primary rating from Vendor (drupal).

CVSS VectorVendor: drupal

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

DescriptionCVE.org

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Drupal Umami Analytics allows Cross-Site Scripting (XSS).This issue affects Umami Analytics: from 0.0.0 before 1.0.1.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche Drupal contrib analytics module, limited deployment footprint
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.2%
Patch available Yes
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
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Affected Products (CPE)CVE.org

cpe:2.3:a:umami:umami_analytics:*:*:*:*:*:drupal:*:*

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