CVE-2025-9549

6.5 MEDIUM

📋 TL;DR

A missing authorization vulnerability in Drupal Facets allows attackers to access restricted content through forceful browsing. This affects Drupal sites using the Facets module for search filtering. All versions before 2.0.10 and 3.0.1 are vulnerable.

💻 Affected Systems

Products:
  • Drupal Facets module
Versions: 0.0.0 to 2.0.9, 3.0.0 to 3.0.0
Operating Systems: All operating systems running Drupal
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects Drupal installations with the Facets module enabled. The vulnerability exists in the module's access control logic.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could access sensitive content intended for authorized users only, potentially exposing confidential data or administrative interfaces.

🟠

Likely Case

Unauthorized users accessing content they shouldn't see, potentially violating data privacy regulations or exposing internal information.

🟢

If Mitigated

Limited impact if proper access controls and authentication mechanisms are already in place outside the module.

🌐 Internet-Facing: HIGH - Public-facing Drupal sites with Facets module are directly exploitable without authentication.
🏢 Internal Only: MEDIUM - Internal systems still vulnerable but attack surface is reduced compared to internet-facing systems.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires understanding of Drupal's URL structure and Facets implementation. No authentication needed to attempt exploitation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.0.10 for Facets 2.x, 3.0.1 for Facets 3.x

Vendor Advisory: https://www.drupal.org/sa-contrib-2025-099

Restart Required: No

Instructions:

1. Update Facets module via Drupal's update manager or Composer. 2. For Facets 2.x: Update to version 2.0.10. 3. For Facets 3.x: Update to version 3.0.1. 4. Clear Drupal cache after update.

🔧 Temporary Workarounds

Disable Facets module

all

Temporarily disable the Facets module if immediate patching isn't possible

drush pm:disable facets

Implement access control at web server level

all

Add URL-based access restrictions for Facets-related paths

🧯 If You Can't Patch

  • Implement additional authentication/authorization checks for Facets functionality
  • Monitor access logs for unauthorized attempts to access Facets-related URLs

🔍 How to Verify

Check if Vulnerable:

Check Facets module version in Drupal's Extend page or via drush: drush pm:list | grep facets

Check Version:

drush pm:list | grep facets

Verify Fix Applied:

Confirm Facets module version is 2.0.10 or higher for 2.x branch, or 3.0.1 or higher for 3.x branch

📡 Detection & Monitoring

Log Indicators:

  • Multiple 200/403 responses for Facets URLs from same IP
  • Unauthorized access attempts to /facets/* paths

Network Indicators:

  • Unusual patterns of requests to Facets endpoints
  • Requests bypassing normal search workflows

SIEM Query:

web_access_logs WHERE (url_path LIKE '%/facets/%' OR url_path LIKE '%facet=%') AND response_code=200 GROUP BY source_ip HAVING count() > threshold

🔗 References

📤 Share & Export