CVE-2022-26477 — systemds
HIGHCVE-2022-26477 is a high-severity (CVSS 7.5) Uncontrolled Resource Consumption vulnerability in org.apache.systemds:systemds. A fix is available for org.apache.systemds:systemds — see the affected versions and patch details below.
SystemDS CPU exhaustion vulnerability
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
org.apache.systemds:systemds🐍systemdsReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven, PyPI packages — download data is not available via public APIs for these ecosystems.
Description
The Security Team noticed that the termination condition of the for loop in the readExternal method is a controllable variable, which, if tampered with, may lead to CPU exhaustion. As a fix, we added an upper bound and termination condition in the read and write logic. We classify it as a "low-priority but useful improvement". SystemDS is a distributed system and needs to serialize/deserialize data but in many code paths (e.g., on Spark broadcast/shuffle or writing to sequence files) the byte stream is anyway protected by additional CRC fingerprints. In this particular case though, the number of decoders is upper-bounded by twice the number of columns, which means an attacker would need to modify two entries in the byte stream in a consistent manner. By adding these checks robustness was strictly improved with almost zero overhead. These code changes are available in versions higher than 2.2.1.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| ☕Maven | org.apache.systemds:systemds | all versions | 2.2.2org.apache.systemds:systemds:2.2.2 |
| 🐍PyPI | systemds | all versions | 2.2.2pip install --upgrade 'systemds==2.2.2' |
Affected Products
systemdsapacheDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.apache.systemds:systemds, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update org.apache.systemds:systemds to 2.2.2 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2022-26477 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 CVE-2022-26477 in your dependencies?
Find it across Maven, PyPI, including transitive dependencies.