CVE-2020-13677

7.5 HIGH

📋 TL;DR

CVE-2020-13677 is an access control vulnerability in Drupal's JSON:API module that allows attackers to bypass intended content restrictions. This affects Drupal sites with the JSON:API module enabled, potentially exposing sensitive content to unauthorized users. Sites without this module enabled are not vulnerable.

💻 Affected Systems

Products:
  • Drupal Core
Versions: Drupal 8.8.x before 8.8.11, Drupal 8.9.x before 8.9.9, Drupal 9.0.x before 9.0.9
Operating Systems: All operating systems running Drupal
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects sites with the JSON:API module enabled. The module is included in Drupal core but must be explicitly enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could access sensitive content like user data, unpublished content, or administrative information that should be restricted, leading to data breaches or privilege escalation.

🟠

Likely Case

Unauthorized access to content that should be protected by Drupal's access control system, potentially exposing confidential information.

🟢

If Mitigated

With proper network segmentation and access controls, impact is limited to the specific Drupal instance, but exposed data remains vulnerable.

🌐 Internet-Facing: HIGH - Drupal sites are commonly internet-facing, and the vulnerability allows unauthenticated exploitation in certain configurations.
🏢 Internal Only: MEDIUM - Internal Drupal instances could still be exploited by internal attackers or compromised accounts.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires understanding of Drupal's JSON:API endpoints and access control mechanisms, but tools and scripts exist.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Drupal 8.8.11, 8.9.9, 9.0.9 or later

Vendor Advisory: https://www.drupal.org/sa-core-2021-010

Restart Required: No

Instructions:

1. Update Drupal core to the patched version. 2. If using Composer: composer update drupal/core-recommended. 3. If manually updating: download and replace core files. 4. Run update.php or drush updatedb. 5. Clear all caches.

🔧 Temporary Workarounds

Disable JSON:API Module

all

Temporarily disable the vulnerable JSON:API module if immediate patching isn't possible

drush pm:uninstall jsonapi
Or disable via Drupal admin interface at /admin/modules

🧯 If You Can't Patch

  • Disable the JSON:API module immediately
  • Implement web application firewall rules to block suspicious JSON:API requests

🔍 How to Verify

Check if Vulnerable:

Check if JSON:API module is enabled and Drupal version is in affected range: drush status | grep 'Drupal version'

Check Version:

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

Verify Fix Applied:

Verify Drupal version is 8.8.11+, 8.9.9+, or 9.0.9+ and test JSON:API endpoints with restricted content

📡 Detection & Monitoring

Log Indicators:

  • Unusual access patterns to JSON:API endpoints
  • Requests to /jsonapi/* endpoints returning data that should be restricted
  • Increased 200 OK responses on protected content endpoints

Network Indicators:

  • Unusual traffic to /jsonapi/* paths
  • Requests with specific parameters attempting to bypass filters

SIEM Query:

source="drupal_access.log" AND uri="/jsonapi/*" AND status=200 | stats count by client_ip, uri

🔗 References

📤 Share & Export