CVE-2016-20004

9.8 CRITICAL

📋 TL;DR

This vulnerability in Drupal's REST/JSON module allows attackers to bypass field access controls, potentially accessing or modifying restricted content. It affects Drupal 7 sites using the REST/JSON module version 7.x-1.x. The module is not covered by Drupal's official security policy, leaving sites more vulnerable.

💻 Affected Systems

Products:
  • Drupal REST/JSON module
Versions: 7.x-1.x
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects Drupal 7 sites with the REST/JSON module installed. The module is not part of Drupal core and not covered by Drupal's security advisory policy.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could access sensitive user data, modify critical content, or escalate privileges by bypassing all field-level access restrictions.

🟠

Likely Case

Unauthorized access to restricted content fields, potentially exposing private user information or allowing content manipulation.

🟢

If Mitigated

Limited impact if proper authentication and authorization controls are in place at higher levels, though field-level protections would still be bypassed.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires understanding of Drupal's field access system and REST endpoints, but the vulnerability itself is straightforward to exploit once identified.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 7.x-1.6

Vendor Advisory: https://www.drupal.org/node/2744889

Restart Required: No

Instructions:

1. Update the REST/JSON module to version 7.x-1.6 or later. 2. Navigate to Drupal's module update page. 3. Apply the update. 4. Clear Drupal caches.

🔧 Temporary Workarounds

Disable REST/JSON module

linux

Temporarily disable the vulnerable module until patching is possible

drush pm-disable rest_json

Restrict REST endpoint access

all

Use web server configuration to restrict access to REST endpoints

# Add appropriate restrictions to Apache/Nginx configuration for /rest/* paths

🧯 If You Can't Patch

  • Implement strict network-level access controls to restrict who can reach the REST endpoints
  • Enable detailed logging of all REST API access and monitor for suspicious activity

🔍 How to Verify

Check if Vulnerable:

Check if the REST/JSON module is installed and if version is 7.x-1.x (excluding 7.x-1.6+)

Check Version:

drush pml | grep rest_json

Verify Fix Applied:

Verify module version is 7.x-1.6 or later and test field access controls through REST endpoints

📡 Detection & Monitoring

Log Indicators:

  • Unusual REST API requests accessing restricted fields
  • Multiple failed authentication attempts followed by successful field access

Network Indicators:

  • Unusual traffic patterns to /rest/* endpoints
  • Requests bypassing expected authentication flows

SIEM Query:

source="drupal_access_log" AND (uri_path="/rest/*" AND (user="anonymous" OR status="200"))

🔗 References

📤 Share & Export