
XStream DoS CVE-2021-21341
भेद्यता
CVE-2021-21341: XStream सेवा अस्वीकार (Denial of Service) का कारण बन सकता है।
प्रभावित संस्करण
संस्करण 1.4.15 तक के सभी संस्करण (1.4.15 सहित) प्रभावित हैं, यदि संस्करण का उपयोग डिफ़ॉल्ट रूप से (out of the box) किया जाता है। जिन उपयोगकर्ताओं ने XStream के सुरक्षा ढांचे को केवल न्यूनतम आवश्यक प्रकारों तक सीमित व्हाइटलिस्ट के साथ सेट करने की अनुशंसा का पालन किया है, वे प्रभावित नहीं हैं।
विवरण
अनमार्शलिंग (unmarshalling) के समय संसाधित स्ट्रीम में पहले लिखी गई वस्तुओं (objects) को पुनः बनाने के लिए प्रकार (type) की जानकारी होती है। XStream इसलिए इन प्रकार की जानकारी के आधार पर नए इंस्टेंस बनाता है। एक हमलावर संसाधित इनपुट स्ट्रीम में हेरफेर कर सकता है और एक हेरफेर किए गए ByteArrayInputStream (या व्युत्पन्न क्लास) को बदल या इंजेक्ट कर सकता है, जो एक अनंत लूप का कारण बन सकता है, जिसके परिणामस्वरूप सेवा अस्वीकार हो सकता है।

$ docker build -t cve-2021-21341 .
$ docker run -it --rm cve-2021-21341
Security framework of XStream not explicitly initialized, using predefined black list on your own risk.
(never end)
pom.xml को नीचे दिए अनुसार बदलें
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.16</version>
</dependency>
NoTypePermission.NONE जोड़ें
import com.thoughtworks.xstream.security.NoTypePermission; // Add
XStream xstream = new XStream();
xstream.addPermission(NoTypePermission.NONE); // Add
xstream.fromXML(xml);