CVE-2021-28128

8.1 HIGH

📋 TL;DR

This vulnerability in Strapi allows attackers who have obtained a valid session to change a user's password without providing the current password. This enables account takeover attacks where attackers can lock out legitimate users and gain persistent access. All Strapi deployments up to version 3.6.0 are affected.

💻 Affected Systems

Products:
  • Strapi
Versions: through 3.6.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations are vulnerable. The vulnerability exists in the admin panel functionality.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of admin accounts leading to full system control, data exfiltration, and privilege escalation across the entire Strapi instance.

🟠

Likely Case

Account takeover of individual users, potentially including administrators, leading to unauthorized content changes, data access, and persistence in the system.

🟢

If Mitigated

Limited impact with proper session management, strong authentication controls, and network segmentation preventing unauthorized access to admin panels.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires a valid session cookie. Attack chain typically involves session hijacking, XSS, or other methods to obtain valid authentication tokens.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.6.1 and later

Vendor Advisory: https://strapi.io/changelog

Restart Required: Yes

Instructions:

1. Backup your Strapi instance and database. 2. Update Strapi to version 3.6.1 or later using npm update strapi@latest. 3. Restart the Strapi service. 4. Verify the update was successful.

🔧 Temporary Workarounds

Session Management Hardening

all

Implement strict session management controls including short session timeouts, secure cookie attributes, and IP binding.

Admin Panel Access Restriction

all

Restrict access to the admin panel (/admin) using network controls or web application firewalls.

🧯 If You Can't Patch

  • Implement multi-factor authentication for all admin accounts
  • Monitor for suspicious password change events in application logs

🔍 How to Verify

Check if Vulnerable:

Check Strapi version in package.json or via strapi version command. If version is 3.6.0 or earlier, the system is vulnerable.

Check Version:

strapi version

Verify Fix Applied:

After updating, verify the password change functionality now requires current password entry. Test with a non-admin account.

📡 Detection & Monitoring

Log Indicators:

  • Password change events without current password verification
  • Multiple failed login attempts followed by successful password change
  • Admin panel access from unusual IP addresses

Network Indicators:

  • HTTP POST requests to /admin/users-permissions/users/:id without currentPassword parameter
  • Unusual patterns of admin panel access

SIEM Query:

source="strapi" AND (event="password_change" AND NOT current_password_verified="true")

🔗 References

📤 Share & Export