
XStream DoS CVE-2021-21341
Уязвимость
CVE-2021-21341: XStream может вызвать отказ в обслуживании.
Затронутые версии
Все версии до 1.4.15 включительно уязвимы при использовании версии "из коробки". Ни один пользователь, который следовал рекомендации настроить фреймворк безопасности XStream с белым списком, ограниченным минимально необходимыми типами, не затронут.
Описание
Обработанный поток во время десериализации содержит информацию о типах для воссоздания ранее записанных объектов. 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);