CVE-2025-31673

4.6 MEDIUM

📋 TL;DR

This CVE describes an incorrect authorization vulnerability in Drupal core that allows forceful browsing (accessing restricted pages without proper permissions). It affects Drupal sites running vulnerable versions, potentially allowing authenticated users to access content they shouldn't have permission to view.

💻 Affected Systems

Products:
  • Drupal Core
Versions: from 8.0.0 before 10.3.13, from 10.4.0 before 10.4.3, from 11.0.0 before 11.0.12, from 11.1.0 before 11.1.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All Drupal installations using affected core versions are vulnerable regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Authenticated users could access sensitive administrative pages, user data, or restricted content they shouldn't have permission to view, potentially leading to data exposure or privilege escalation.

🟠

Likely Case

Authenticated users with some permissions could access additional restricted content beyond their intended access level, violating the principle of least privilege.

🟢

If Mitigated

With proper access controls and monitoring, the impact is limited to minor authorization bypasses that don't compromise core system security.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access and knowledge of restricted URLs. The vulnerability is in authorization logic rather than authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 10.3.13, 10.4.3, 11.0.12, or 11.1.3

Vendor Advisory: https://www.drupal.org/sa-core-2025-002

Restart Required: No

Instructions:

1. Backup your Drupal site and database. 2. Update Drupal core to the patched version using Composer (composer update drupal/core-recommended --with-dependencies) or the Drupal UI. 3. Clear all caches (drush cr or via UI). 4. Verify the update was successful.

🔧 Temporary Workarounds

Temporary Access Restriction

all

Implement additional access checks in custom modules or temporarily restrict access to sensitive paths via .htaccess or web server configuration.

🧯 If You Can't Patch

  • Implement strict network segmentation to limit access to Drupal admin interfaces
  • Enhance logging and monitoring for unauthorized access attempts to restricted paths

🔍 How to Verify

Check if Vulnerable:

Check Drupal version via admin/reports/status or drush status. If version falls within affected ranges, the site is vulnerable.

Check Version:

drush status | grep 'Drupal version' or check /admin/reports/status in UI

Verify Fix Applied:

After updating, verify the version is 10.3.13+, 10.4.3+, 11.0.12+, or 11.1.3+. Test access to previously restricted pages with low-privilege users.

📡 Detection & Monitoring

Log Indicators:

  • Multiple 403/access denied errors from same authenticated user
  • Unusual access patterns to admin or restricted paths

Network Indicators:

  • Repeated requests to known restricted endpoints from authenticated sessions

SIEM Query:

source="drupal_access_log" AND (status=403 OR path CONTAINS "/admin/") | stats count by user, path

🔗 References

📤 Share & Export