CVE-2024-7737

8.7 HIGH

📋 TL;DR

A stored Cross-site Scripting (XSS) vulnerability in 3DSwym component of 3DSwymer allows attackers to inject malicious scripts that execute in users' browsers when viewing affected content. This affects all 3DEXPERIENCE users from R2022x through R2024x releases. Attackers could steal session cookies, redirect users, or perform actions on their behalf.

💻 Affected Systems

Products:
  • 3DSwym
  • 3DSwymer
  • 3DEXPERIENCE Platform
Versions: Release 3DEXPERIENCE R2022x through Release 3DEXPERIENCE R2024x
Operating Systems: All platforms running 3DEXPERIENCE
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the 3DSwym collaboration component within 3DSwymer. All deployments with default configurations are vulnerable.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account takeover, data theft, privilege escalation, and lateral movement within the 3DEXPERIENCE platform leading to intellectual property theft or system compromise.

🟠

Likely Case

Session hijacking, credential theft, unauthorized actions performed in victim's context, and data exfiltration from the affected user's session.

🟢

If Mitigated

Limited impact with proper input validation, output encoding, and Content Security Policy (CSP) headers preventing script execution.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Stored XSS typically requires some level of access to inject payloads, but exploitation is straightforward once payload is stored.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check Dassault Systèmes advisory for specific fixed versions

Vendor Advisory: https://www.3ds.com/vulnerability/advisories

Restart Required: Yes

Instructions:

1. Review Dassault Systèmes security advisory. 2. Apply the latest security patch for your 3DEXPERIENCE version. 3. Restart affected services. 4. Verify the fix by testing XSS payloads.

🔧 Temporary Workarounds

Implement Content Security Policy

all

Add strict CSP headers to prevent inline script execution and restrict script sources

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

Input Validation Filtering

all

Implement server-side input validation to sanitize user inputs in 3DSwym components

Implement HTML encoding for user-generated content before storage and display

🧯 If You Can't Patch

  • Disable or restrict access to 3DSwym components until patching is possible
  • Implement web application firewall (WAF) rules to block XSS payload patterns

🔍 How to Verify

Check if Vulnerable:

Test by attempting to inject basic XSS payloads (e.g., <script>alert('XSS')</script>) into 3DSwym content fields and check if they execute when viewed

Check Version:

Check 3DEXPERIENCE version through administration console or contact Dassault Systèmes support

Verify Fix Applied:

After patching, attempt the same XSS payload injection and verify scripts do not execute

📡 Detection & Monitoring

Log Indicators:

  • Unusual content submissions to 3DSwym with script tags or JavaScript code
  • Multiple failed login attempts from new locations following content views

Network Indicators:

  • Outbound connections to suspicious domains following 3DSwym content access
  • Unexpected POST requests with encoded script payloads

SIEM Query:

source="3dexperience_logs" AND (message="*<script>*" OR message="*javascript:*")

🔗 References

📤 Share & Export