Haftada 3 milyon indirmeye sahip pac-resolver NPM paketindeki güvenlik açığı

Haftada 3 milyonun üzerinde indirme sayısına sahip olan pac-resolver NPM paketi, Node.js projelerinden HTTP istekleri gönderilirken uygulama bağlamında JavaScript kodunun yürütülmesine izin veren bir güvenlik açığına (CVE-2021-23406) sahiptir. Proxy sunucusu otomatik yapılandırma işlevini destekleyin.

Pac-resolver paketi, otomatik proxy yapılandırma komut dosyası içeren PAC dosyalarını ayrıştırır. PAC dosyası, ana bilgisayara ve istenen URL'ye bağlı olarak proxy seçme mantığını tanımlayan FindProxyForURL işlevine sahip normal JavaScript kodunu içerir. Güvenlik açığının özü, bu JavaScript kodunu pac-resolver'da yürütmek için, Node.js'de sağlanan VM API'sinin kullanılmasıdır; bu, JavaScript kodunu V8 motorunun farklı bir bağlamında yürütmenize olanak tanır.

Belirtilen API, çalıştırılan kodun tam izolasyonunu sağlamadığından ve orijinal içeriğe erişime izin verdiğinden, güvenilmeyen kodu çalıştırmaya yönelik olmadığı belgelerde açıkça işaretlenmiştir. Sorun, güvenilmeyen kodu çalıştırmak için uygun daha yüksek düzeyde izolasyon sağlayan vm5.0.0 kitaplığını kullanacak şekilde taşınan pac-resolver 2'da çözülmüştür.

Haftada 3 milyon indirmeye sahip pac-resolver NPM paketindeki güvenlik açığı

Bir saldırgan, pac-resolver'ın güvenlik açığı bulunan bir sürümünü kullanırken, özel olarak tasarlanmış bir PAC dosyasının iletimi yoluyla, eğer bu proje bağımlılıklara sahip kütüphaneler kullanıyorsa, Node.js kullanarak bir projenin kodu bağlamında kendi JavaScript kodunun yürütülmesini sağlayabilir. pac-çözümleyici ile. Sorunlu kütüphanelerin en popüler olanı, urllib, aws-cdk, mailgun.js ve firebase-tools dahil olmak üzere 360 ​​projeye bağımlılık olarak listelenen ve haftada üç milyondan fazla indirmeye ulaşan Proxy-Agent'tır.

Pac-resolver bağımlılığı olan bir uygulama, WPAD proxy otomatik yapılandırma protokolünü destekleyen bir sistem tarafından sağlanan bir PAC dosyasını yüklerse, yerel ağa erişimi olan saldırganlar, kötü amaçlı PAC dosyaları eklemek için proxy ayarlarının DHCP aracılığıyla dağıtımını kullanabilir.

Kaynak: opennet.ru

Yorum ekle