Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн загрузок в неделю

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 3 Sep 2021.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,484
    Likes Received:
    7,075
    Reputations:
    693
    В NPM-пакете pac-resolver, насчитывающем более 3 млн загрузок в неделю, выявлена уязвимость (CVE-2021-23406), которая позволяет добиться выполнения своего JavaScript-кода в контексте приложения при отправке HTTP-запросов из Node.js-проектов, поддерживающих функцию автонастройки прокси-сервера.

    Пакет pac-resolver осуществляет разбор PAC-файлов, включающих сценарий автоматической настройки прокси-сервера. PAC-файл содержит обычный JavaScript-код с функцией FindProxyForURL, определяющей логику выбора прокси в зависимости от хоста и запрашиваемого URL. Суть уязвимости в том, что для выполнения данного JavaScript-кода в pac-resolver применялся предоставляемый в Node.js API VM, позволяющий выполнить JavaScript-код в другом контексте движка V8.

    Указанный API явно помечен в документации как не предназначенный для запуска кода, не заслуживающего доверия, так как он не предоставляет полноценной изоляции запускаемого кода и позволяет получить доступ к изначальному контексту. Проблема устранена в выпуске pac-resolver 5.0.0, который переведён на использование библиотеки vm2, предоставляющей более высокий уровень изоляции, подходящий для запуска не заслуживающего доверия кода.

    [​IMG]

    При использовании уязвимой версии pac-resolver атакующий через передачу специально оформленного PAC-файла может добиться выполнения своего JavaScript-кода в контексте кода проекта, использующего Node.js,если в данном проекте используются библиотеки, связанные зависимостями с pac-resolver. Наиболее популярной из проблемных библиотек явлеятся Proxy-Agent, указанная в зависимостях у 360 проектов, включая urllib, aws-cdk, mailgun.js и firebase-tools, в сумме насчитывающих более трёх миллионов загрузок в неделю.

    Если приложение, связанное зависимостями с pac-resolver, загружает PAC-файл, предоствляемый системой с поддержкой протокола автоматической настройки прокси WPAD, то для подстановки вредоносных PAC-файлов злоумышленники, имеющие доступ к локальной сети, могут воспользоваться распространением настроек прокси через DHCP.
     
    fandor9, Baskin-Robbins and seostock like this.
Loading...