Опасный баг в Android- и iOS-версии приложения Instagram открывает потенциальному злоумышленнику возможность для захвата аккаунта жертвы и шпионажа за пользователем мобильного устройства. Эксплуатация требует отправки специально созданного изображения через мессенджер или электронную почту.
Проблема заключается в способе обработки изображений. Как только Instagram получает доступ к определённой картинке и предлагает возможность запостить её, появляется вектор атаки.
Технически уязвимость, получившая идентификатор CVE-2020-1895, представляет собой банальное переполнение буфера. Баг проявляется в момент, когда Instagram пытается запостить изображение больших размеров, при этом считая, что оно маленькое.
Разработчики в штате Facebook уже устранили брешь, а на официальном ресурсе появилось соответствующее уведомление о проблеме безопасности. Подробности бага описал эксперт компании Check Point Гал Элбаз.
По словам специалиста, имплементация стороннего кода в Instagram приводит к серьёзным рискам — в частности, создаёт возможность для удалённого выполнения кода.
В данном случае роковую роль сыграло жёстко закодированное значение константы, которое разработчики Instagram добавили при интеграции с Mozjpeg. Элбаз описал приблизительный алгоритм атаки с эксплуатацией описанной уязвимости:
- Злоумышленник отправляет жертве вредоносное изображение (через WhatsApp, СМС-сообщение, электронную почту или любой другой сервис обмена текстом).
- Если пользователь сохраняет картинку, а впоследствии запускает Instagram, начинается эксплуатация уязвимости, позволяющая атакующему получить полный доступ к устройству жертвы.
- Также баг позволяет постоянно выводить приложение из строя.