Skip to main content

Drupal Facets CVE-2025-9550

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

Attack ChainAIDerived

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

  1. Access
    Craft malicious facet input/URL
  2. Delivery
    Deliver link to site user
  3. Exploit
    Script reflected/stored in facet output
  4. Execution
    Executes in victim browser
  5. Impact
    Steal session or perform actions

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 the Drupal Facets (faceted search) module to be installed and active on versions before 2.0.10 (0.x/2.x branch) or before 3.0.1 (3.x branch), and requires a victim to interact with attacker-supplied content (UI:R) - for example clicking a crafted link or viewing a page containing injected facet markup. The limiting factors are the mandatory user interaction and the requirement that the site run the vulnerable Facets module version; impact is constrained to limited confidentiality and integrity (C:L/I:L) within the browser context, with no availability impact. No elevated privileges are needed by the attacker (PR:N), but delivery depends on luring a user to the malicious content.

Impact

This is a moderate-severity (CVSS 6.1) cross-site scripting flaw whose signals point to a low-urgency, non-emergency priority. The CVSS vector (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N) shows network reachability with no privileges required but mandatory user interaction (UI:R) and only limited confidentiality/integrity impact - characteristic of XSS where a victim must load attacker-influenced content. The scope change (S:C) reflects script executing in the browser security context, typical for XSS. Exploitation signals are reassuring: EPSS is 0.19% (8th percentile), there is no CISA KEV listing, and no public exploit code was identified in the provided data, so there is no evidence of active exploitation. These signals are internally consistent - a genuine but low-probability-of-exploitation issue. No SSVC decision data was provided. Overall this is a 'patch in normal cycle' item rather than a drop-everything priority, though XSS in a search/faceting component can be leveraged for session theft or admin-targeted phishing if left unpatched.

Exploit ScenarioDerived

An attacker crafts a URL or input containing malicious script that is reflected or stored through the Drupal Facets faceted-search interface. When a victim (potentially an authenticated site administrator or editor) views the page, the script executes in their browser session, enabling cookie/session theft or actions in the site's context. No public proof-of-concept was identified, and the attack requires the victim to interact with the malicious content (UI:R).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 Facets contributed module allows unauthenticated remote attackers to inject script into faceted-search output on sites running Facets before 2.0.10 (0.x/2.x branches) or before 3.0.1 (3.x branch). Exploitation is not automatic: it requires a victim to interact with attacker-supplied content - for instance clicking a crafted link or loading a page containing injected facet markup - after which script runs in the victim's browser context and can read or alter limited page data. There is no confirmed active exploitation (CISA KEV does not list this issue), no public exploit code identified at time of analysis, and EPSS is very low at 0.19% (8th percentile), consistent with a moderate-severity (CVSS 6.1) issue of low urgency rather than an emergency patch item.

RemediationAI

Upgrade the Facets module to the vendor-fixed releases: 2.0.10 for sites on the 0.x or 2.x branches, and 3.0.1 for sites on the 3.x branch (verified patch data states a fix is available from the vendor, with the advisory at https://www.drupal.org/sa-contrib-2025-100). In practice this means updating the contributed module via Composer (for example composer update drupal/facets --with-dependencies) or the Drupal admin UI, then running database updates and clearing caches, and confirming the deployed version is at or above the fixed release. If an immediate upgrade is not possible, treat any user- or URL-supplied data reaching facet displays as untrusted: tighten input handling around facet query parameters, and, as a temporary compensating control, deploy a WAF rule or reverse-proxy filter that blocks script-bearing payloads in facet-related query strings - accepting that this may break legitimate filter values or trigger false positives. Because exploitation depends on victim interaction (UI:R), reminding privileged and end users not to follow unsolicited links containing facet parameters reduces exposure during the patching window; this is a partial mitigation only and does not replace the upgrade. No vendor-released patch is missing here, so no unsupported workaround should be treated as equivalent to installing 2.0.10 or 3.0.1.

Affected Packages

composer drupal/facets fix: 2.0.10, 3.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 vulnerability is a classic CWE-79 improper neutralization of input during web page generation, rooted in how the Drupal Facets module renders faceted-search UI elements. Facets is a contributed Drupal module that layers faceted navigation on top of the Search API, generating facet links, filter labels, and AJAX-driven result refreshes from indexed field values and URL query parameters. Where facet values or their surrounding markup are emitted without adequate output escaping or contextual sanitization, an attacker-controlled value can break out of its intended HTML context and execute as script. The CVSS 3.1 vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N confirms this picture: reachable over the network with no attacker privileges (PR:N), but demanding user interaction (UI:R) and scored with Scope:Changed (S:C), meaning the vulnerable Drupal component and the impacted browser/script execution context are treated as different security authorities. Impact is limited confidentiality and integrity within the browser session, with no availability impact. The CPE entries cpe:2.3:a:facets_project:facets:*:*:*:*:*:drupal:*:* identify the affected package as the Drupal-contributed facets_project facets module; both the 0.x/2.x and 3.x release lines are in scope.

Know when Facets 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 6.1 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 6.1 MEDIUM

Network-reachable XSS requiring victim interaction (UI:R); no attacker privileges (PR:N); script crosses into browser context (S:C) with limited C/I impact and no availability effect.

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

Primary rating from Vendor (drupal).

CVSS VectorVendor: drupal

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

DescriptionCVE.org

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Drupal Facets allows Cross-Site Scripting (XSS).This issue affects Facets: from 0.0.0 before 2.0.10, from 3.0.0 before 3.0.1.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Medium
popular Drupal contributed search module, common but not universal
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Medium

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
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:facets_project:facets:*:*:*:*:*:drupal:*:*
cpe:2.3:a:facets_project:facets:*:*:*:*:*:drupal:*:*

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