CVE-2025-55006

4.3 MEDIUM

📋 TL;DR

Frappe Learning versions 2.33.0 and below have an SVG upload vulnerability that allows attackers to upload malicious SVG files containing embedded JavaScript. When other users view these files, arbitrary scripts can execute in their browser context, potentially leading to session hijacking or data theft. All users of affected Frappe Learning instances are at risk.

💻 Affected Systems

Products:
  • Frappe Learning (LMS)
Versions: 2.33.0 and below
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Any instance with image upload functionality enabled is vulnerable. The vulnerability affects the default configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal user sessions, perform actions as authenticated users, exfiltrate sensitive data, or deploy malware to user browsers.

🟠

Likely Case

Attackers upload malicious SVG files that execute JavaScript when viewed, potentially stealing session cookies or performing limited client-side attacks.

🟢

If Mitigated

With proper input validation and content security policies, the impact is limited to potential denial of service or minor data leakage.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires user interaction (viewing the malicious SVG) and some social engineering to upload files. The vulnerability is in the SVG parsing/sanitization logic.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.34.0

Vendor Advisory: https://github.com/frappe/lms/security/advisories/GHSA-mvxw-r9x4-3vrr

Restart Required: No

Instructions:

1. Update Frappe Learning to version 2.34.0 or higher. 2. Run bench update. 3. Verify the update completed successfully.

🔧 Temporary Workarounds

Disable SVG uploads

all

Temporarily disable SVG file uploads through configuration or web server rules

Modify web server configuration to block .svg file uploads
Update Frappe Learning configuration to reject SVG MIME types

Implement Content Security Policy

all

Add strict CSP headers to prevent script execution from uploaded content

Add Content-Security-Policy header with script-src 'self'
Implement strict MIME type checking for uploaded files

🧯 If You Can't Patch

  • Implement strict file upload validation to reject SVG files or sanitize them server-side
  • Deploy WAF rules to detect and block malicious SVG content

🔍 How to Verify

Check if Vulnerable:

Check if Frappe Learning version is 2.33.0 or below and SVG upload functionality is enabled

Check Version:

bench version

Verify Fix Applied:

Verify version is 2.34.0 or higher and test SVG upload with embedded JavaScript (should be sanitized or rejected)

📡 Detection & Monitoring

Log Indicators:

  • Unusual SVG file uploads
  • Large number of SVG uploads from single user
  • Error logs related to SVG parsing

Network Indicators:

  • SVG files with script tags in upload requests
  • Unusual outbound connections after SVG file access

SIEM Query:

source="frappe-lms" AND (file_extension=".svg" OR mime_type="image/svg+xml")

🔗 References

📤 Share & Export