CVE-2025-27910
📋 TL;DR
This CSRF vulnerability in tianti v2.3 allows attackers to trick authenticated users into performing unintended actions via malicious requests to /user/ajax/upd/status. Any tianti v2.3 installation with authenticated users is affected, potentially enabling unauthorized operations.
💻 Affected Systems
- tianti
📦 What is this software?
Tianti by Tianti Project
⚠️ Risk & Real-World Impact
Worst Case
Attackers could manipulate user accounts, change permissions, or perform administrative actions without authorization, leading to complete system compromise.
Likely Case
Attackers trick users into changing their own account settings or performing limited unauthorized actions within their privilege scope.
If Mitigated
With proper CSRF protections, the vulnerability is neutralized and no unauthorized actions can be performed.
🎯 Exploit Status
Exploitation requires social engineering to trick authenticated users into visiting malicious pages.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: v2.4 or later
Vendor Advisory: https://github.com/xujeff/tianti/issues/39
Restart Required: No
Instructions:
1. Upgrade tianti to version 2.4 or later. 2. Verify the /user/ajax/upd/status endpoint now includes CSRF tokens. 3. Test authenticated requests to confirm CSRF protection is working.
🔧 Temporary Workarounds
Implement CSRF tokens manually
allAdd CSRF token validation to the /user/ajax/upd/status endpoint
Modify the endpoint to require and validate CSRF tokens in all POST/GET requests
Restrict endpoint access
allLimit access to the vulnerable endpoint using web server rules
Add access control rules in nginx/apache configuration for /user/ajax/upd/status
🧯 If You Can't Patch
- Implement SameSite cookie attributes and strict referrer policies
- Use additional authentication factors for sensitive operations
🔍 How to Verify
Check if Vulnerable:
Test if /user/ajax/upd/status accepts requests without CSRF tokens while authenticated
Check Version:
Check tianti version in admin panel or configuration files
Verify Fix Applied:
Confirm that /user/ajax/upd/status now requires and validates CSRF tokens
📡 Detection & Monitoring
Log Indicators:
- Multiple failed CSRF token validations
- Unusual /user/ajax/upd/status requests from unexpected sources
Network Indicators:
- Requests to /user/ajax/upd/status without referrer headers or CSRF tokens
SIEM Query:
source_ip=external AND uri_path='/user/ajax/upd/status' AND NOT csrf_token=*