CVE-2025-68480

5.3 MEDIUM

📋 TL;DR

Marshmallow library versions 3.0.0rc1-3.26.1 and 4.0.0-4.1.1 contain a denial of service vulnerability in Schema.load() with many=True parameter. Attackers can send moderately sized requests that cause disproportionate CPU consumption, potentially degrading or crashing affected services. This affects any Python application using vulnerable marshmallow versions for data serialization/deserialization.

💻 Affected Systems

Products:
  • marshmallow
Versions: 3.0.0rc1 to 3.26.1, 4.0.0 to 4.1.1
Operating Systems: All platforms running Python
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability triggers when using Schema.load(data, many=True) with crafted input data.

⚠️ 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 service unavailability due to CPU exhaustion, affecting all users of the vulnerable application.

🟠

Likely Case

Degraded performance and intermittent service disruptions under attack conditions.

🟢

If Mitigated

Minimal impact with proper rate limiting, request validation, and monitoring in place.

🌐 Internet-Facing: MEDIUM - Exploitation requires sending crafted requests but doesn't require authentication.
🏢 Internal Only: LOW - Internal systems typically have controlled access and lower attack surface.

🎯 Exploit Status

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

Exploitation requires sending specially crafted data to endpoints using vulnerable marshmallow methods.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.26.2 or 4.1.2

Vendor Advisory: https://github.com/marshmallow-code/marshmallow/security/advisories/GHSA-428g-f7cq-pgp5

Restart Required: Yes

Instructions:

1. Identify marshmallow version: pip show marshmallow
2. Update to patched version: pip install --upgrade marshmallow==3.26.2 (for v3) or marshmallow==4.1.2 (for v4)
3. Restart all affected Python applications
4. Test functionality to ensure compatibility

🔧 Temporary Workarounds

Input validation and size limiting

all

Implement request size limits and validate input data before passing to marshmallow

Rate limiting

all

Implement rate limiting on endpoints using marshmallow deserialization

🧯 If You Can't Patch

  • Implement strict request size limits (e.g., <1MB) on all endpoints using marshmallow
  • Deploy WAF rules to detect and block suspicious serialization patterns

🔍 How to Verify

Check if Vulnerable:

Check installed version: python -c "import marshmallow; print(marshmallow.__version__)" and compare to affected ranges

Check Version:

python -c "import marshmallow; print(marshmallow.__version__)"

Verify Fix Applied:

Verify version is 3.26.2 or higher for v3, or 4.1.2 or higher for v4

📡 Detection & Monitoring

Log Indicators:

  • Unusually high CPU usage on marshmallow endpoints
  • Request timeouts on deserialization endpoints
  • Repeated requests with similar payloads

Network Indicators:

  • Multiple requests to marshmallow endpoints with moderate payload sizes
  • Spike in request volume to serialization endpoints

SIEM Query:

source="application.logs" AND (message="marshmallow" OR message="Schema.load") AND (message="timeout" OR message="CPU" OR message="slow")

🔗 References

📤 Share & Export