Untrusted data fed into `Data.init(base32Encoded:)` can result in exposing server memory and/or crashGHSA-pqwh-c2f3-vxmq
GHSA-pqwh-c2f3-vxmq is a Deserialization of Untrusted Data vulnerability in github.com/vapor/vapor. A fix is available for github.com/vapor/vapor — see the affected versions and patch details below.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
Real-World Exposure
github.com/vapor/vaporReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects SwiftURL packages — download data is not available via public APIs for these ecosystems.
Description
Impact
A bug in the Data.init(base32Encoded:) function opens up the potential for exposing server memory and/or crashing the server (Denial of Service) for applications where untrusted data can end up in said function. Vapor does not currently use this function itself so this only impact applications that use the impacted function directly or through other dependencies.
Patches
This issue has been patched in 4.47.2.
Workarounds
Use an alternative to Vapor's built-in Data.init(base32Encoded:).
For more information
If you have any questions or comments about this advisory:
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦SwiftURL | github.com/vapor/vapor | all versions | 4.47.2 |
Affected Products
vaporvapor_projectDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/vapor/vapor, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/vapor/vapor to 4.47.2 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-pqwh-c2f3-vxmq is resolved across your whole dependency graph.
Workarounds
Do not deserialise data from untrusted sources: where the format allows it, restrict deserialisation to an explicit allowlist of expected types, and prefer a data-only format (JSON, Protobuf) over one that can reconstruct arbitrary objects until you can upgrade.
Frequently Asked Questions
Is GHSA-pqwh-c2f3-vxmq in your dependencies?
Find it across SwiftURL, including transitive dependencies.