Уязвимость в cdnjs, позволившая выполнить код на серверах Cloudflare
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В предоставляемой компанией Cloudflare сети доставки контента cdnjs, предназначенной для ускорения доставки JavaScript-библиотек, выявлена критическая уязвимость, позволяющая выполнить произвольный код на серверах CDN. Опасность проблемы усугубляется тем, что для загрузки JavaScript-библиотек сервисом пользуется около 12.7% всех сайтов в интернете и компрометация инфраструктуры позволяет подменить библиотеки, отдаваемые любым из этих сайтов.
Сервис cdnjs осуществляет загрузку пакетов из Git или репозитория NPM, после чего даёт возможность любому сайту бесплатно воспользоваться сетью доставки контента Cloudflare для ускорения загрузки JavaScript-библиотек. При изучении кода компонентов cdnjs, опубликованных на GitHub, было выявлено, что для распаковки NPM-пакетов в архивах tgz используется штатный модуль archive/tar на языке Go, которые выдаёт список файлов как есть, без нормализации путей. В случае, когда скрипт распаковывает содержимое на основании выданного списка, наличие в архиве файлов вида "../../../../../../../tmp/test" может привести к перезаписи произвольных файлов в системе, насколько это позволяют права доступа.
Было предположено, что атакующий может подать заявку на добавление свей библиотеки в cdnjs и загрузить в репозиторий NPM специально оформленный архив, содержащий файлы с символами "../" в пути. На серверах cdnjs периодически выполняется операция "autoupdate", в ходе которой обработчик загружает новые версии предложенной библиотеки и распаковывает содержимое. При помощи файлов c путями "../" атакующий может добиться перезаписи файлов со скриптами сервиса и выполнения своего кода на сервере на котором производилась распаковка.
В случае загрузки обновлений из Git было выяснено, что загружающий обновления обработчик не учитывал символические ссылки при копировании файлов из Git. Данная особенность позволяла организовать чтение любых файлов с сервера через добавление в Git символических ссылок.
Эксперименты с демонстрацией взлома cdnjs для получения премии на HackerOne было решено начать с проверки гипотезы относительно чтения файлов. В Git-репозиторий отдаваемой через CDN JavaScript-библитеки была добавлена символическая ссылка test.js, указывающая на файл /proc/self/maps. После публикации новой версии библиотеки обработчик обновлений обработал данный репоизиторий и опубликовал указанный файл в cdnjs (test.js был создан как символическая ссылка и при запросе данного файла выдавалось содержимое /proc/self/maps).
Подставив символическую ссылку на файл /proc/self/environ автор исследования заметил, что внутри отданных данных присутствуют значения переменных окружения GITHUB_REPO_API_KEY и WORKERS_KV_API_TOKEN. В первой переменной хранился ключ к API для доступа с правом записи в репозиторий robocdnjs на GitHub. Во второй переменной хранился токен к хранилищу KV в cdnjs. Воспользовавшись полученными сведениями злоумышленник мог внести изменения в cdnjs и полностью скомпрометировать инфраструктуру.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://blog.ryotak.me/post/cd...)
- OpenNews: Cloudflare, Tesla многие другие компании скомпрометированы через камеры наблюдения Verkada
- OpenNews: Mozilla, Cloudflare и Facebook представили TLS-расширение для делегирования короткоживущих сертификатов
- OpenNews: Ошибочный BGP-анонс на 74 минуты нарушил связность сетей Google и Cloudflare
- OpenNews: Уязвимость в Cloudflare привела к утечке конфиденциальной информации клиентов
- OpenNews: Капча CloudFlare может применяться для деанонимизации пользователей Tor
Похожие новости:
- [Настройка Linux, Информационная безопасность, Сетевые технологии, Разработка под Linux, IT-компании] Cloudflare представила WARP для Linux
- Компания Cloudflare опубликовала WARP для Linux
- [Информационная безопасность, Криптография, DNS] Cloudflare пообещал избавить пользователей от каптчи системой ключей безопасности
- Cloudflare, Tesla многие другие компании скомпрометированы через камеры наблюдения Verkada
- [Веб-аналитика, IT-компании] Cloudflare открыла доступ к бесплатному сервису веб-аналитики с поддержкой конфиденциальности данных и без cookie
- [Информационная безопасность, Сетевые технологии, DNS] Cloudflare, Apple и Fastly объявили о создании нового протокола DNS
- [IT-инфраструктура, IT-компании] Cloudflare и Internet Archive сделают сайты доступными даже в случае проблем с хостингом
- [DevOps] Как сделать статический сайт на Cloudflare Workers Sites
- [Серверное администрирование, Сетевое оборудование, Сетевые технологии] Что стало причиной сбоя 30 августа, в ходе которого мировой трафик упал на 3,5%
- Ошибка при настройке BGP привела к 27-минутному сбою в работе Cloudflare
Теги для поиска: #_cdnjs, #_cloudflare
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:29
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В предоставляемой компанией Cloudflare сети доставки контента cdnjs, предназначенной для ускорения доставки JavaScript-библиотек, выявлена критическая уязвимость, позволяющая выполнить произвольный код на серверах CDN. Опасность проблемы усугубляется тем, что для загрузки JavaScript-библиотек сервисом пользуется около 12.7% всех сайтов в интернете и компрометация инфраструктуры позволяет подменить библиотеки, отдаваемые любым из этих сайтов. Сервис cdnjs осуществляет загрузку пакетов из Git или репозитория NPM, после чего даёт возможность любому сайту бесплатно воспользоваться сетью доставки контента Cloudflare для ускорения загрузки JavaScript-библиотек. При изучении кода компонентов cdnjs, опубликованных на GitHub, было выявлено, что для распаковки NPM-пакетов в архивах tgz используется штатный модуль archive/tar на языке Go, которые выдаёт список файлов как есть, без нормализации путей. В случае, когда скрипт распаковывает содержимое на основании выданного списка, наличие в архиве файлов вида "../../../../../../../tmp/test" может привести к перезаписи произвольных файлов в системе, насколько это позволяют права доступа. Было предположено, что атакующий может подать заявку на добавление свей библиотеки в cdnjs и загрузить в репозиторий NPM специально оформленный архив, содержащий файлы с символами "../" в пути. На серверах cdnjs периодически выполняется операция "autoupdate", в ходе которой обработчик загружает новые версии предложенной библиотеки и распаковывает содержимое. При помощи файлов c путями "../" атакующий может добиться перезаписи файлов со скриптами сервиса и выполнения своего кода на сервере на котором производилась распаковка. В случае загрузки обновлений из Git было выяснено, что загружающий обновления обработчик не учитывал символические ссылки при копировании файлов из Git. Данная особенность позволяла организовать чтение любых файлов с сервера через добавление в Git символических ссылок. Эксперименты с демонстрацией взлома cdnjs для получения премии на HackerOne было решено начать с проверки гипотезы относительно чтения файлов. В Git-репозиторий отдаваемой через CDN JavaScript-библитеки была добавлена символическая ссылка test.js, указывающая на файл /proc/self/maps. После публикации новой версии библиотеки обработчик обновлений обработал данный репоизиторий и опубликовал указанный файл в cdnjs (test.js был создан как символическая ссылка и при запросе данного файла выдавалось содержимое /proc/self/maps). Подставив символическую ссылку на файл /proc/self/environ автор исследования заметил, что внутри отданных данных присутствуют значения переменных окружения GITHUB_REPO_API_KEY и WORKERS_KV_API_TOKEN. В первой переменной хранился ключ к API для доступа с правом записи в репозиторий robocdnjs на GitHub. Во второй переменной хранился токен к хранилищу KV в cdnjs. Воспользовавшись полученными сведениями злоумышленник мог внести изменения в cdnjs и полностью скомпрометировать инфраструктуру. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:29
Часовой пояс: UTC + 5