Десятки уязвимых пакетов NuGet позволяют хакерам атаковать платформу .NET
08/07/21
Анализ размещенных в репозитории NuGet пакетов выявил 51 уникальный программный компонент с активно эксплуатирующимися уязвимостями, что еще раз подчеркивает угрозу безопасности процессов разработки программного обеспечения, исходящую от сторонних зависимостей.
В свете растущего числа киберинцидентов, нацеленных на цепочку поставок программного обеспечения, существует острая необходимость в оценке сторонних модулей на предмет любых рисков безопасности и минимизации поверхности атак, считает исследователь компании ReversingLabs Карло Занки (Karlo Zanki).
NuGet – поддерживаемый Microsoft механизм для платформы .NET, играющий роль пакетного менеджера, который позволяет разработчикам обмениваться многоразовым кодом. Фреймворк поддерживает центральный репозиторий с более чем 264 тыс. уникальных пакетов, насчитывающих свыше 109 млрд загрузок.
«Все выявленные во время нашего исследования предкомпилированные программные компоненты представляли собой различные версии 7Zip, WinSCP и PuTTYgen – программ, обеспечивающих комплексное архивирование и сетевой функционал. Они постоянно обновляются в целях улучшения их функций и устранения известных уязвимостей. Однако иногда случается так, что программные пакеты обновляются, но по-прежнему продолжают использовать зависимости, выпущенные несколько лет назад и содержащие известные уязвимости», - сообщил Занки.
К примеру, загруженная более 35 тыс. раз библиотека для управления файлами на удаленных серверах WinSCPHelper использует компонент WinSCP 5.11.2, содержащий критическую уязвимость удаленного выполнения кода ( CVE-2021-3331 ), исправленную в версии 5.17.10 в январе нынешнего года.
Более того, исследователи выяснили, что 50 тыс. извлеченных из пакетов NuGet программных компонентов связаны с библиотекой для архивирования zlib, содержащей целый ряд уязвимостей (CVE-2016-9840, CVE-2016-9841, CVE-2016-9842 и CVE-2016-9843).
В число проанализированных исследователями пакетов, содержащих уязвимые версии zlib, входят DicomObjects и librdkafka.redist, загруженные 50 тыс. и 18,2 млн раз соответственно. Усугубляет ситуацию тот факт, что librdkafka.redist представляет собой зависимость для нескольких других популярных пакетов, в частности, для NET-клиента Client for Apache Kafka (Confluent.Kafka) от Confluent, загруженного более 17,6 млн раз.