Исправленная в Java, .NET и PHP ошибка десериализации теперь обнаружена в Ruby

Исправленная в Java, .NET и PHP ошибка десериализации теперь обнаружена в Ruby

С помощью уязвимости злоумышленники могут заставить приложение запускать вредоносный код.

В 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.

Мы клонировали интересный контент!

Никаких овечек — только отборные научные факты

Размножьте знания — подпишитесь