CVE-2024-4284

4.9 MEDIUM

📋 TL;DR

A vulnerability in mintplex-labs/anything-llm allows authenticated users with manager or admin privileges to cause a denial of service by modifying a user's ID to 0, rendering the account permanently inaccessible. This affects all deployments running versions before 1.0.0. The issue stems from insufficient input validation in user modification endpoints.

💻 Affected Systems

Products:
  • mintplex-labs/anything-llm
Versions: All versions before 1.0.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires manager or admin privileges to exploit. The vulnerability exists in the specific commit id 57984fa85c31988b2eff429adfc654c46e0c342a and earlier.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Malicious insider or compromised admin account could permanently disable all user accounts, causing complete service disruption and requiring manual database intervention to restore access.

🟠

Likely Case

Accidental or intentional modification of user IDs by privileged users leads to account lockouts requiring administrative database access to fix.

🟢

If Mitigated

With proper access controls and monitoring, impact is limited to isolated account issues that can be resolved through database maintenance.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires authenticated access with manager/admin privileges. The technique is straightforward once privileged access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.0.0

Vendor Advisory: https://github.com/mintplex-labs/anything-llm/commit/1b35bcbeab10b77e6dbd263cceecf1b965a40789

Restart Required: Yes

Instructions:

1. Update to version 1.0.0 or later. 2. Restart the anything-llm service. 3. Verify the fix by checking the version and testing user modification functionality.

🔧 Temporary Workarounds

Restrict Privileged Access

all

Limit manager and admin roles to only essential personnel and implement strict access controls.

Database Monitoring

all

Monitor database for user ID modifications, particularly setting IDs to 0.

🧯 If You Can't Patch

  • Implement strict least-privilege access controls for manager and admin roles
  • Monitor user modification API endpoints and database changes for suspicious activity

🔍 How to Verify

Check if Vulnerable:

Check if running version before 1.0.0 by examining the application version or commit hash. Vulnerable if commit id is 57984fa85c31988b2eff429adfc654c46e0c342a or earlier.

Check Version:

Check application version in UI or configuration files, or run: git log --oneline -1

Verify Fix Applied:

Confirm version is 1.0.0 or later. Test that user ID modification to value 0 is properly rejected with input validation.

📡 Detection & Monitoring

Log Indicators:

  • API requests modifying user IDs, particularly to value 0
  • Failed login attempts from previously working accounts
  • Database queries updating user table with ID=0

Network Indicators:

  • HTTP POST requests to user modification endpoints with ID parameter set to 0

SIEM Query:

source="application_logs" AND (message="*user*modif*" OR message="*id=0*")

🔗 References

📤 Share & Export