CVE-2025-65028

6.5 MEDIUM

📋 TL;DR

An insecure direct object reference (IDOR) vulnerability in Rallly allows authenticated users to modify other participants' votes in polls without authorization. This compromises poll data integrity by letting attackers alter results in their favor. All Rallly instances running versions before 4.5.4 are affected.

💻 Affected Systems

Products:
  • Rallly
Versions: All versions prior to 4.5.4
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects instances where user authentication is enabled; anonymous polls without authentication are not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Malicious actors systematically manipulate poll outcomes to influence decisions, compromise organizational voting processes, and undermine trust in collaborative scheduling tools.

🟠

Likely Case

Individual users tamper with specific polls to gain advantage in scheduling decisions or disrupt collaborative planning efforts.

🟢

If Mitigated

With proper access controls and monitoring, impact is limited to isolated incidents that can be detected and rolled back.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access but is trivial once authenticated - simply modify participantId parameter in vote update requests.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.5.4

Vendor Advisory: https://github.com/lukevella/rallly/security/advisories/GHSA-pchc-v5hg-f5gp

Restart Required: Yes

Instructions:

1. Backup your Rallly instance data. 2. Update to version 4.5.4 via package manager or manual installation. 3. Restart the Rallly service. 4. Verify the update was successful.

🔧 Temporary Workarounds

Implement API request validation middleware

all

Add server-side validation to verify user ownership of participantId before processing vote updates

# Custom middleware implementation required based on your deployment

🧯 If You Can't Patch

  • Implement network segmentation to restrict access to Rallly instances
  • Enable detailed audit logging for all vote modification requests and monitor for unauthorized changes

🔍 How to Verify

Check if Vulnerable:

Check Rallly version via admin interface or by examining package.json file for version number

Check Version:

grep '"version"' package.json || check Rallly admin dashboard

Verify Fix Applied:

After updating to 4.5.4, attempt to modify another user's vote using participantId parameter - request should be rejected

📡 Detection & Monitoring

Log Indicators:

  • Multiple vote updates from same user for different participantIds
  • Rapid vote changes across multiple participants

Network Indicators:

  • POST requests to vote endpoints with participantId parameters not matching authenticated user

SIEM Query:

source="rallly" AND (event="vote_update" AND participantId != user_id)

🔗 References

📤 Share & Export