CVE-2024-56312

5.4 MEDIUM

📋 TL;DR

This stored XSS vulnerability in REDCap allows authenticated users to inject malicious scripts into Project Dashboard names. When other users click on these dashboard names, the scripts execute in their browser context, potentially stealing session cookies or performing unauthorized actions. All REDCap instances running vulnerable versions with authenticated users are affected.

💻 Affected Systems

Products:
  • REDCap
Versions: through 14.9.6
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires authenticated user access; affects all installations with Project Dashboard functionality enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator session cookies, gain full system access, pivot to internal networks, and compromise sensitive research data.

🟠

Likely Case

Attackers steal user session cookies to impersonate legitimate users, access unauthorized projects, or modify research data.

🟢

If Mitigated

Script execution is blocked by CSP headers or browser XSS filters, limiting impact to UI manipulation only.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires authenticated access; proof-of-concept available in GitHub repository.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 14.9.7 or later

Vendor Advisory: https://www.evms.edu/research/resources_services/redcap/redcap_change_log/

Restart Required: No

Instructions:

1. Backup your REDCap database and files. 2. Download REDCap version 14.9.7 or later from the Vanderbilt REDCap Consortium. 3. Follow standard REDCap upgrade procedures. 4. Verify the fix by testing XSS payloads in Project Dashboard names.

🔧 Temporary Workarounds

Input Validation Enhancement

all

Add custom input validation to sanitize Project Dashboard names before storage

Modify REDCap configuration to implement additional HTML entity encoding for dashboard name fields

Content Security Policy

all

Implement strict CSP headers to block inline script execution

Add 'Content-Security-Policy: script-src 'self'' to web server configuration

🧯 If You Can't Patch

  • Restrict Project Dashboard creation/modification permissions to trusted administrators only
  • Implement web application firewall rules to block common XSS payload patterns in dashboard names

🔍 How to Verify

Check if Vulnerable:

Test by creating a Project Dashboard with name containing <script>alert('XSS')</script> and checking if script executes when clicked

Check Version:

Check REDCap version in Control Center → Software Updates or via database query: SELECT value FROM redcap_config WHERE field_name = 'redcap_version'

Verify Fix Applied:

After patching, attempt the same XSS test; script should be displayed as plain text, not executed

📡 Detection & Monitoring

Log Indicators:

  • Unusual length or special characters in Project Dashboard name fields
  • Multiple dashboard creation/modification events from single user

Network Indicators:

  • HTTP requests containing script tags in dashboard name parameters
  • Outbound connections to suspicious domains following dashboard access

SIEM Query:

source="redcap_logs" AND (dashboard_name CONTAINS "<script>" OR dashboard_name CONTAINS "javascript:")

🔗 References

📤 Share & Export