Document Title: =============== VestaCP v0.9.8-26 - (LoginAs) Token Session Vulnerability Date: ===== 2020-11-26 References: =========== https://www.vulnerability-lab.com/get_content.php?id=2240 VL-ID: ===== 2240 Common Vulnerability Scoring System: ==================================== 8.3 Vulnerability Class: ==================== Insufficient Session Validation Introduction: ============= Web interface is open source php and javascript interface based on Vesta open API, it uses 381 vesta CLI calls. The GNU General Public Licence is a free, copyleft licence for software and other kinds of works. Its free to change, modify and redistribute source code. (Copy of the Homepage: https://vestacp.com/features/ & https://vestacp.com/install/ ) Abstract: ========= The vulnerability laboratory core research team discovered a insufficient session validation vulnerability in the VestaCP v0.9.8-26 hosting web-application. Affected Product(s): ==================== Vesta Product: VestaCP v0.9.8-26 - Hosting Control Panel (Web-Application) Report-Timeline: ================ 2020-05-04: Researcher Notification & Coordination (Security Researcher) 2020-05-05: Vendor Notification (Security Department) 2020-05-07: Vendor Response/Feedback (Security Department) 2020-**-**: Vendor Fix/Patch (Service Developer Team) 2020-**-**: Security Acknowledgements (Security Department) 2020-11-26: Public Disclosure (Vulnerability Laboratory) Status: ======== Published Exploitation-Technique: ======================= Remote Severity: ========= High Details: ======== A session token vulnerability has been discovered in the official VestaCP (Control Panel) v0.9.8-26 hosting web-application. The vulnerability allows remote attackers to gain unauthenticated or unauthorized access by client-side token manipulation. The token vulnerability is located in the function of the `LoginAs` module. Remote attackers are able to perform LoginAs requests without session token to preview there profiles. The attack requires user account privileges for manipulation of the request. The admin panel allows to request via token the local user accounts to login as via account switch. In that moment the token of the request can be removed to perform the same interaction with user privileges. Thus allows to access other account information without administrative permissions. The permission approval on login request is insufficient regarding a misconfiguration on the token implementation (client-side). Successful exploitation of the web vulnerability results in information disclosure, user or admin account compromise and elevation of privileges by further exploitation. Request Method(s): [+] GET Vulnerable Module(s): [+] /login/ Vulnerable Parameter(s): [+] token Affected Parameter(s): [+] loginas Proof of Concept: ================= The token web vulnerability can be exploited by remote attackers with simple user privileges without user interaction. For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue. Request: Default (Download Backup) https://vestacp.localhost:8083/login/?loginas=user&token=f230a989082eec102ad5a3bb81fd0190 https://vestacp.localhost:8083/login/?loginas=admin&token=f230a989082eec102ad5a3bb81fd0190 PoC: Exploitation https://vestacp.localhost:8083/login/?loginas=user/.admin&token=null PoC: Exploit VestaCP (Control Panel) v0.9.8-26 - LoginAs User/Admin PoC