CVE-2026-93603
Açıklama
vm2 2 ile 3.12.0 sürümleri arasında (3.12.1 sürümünde düzeltildi), köprüsünün (lib/bridge.js) apply tuzağındaki nullish `this` alıcısı doğru şekilde işlenmemektedir: kum havuzu içindeki kod, bir alıcı olmadan ana makine tarafından sağlanan katı olmayan (sloppy-mode) bir fonksiyonu çağırdığında — örneğin `fn()`, ayrılmış bir metot, `fn.call()`, `fn.apply(undefined)`, `Reflect.apply(fn, undefined, [])` veya `fn.bind()()` — tanımlanmamış alıcı doğrudan ana makine çağrısına aktarılır ve V8, `this` için ana makine alanının global nesnesini ikame eder. vm2 daha sonra bu nesneyi sarmalayarak kum havuzuna geri döndürür ve böylece kum havuzu içindeki betiğe ana makinenin global nesnesinin canlı bir proxy'si sağlanmış olur. Bu durum tam bir kum havuzu kaçışına izin verir: güvenilmeyen betikler `process` nesnesine erişebilir ve ana makinede rastgele kodlar/komutlar çalıştırabilir (örneğin `process.getBuiltinModule('child_process').execSync` aracılığıyla). İstismar edilmesi için, gömülü uygulamanın kum havuzuna en az bir tane katı olmayan ana makine fonksiyonu sunmuş olması gerekir; katı mod (strict-mode) ve ES modül ana makine fonksiyonları etkilenmemektedir.
Nasıl düzeltilir
- patriksimek vm23.12.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| patriksimek vm2 | v < 3.12.1 | 3.12.1 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.