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 для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

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