CVE-2025-25282

8.1 HIGH

📋 TL;DR

CVE-2025-25282 is an Insecure Direct Object Reference (IDOR) vulnerability in RAGFlow that allows authenticated users to access and modify other tenants' user accounts. This enables unauthorized cross-tenant data access and user management. All RAGFlow deployments with multiple tenants are affected.

💻 Affected Systems

Products:
  • RAGFlow
Versions: All versions prior to patch
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects multi-tenant deployments. Single-tenant deployments are not vulnerable to cross-tenant access.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could enumerate all tenant user accounts, add malicious users to any tenant, potentially gaining administrative access across the entire multi-tenant deployment and compromising all tenant data.

🟠

Likely Case

Malicious authenticated users accessing other tenants' user lists and potentially adding unauthorized accounts to other tenants, leading to data leakage and unauthorized access.

🟢

If Mitigated

With proper access controls and tenant isolation, impact would be limited to the authenticated user's own tenant scope only.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Requires authenticated access. Exploitation involves manipulating tenant_id parameters in API endpoints.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: https://github.com/infiniflow/ragflow/security/advisories/GHSA-wc5v-g79p-7hch

Restart Required: No

Instructions:

No official patch available. Contact project maintainers for coordinated fix. Monitor GitHub advisory for updates.

🔧 Temporary Workarounds

Implement API-level tenant validation

all

Add server-side validation to ensure users can only access their own tenant resources

Implement middleware that validates user's tenant against requested tenant_id in all /<tenant_id>/ endpoints

Restrict API access

all

Implement rate limiting and API gateway controls to detect anomalous tenant_id manipulation

Configure WAF/API gateway rules to flag requests with tenant_id changes for authenticated sessions

🧯 If You Can't Patch

  • Isolate RAGFlow deployment behind VPN with strict access controls
  • Implement network segmentation to limit RAGFlow access to authorized users only

🔍 How to Verify

Check if Vulnerable:

Test authenticated API calls to /<other_tenant_id>/user/list and /<other_tenant_id>/user endpoints with different tenant IDs

Check Version:

Check RAGFlow version in deployment configuration or via API endpoint if available

Verify Fix Applied:

Verify that API endpoints properly validate user's tenant membership before processing requests

📡 Detection & Monitoring

Log Indicators:

  • API requests with tenant_id parameter different from authenticated user's tenant
  • Multiple failed authorization attempts on tenant-specific endpoints
  • Unusual user creation patterns across different tenants

Network Indicators:

  • HTTP requests to /<tenant_id>/user endpoints with rapidly changing tenant_id values
  • High volume of GET requests to user listing endpoints

SIEM Query:

source="ragflow" AND (uri_path="/*/user/list" OR uri_path="/*/user") AND user_tenant != requested_tenant

🔗 References

📤 Share & Export