Deserialization of Untrusted Data
XStream serializes Java objects to XML and back again. Versions prior to 1.4.20 may allow a remote attacker to terminate the application with a stack overflow error, resulting in a Denial-of-Service (DoS) only via manipulation of the processed input stream. The attack uses the hash code implementation for collections and maps to force recursive hash calculation, causing a stack overflow. Which handles the stack overflow and raises an "InputManipulationException" instead. A potential workaround for users who only use HashMap or HashSet and whose XML refers to these only as default map or set, is to change the default implementation of "java.util.Map" and "java.util" per the code example in the referenced advisory. However, this implies that your application does not care about the implementation of the map and all elements are comparable.
CWE-502 - Deserialization of Untrusted Data
Deserialization of untrusted data vulnerabilities enable an attacker to replace or manipulate a serialized object, replacing it with malicious data. When the object is deserialized at the victim's end the malicious data is able to compromise the victim’s system. The exploit can be devastating, its impact may range from privilege escalation, broken access control, or denial of service attacks to allowing unauthorized access to the application's internal code and logic which can compromise the entire system.