CVE-2026-75758
Açıklama
Elixir standart kütüphanesindeki Kontrolsüz Özyineleme (Uncontrolled Recursion) zafiyeti, inspect/1, List.to_string/1 veya List.to_charlist/1 fonksiyonlarına iletilen bir listeyi kontrol edebilen bir saldırganın, bir BEAM düğümünün belleğini tüketmesine olanak tanır. lib/elixir/lib/inspect.ex dosyasındaki Inspect.List'in charlist dalı, bir listeyi List.ascii_printable?/2 kullanarak charlist olarak sınıflandırır; bu işlem yalnızca ilk :printable_limit (varsayılan olarak 4096) öğeyi inceler ve ardından tüm terim üzerinde IO.chardata_to_string/1 fonksiyonunu çağırır. Yazdırılabilir ön eki bu sınırı aşan ancak daha sonra kod noktası olmayan (bir atom, aralık dışı bir tam sayı veya uygun olmayan bir kuyruk) bir öğe içeren bir liste, bu nedenle yanlış sınıflandırılır ve dönüştürme işlemi ArgumentError hatası oluşturur. Bu dönüştürme, kurtarma (rescue) bloğu mesajını inspect(list) ifadesini ekleyerek oluşturan List.to_string/1 içinde çalışır; bu durum aynı dala yeniden girilmesine ve hatanın tekrar oluşmasına neden olur. İç içe geçmiş inceleme (inspection) işlemi raise fonksiyonuna bir argüman olduğu için özyineleme kuyruk konumunda değildir ve her seviye korunur: süreç yığını monoton olarak büyürken her döngü listeyi yeniden tarar; ta ki süreç max_heap_size tarafından sonlandırılana veya varsayılan olarak düğümün belleği tükenene kadar. List.to_charlist/1 de aynı kurtarma yapısına sahiptir. Yazdırılabilir sınırın altında, içteki inspect/1 geçersiz öğeyi sayacı dahilinde görür ve listeyi normal köşeli parantez biçiminde işler, böylece tek bir ArgumentError oluşturulur ve özyineleme meydana gelmez. Bu sorun şu elixir sürümlerini etkilemektedir: 1.15.0-rc.0'dan 1.18.5 öncesine kadar, 1.19.0-rc.0'dan 1.19.6 öncesine kadar ve 1.20.0-rc.0'dan 1.20.4 öncesine kadar.
Nasıl düzeltilir
- elixir-lang elixir1.18.5, 1.19.6, 1.20.4 ya da sonraki bir sürüm
- github.com/elixir-lang/elixir/commit/1eff1acffd49bdcc0d7f57ca74c1603328eed68a
- github.com/elixir-lang/elixir/commit/5230d73968f1b4969d2a2646786fa6c71475f5cc
- github.com/elixir-lang/elixir/commit/a983c8c043b1fbf1d95df78a29149222dac2988c
- github.com/elixir-lang/elixir/commit/0bba5887577b1e328da825bd018815fdc519685a
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| elixir-lang elixir | 1.15.0-rc.0 ≤ v < 1.18.5, 1.19.0-rc.0 ≤ v < 1.19.6, 1.20.0-rc.0 ≤ v < 1.20.4, 9718f2b90ce086ff8614d5782f4ec528495c98dd | 1.18.5, 1.19.6, 1.20.4 |
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.