CVE-2026-54500
Açıklama
Oj (Optimized JSON), bir Ruby gem olarak paketlenmiş bir JSON ayrıştırıcı ve Nesne marshaller'ıdır. 3.17.3 öncesindeki sürümlerde, :object modundaki Oj.load, anahtarı 254 bayt veya daha uzun olan bir JSON nesnesini ayrıştırırken başlatılmamış yığın belleğini okur (ve uzun anahtarlar için sınırların dışında okuma yapar). Intern edilen baytlar çağırana ulaşarak işlem yığın belleğinin ifşa olmasına neden olabilir. ext/oj/intern.c dosyasında, form_attr() fonksiyonu uzun anahtar yolunu bir heap tamponu `b` ayırarak, onu öznitelik adıyla doldurarak ve ardından serbest bırakarak işler; ancak rb_intern3() fonksiyonuna (b yerine) başlatılmamış yığın tamponu buf iletilmiştir. Bu nedenle rb_intern3, başlatılmamış yığın belleğinden len + 1 bayt okur. Anahtar uzunluğu >= 256 olduğunda, 256 baytlık buf'ın ötesinde sınır dışı okuma da gerçekleştirir. Ortaya çıkan baytlar intern edilir ve üretilen Symbol aracılığıyla veya geçersiz UTF-8 durumunda ortaya çıkan EncodingError mesajı yoluyla çağırana ulaşarak işlem yığını içeriğini sızdırabilir. Bu sorun 3.17.3 sürümünde düzeltilmiştir.
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 |
|---|---|---|
| ohler55 oj | < 3.17.3 | — |
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.