CVE-2025-47781

9.8 CRITICAL

📋 TL;DR

CVE-2025-47781 allows unauthenticated attackers to brute-force 6-digit authentication tokens in Rallly's email-based login system. With knowledge of a valid email address, attackers can take over any user account within the 15-minute token expiration window. All Rallly users are affected by this vulnerability.

💻 Affected Systems

Products:
  • Rallly
Versions: Up to and including 3.22.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All deployments using the default email authentication mechanism are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account takeover of all user accounts, leading to unauthorized access to scheduling data, potential data theft, and malicious manipulation of scheduled events.

🟠

Likely Case

Targeted account takeover of specific users, potentially leading to unauthorized access to sensitive scheduling information and collaboration data.

🟢

If Mitigated

Failed brute-force attempts with account lockouts or rate limiting preventing successful exploitation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires only knowledge of a valid email address and basic scripting capabilities to brute-force the 6-digit token.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: None available

Vendor Advisory: https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv

Restart Required: No

Instructions:

No official patch available. Monitor the GitHub repository for updates and apply when released.

🔧 Temporary Workarounds

Implement Rate Limiting

all

Add rate limiting to the /api/auth/callback/email endpoint to prevent brute-force attempts

# Configure rate limiting in your reverse proxy or application firewall
# Example for nginx: limit_req_zone $binary_remote_addr zone=auth:10m rate=5r/m;
# Then apply to location: limit_req zone=auth burst=10 nodelay;

Disable Email Authentication

all

Temporarily disable email-based authentication if alternative methods are available

# Modify Rallly configuration to disable email auth
# Check configuration files for authentication settings

🧯 If You Can't Patch

  • Implement network-level controls to restrict access to the authentication endpoint
  • Monitor authentication logs for brute-force patterns and implement alerting

🔍 How to Verify

Check if Vulnerable:

Check if running Rallly version 3.22.1 or earlier and using email authentication

Check Version:

Check package.json or application metadata for version information

Verify Fix Applied:

Verify that rate limiting is implemented on /api/auth/callback/email endpoint and tokens have been strengthened

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed authentication attempts from single IP
  • Rapid sequential requests to /api/auth/callback/email
  • Successful logins with previously failed tokens

Network Indicators:

  • High volume of POST requests to authentication endpoint
  • Pattern of sequential token attempts (000000-999999)

SIEM Query:

source="rallly" AND (url="/api/auth/callback/email" AND status=401) | stats count by src_ip | where count > 100

🔗 References

📤 Share & Export