Стало известно, что разработчики Oracle намерены отказаться от поддержки функциональности сериализации и десериализации данных в языке Java. Об этом рассказал главный архитектор платформы Java Марк Рейнхолд (Mark Reinhold). В ходе беседы с журналистами InfoWorld, Рейнхолд и вовсе назвал добавление поддержки сериализации в Java в 1997 году «ужасной ошибкой». По его мнению, больше трети всех уязвимостей Java были так или иначе связаны с этой функциональностью.
К примеру, в 2015 году специалисты FoxGlove Security обнаружили уязвимость в широко распространенной библиотеке из состава Apache Commons. Уже в 2016 году, стараниями аналитиков SourceClear, удалось понять, что проблема гораздо обширнее, чем предположили изначально. Как оказалось, уязвимость, связанная с тем, как Java исполняет user-defined код во время десериализации объектов, распространялась не на одну, но на многие десятки библиотек, в числе которых были Apache Directory API, JMS Transport и некоторые версии Webx All-in-one Bundle. В итоге уязвимы оказались многие популярные Java приложения, такие как WebLogic, WebSphere, JBoss, Jenkins, OpenNMS.
Тогда проблема десериализации вынудила разработчиков Apache, Oracle, Cisco, Red Hat, Jenkins, VMWare, IBM, Intel, Adobe, HP и SolarWinds выпустить патчи, а инженеры компании Google объединили усилия и в свободное время занялись «починкой» проблемных библиотек, в итоге исправив более 2600 проектов.
Теперь главный архитектор платформы Java сообщил, что в настоящее время, в рамках проекта Amber, инженеры Oracle работают над отказом от встроенной поддержки сериализации в основном теле языка (никаких конкретных дат пока названо не было). При этом обещают, что при необходимости у разработчиков все же останется возможность пользоваться операциями сериализации при помощи нового фреймворка.
Ожидается, что новый фреймворк, который придет на смену текущему положению вещей, поможет обеспечить безопасную сериализацию, будет работать с графами записей, поддерживать форматы JSON и XML, а разработчики смогут подключать движки сериализации по своему усмотрению.