В экосистеме PHP нашли критический баг 15-летней давности — он позволяет подменять чужие проекты
В PHP PEAR обнаружена уязвимость 15-летней давности, которая позволяла осуществлять атаки на цепочку поставок кода. Тривиальная ошибка позволяла получить доступ для публикации собственных уязвимых пакетов и выполнять произвольный код на удаленном сервере.
Буквально на прошлой неделе мы писали про серию атак на инфраструктуру пакетов NPM, и вот аналогичный вектор атаки обнаружен в мире PHP. Вооруженный новым эксплойтом злоумышленник потенциально может скомпрометировать существующие учетные записи разработчиков или администраторов PEAR, чтобы затем опубликовать новые зловредные версии пакетов, что привело бы к масштабной компрометации цепочки поставок в мире PHP.
Проблему обнаружил Томас Шошфуан из SonarSource. Ошибка внесена в кодовую базу еще в 2007 году и была связана с использованием криптографически небезопасной, устаревшей функции mt_rand()
в функции сброса пароля. Соответственно, понимание этой уязвимости позволяло атакующему через штатный сброс пароля репозитория вычислить действительный пароль максимум за 50 попыток.
Вторая уязвимость, о которой упоминает специалист, должна использоваться в сочетании с первой для получения доступа к серверу. Баг связан с тем, что pearweb полагается на старую версию Archive_Tar (CVE-2020-36193), что может привести к удаленному выполнению произвольного кода.
Вот как сам эксперт резюмирует суть уязвимости:
«Атакующий, использующий первый баг, мог получить доступ к любой учетной записи разработчика и опубликовать вредоносный релиз, тогда как второй баг позволял получить постоянный доступ к центральному серверу PEAR. Это в свою очередь позволяло подменять и модифицировать чужие проекты.
Обе уязвимости существовали более десяти лет, их было легко найти и использовать, что вызывает вопросы о недостаточном вкладе в безопасность со стороны компаний, полагающихся на эти решения».
Уязвимости существуют во всех версиях PEAR до 1.32, в которой их наконец исправили. Она вышла 13 марта 2022 года.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: