С помощью уязвимости злоумышленники могут заставить приложение запускать вредоносный код.
В 2015 году в Java была обнаружена так называемая «ошибка десериализации», вызвавшая хаос во всей экосистеме и получившая название Java Apocalypse. Двумя годами позднее она была обнаружена в .NET и PHP, а на прошлой неделе исследователи австралийской компании Elttam также выявили несколько уязвимых приложений, написанных на Ruby.
Уязвимость связана с тем, как Ruby обрабатывает процессы сериализации и десериализации. Сериализация представляет собой процесс преобразования объекта в поток байтов для сохранения или передачи в память, а противоположный процесс называется десериализация. Обе операции поддерживаются практически всеми языками программирования (названия процессов могут отличаться, но принцип остается тот же самый).
Обнаруженная несколько лет назад уязвимость позволяет использовать процессы сериализации и десериализации с целью заставить приложение запускать вредоносные команды, в особенности когда пользователь вводит данные непосредственно в сериализатор без предварительной проверки.
В свое время Apache, Cisco, Red Hat, VMWare, IBM, Intel, Adobe, HP, Jenkins и SolarWinds выпустили соответствующие уведомления и обновления безопасности, исправляющие уязвимость Java Apocalypse. В 2017 году проблема была обнаружена в.NET и PHP, а теперь настал черед Ruby. Проблема затрагивает версии от 2.0 до 2.5.
Никаких овечек — только отборные научные факты