В предоставляемой компанией Cloudflare сети доставки контента cdnjs, предназначенной для ускорения доставки JavaScript-библиотек, выявлена критическая уязвимость, позволяющая выполнить произвольный код на серверах CDN. Опасность проблемы усугубляется тем, что для загрузки JavaScript-библиотек сервисом пользуется около 12.7% всех сайтов в интернете и компрометация инфраструктуры позволяет подменить библиотеки, отдаваемые любым из этих сайтов. Сервис cdnjs осуществляет загрузку пакетов из Git или репозитория NPM, после чего даёт возможность любому сайту бесплатно воспользоваться сетью доставки контента Cloudflare для ускорения загрузки JavaScript-библиотек. При изучении кода компонентов cdnjs, опубликованных на GitHub, было выявлено, что для распаковки NPM-пакетов в архивах tgz используется штатный модуль archive/tar на языке Go, которые выдаёт список файлов как есть, без нормализации путей. В случае, когда скрипт распаковывает содержимое на основании выданного списка, наличие в архиве
Уязвимость в cdnjs, позволившая выполнить код на серверах Cloudflare
21 июля 202121 июл 2021
9
2 мин