solspace/craft-freeform Has a DoS VulnerabilityGHSA-58q2-9x27-h2jm
Fix: axios/axios#7011GHSA-58q2-9x27-h2jm is a security vulnerability in solspace/craft-freeform. A fix is available for solspace/craft-freeform — see the affected versions and patch details below.
Real-World Exposure
solspace/craft-freeformReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.
Description
Summary
Freeform plugin v4.1.29 uses vulnerable Axios ^1.7.7 allowing unauthenticated attackers to crash servers via malicious data: URIs causing memory exhaustion (CVE-2025-58754).
Freeform version: 4.1.29 Craft CMS version: 4.16.8
Impact
When Axios runs on Node.js and is given a URL with the data: scheme, it does not perform HTTP. Instead, its Node http adapter decodes the entire payload into memory (Buffer/Blob) and returns a synthetic 200 response. This path ignores maxContentLength / maxBodyLength (which only protect HTTP responses), so an attacker can supply a very large data: URI and cause the process to allocate unbounded memory and crash (DoS), even if the caller requested responseType: 'stream'.
https://github.com/axios/axios/security/advisories/GHSA-4hjh-wcwx-xvwj https://github.com/axios/axios/pull/7011 https://github.com/axios/axios/commit/945435fc51467303768202250debb8d4ae892593 https://github.com/axios/axios/releases/tag/v1.12.0
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐘Packagist | solspace/craft-freeform | all versions | 4.1.30composer require solspace/craft-freeform:^4.1.30 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for solspace/craft-freeform, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update solspace/craft-freeform to 4.1.30 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-58q2-9x27-h2jm is resolved across your whole dependency graph.
Workarounds
Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.
Frequently Asked Questions
Is GHSA-58q2-9x27-h2jm in your dependencies?
Find it across Packagist, including transitive dependencies.