Kerentanan dalam paket NPM pac-resolver dengan 3 juta unduhan per minggu

Paket NPM pac-resolver, yang memiliki lebih dari 3 juta unduhan per minggu, memiliki kerentanan (CVE-2021-23406) yang memungkinkan kode JavaScript-nya dieksekusi dalam konteks aplikasi saat mengirim permintaan HTTP dari proyek Node.js yang mendukung fungsi konfigurasi otomatis server proxy.

Paket pac-resolver mem-parsing file PAC yang menyertakan skrip konfigurasi proksi otomatis. File PAC berisi kode JavaScript biasa dengan fungsi FindProxyForURL yang mendefinisikan logika untuk memilih proxy bergantung pada host dan URL yang diminta. Inti dari kerentanannya adalah untuk mengeksekusi kode JavaScript ini di pac-resolver, API VM yang disediakan di Node.js digunakan, yang memungkinkan Anda mengeksekusi kode JavaScript dalam konteks berbeda dari mesin V8.

API yang ditentukan secara eksplisit ditandai dalam dokumentasi sebagai tidak dimaksudkan untuk menjalankan kode yang tidak tepercaya, karena tidak menyediakan isolasi lengkap dari kode yang dijalankan dan memungkinkan akses ke konteks aslinya. Masalah ini telah diatasi di pac-resolver 5.0.0, yang telah dipindahkan untuk menggunakan perpustakaan vm2, yang menyediakan tingkat isolasi lebih tinggi yang cocok untuk menjalankan kode yang tidak tepercaya.

Kerentanan dalam paket NPM pac-resolver dengan 3 juta unduhan per minggu

Saat menggunakan versi pac-resolver yang rentan, penyerang melalui transmisi file PAC yang dirancang khusus dapat mencapai eksekusi kode JavaScript-nya dalam konteks kode proyek menggunakan Node.js, jika proyek ini menggunakan perpustakaan yang memiliki ketergantungan dengan pac-resolver. Pustaka bermasalah yang paling populer adalah Proxy-Agent, yang terdaftar sebagai ketergantungan pada proyek 360, termasuk urllib, aws-cdk, mailgun.js, dan firebase-tools, dengan total lebih dari tiga juta unduhan per minggu.

Jika aplikasi yang memiliki ketergantungan pada pac-resolver memuat file PAC yang disediakan oleh sistem yang mendukung protokol konfigurasi otomatis proxy WPAD, maka penyerang yang memiliki akses ke jaringan lokal dapat menggunakan distribusi pengaturan proxy melalui DHCP untuk memasukkan file PAC berbahaya.

Sumber: opennet.ru

Tambah komentar