CVE-2024-43367
Açıklama
Boa, Rust ile yazılmış gömülebilir ve deneysel bir Javascript motorudur. Versiyon 0.16'dan başlayarak versiyon 0.19.0 öncesine kadar olan sürümlerde, ECMAScript'in `AsyncGenerator` işlemleri ele alınırken yapılan yanlış bir varsayım, belirli betiklerde yakalanamayan bir istisnaya (uncaught exception) neden olabilir. Boa'nın `AsyncGenerator` uygulaması; `%AsyncGeneratorPrototype%.next`, `%AsyncGeneratorPrototype%.return` veya `%AsyncGeneratorPrototype%.throw` gibi `AsyncGenerator` yöntemleri tarafından oluşturulan bir promise çözümlenirken, bir `AsyncGenerator` nesnesinin durumunun değişemeyeceği varsayımı üzerine kurulmuştur. Ancak, dikkatle yapılandırılmış bir kod, promise'in `then` özelliği için bir getter yöntemi üzerinden durum geçişini tetikleyebilir; bu da motorun söz konusu varsayımla ilgili bir doğrulamada (assertion) başarısız olmasına ve yakalanamayan bir istisnanın oluşmasına yol açar. Bu durum, harici bir kullanıcı tarafından sağlanan rastgele ECMAScript kodlarını çalıştıran uygulamalarda Hizmet Reddi (Denial Of Service) saldırısı oluşturmak için kullanılabilir. Versiyon 0.19.0, bu durumu doğru şekilde yönetmek için yamalanmıştır. Yamalı versiyona yükseltme yapamayan kullanıcıların, motor tarafından kaynaklanan herhangi bir istisnanın ana uygulamanın erişilebilirliğini etkilemediğinden emin olmak için `std::panic::catch_unwind` kullanmaları önerilir.
Nasıl düzeltilir
Kaynaklarda bu zafiyet için düzeltilmiş sürüm ya da yama bağlantısı yok.
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| boa-dev boa | >= 0.16, < 0.19.0 | — |
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.