Share This
Связаться со мной
Крути в низ
Categories
//Cloudflare исправила критическую уязвимость в сервисе cdnjs, который используют 12,7 % сайтов в интернете

Cloudflare исправила критическую уязвимость в сервисе cdnjs, который используют 12,7 % сайтов в интернете

18.07.2021Category : My Habr

cloudflare ispravila kriticheskuju ujazvimost v servise cdnjs kotoryj ispolzujut 127  sajtov v internete d00c7f8 - Cloudflare исправила критическую уязвимость в сервисе cdnjs, который используют 12,7 % сайтов в интернете

Эксперт по безопасности RyotaK рассказал в своем блоге о критической уязвимости в сети доставки контента cdnjs с открытым исходным кодом от Cloudflare. Этот бесплатный сервис используют 12,7 % сайтов в интернете. Злоумышленники с помощью этой уязвимости могли выполнить произвольный код на серверах Cloudflare CDN, скомпрометировать инфраструктуру и подменить библиотеки JavaScript, отдаваемые сайтами. Cloudflare внесла необходимые исправления в код cdnjs, теперь баг нельзя использовать.

Сеть доставки контента cdnjs обслуживает миллионы веб-сайтов с более чем 4 тыс. библиотек JavaScript и CSS, публично хранящихся на GitHub, что делает ее вторым по величине CDN JavaScript.

Исследователь опубликовал отчеты по этой уязвимости с примерами ее применения на ИБ-платформе HackerOne в рамках программы вознаграждения от Cloudflare. Эксплойты для уязвимости включали публикацию новых пакетов в cdnjs с использованием репозитория на GitHub и NPM для проведения атаки Path Traversal и, в конечном итоге, удаленного выполнения кода.

ИБ-эксперт обнаружил, согласно OpenNet, что в открытом коде компонентов cdnjs для распаковки NPM-пакетов в архивах tgz используется штатный модуль archive/tar на языке Go, которые выдает список файлов как есть, без нормализации путей. В случае, когда скрипт распаковывает содержимое на основании выданного списка, наличие в архиве файлов вида "../../../../../../../tmp/test" может привести к перезаписи произвольных файлов в системе, насколько это позволяют права доступа. Исследователь выяснил, что он может подать заявку на добавление своей библиотеки в cdnjs и загрузить в репозиторий NPM специально оформленный архив, содержащий файлы с символами "../" в пути, чтобы перезаписать файлы со скриптами сервиса и осуществить выполнение произвольного кода на сервере CDN.

При изучении процедуры загрузки обновлений библиотек в cdnjs в Git исследователь выяснил, что загружающий обновления обработчик не учитывал символические ссылки при копировании файлов из Git, что позволило эксперту выполнить чтение файлов с сервера CDN через добавление в Git символических ссылок. Эту проблему Cloudflare устранила сразу, после получения информации от исследователя, изолировав наиболее опасные функции и применив AppArmor — функцию безопасности, которая ограничивает возможности программ, работающих в средах на основе Unix с предопределенными профилями, чтобы программы не выходили непреднамеренно за пределы предполагаемой области доступа.

Представитель Cloudflare сообщил BleepingComputer, что не зафиксировали факт использования уязвимости и закрыли ее в течение 24 часов после сообщения от ИБ-эксперта, который сообщил о ней 6 апреля 2021 года.

В начале января 2020 года Cloudflare рассказала, что библиотеки JavaScript, используемые на сайтах и которые публикуют разработчики, практически никогда не обновляются после установки.

  • 4 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close