CVE-2022-26477

Denial of service in readExternal method

State
Published
Severity
Not scored
Published
Jun 27, 2022
Updated
Aug 3, 2024
Reserved
Mar 4, 2022

Read the record on cve.org

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.

Scores

The record has no CVSS score.

Weaknesses

  • CWE-400 Uncontrolled Resource Consumption

Affected Products

ProductVersions
Apache SystemDSApache Software Foundation
  • before 2.2.2Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.