CVE-2026-61536
Açıklama
Banks, basit bir şablon dili kullanarak anlamlı LLM istemleri üretir. 2.4.3 öncesi sürümlerde banks, {% completion %} bloklarının işlenmiş gövdesinden Tool JSON nesnelerini ayrıştırır ve ardından bir araç çağrısını işleyen çağrılabilir nesneyi elde etmek için bunların import_path alanını importlib.import_module(...) + getattr(...) aracılığıyla çözer. import_path üzerinde herhangi bir izin listesi veya temizleme yoktur, bu nedenle içe aktarılabilir herhangi bir Python özniteliği (ör. os.system, subprocess.getoutput) seçilebilir. LLM, function.name değeri saldırgan tarafından sağlanan araç adıyla eşleşen bir tool_calls girdisi ürettiğinde, çözülen çağrılabilir nesne tool_call.function.arguments'tan çözülen kwargs ile çağrılır ve banks barındıran süreçte rastgele kod çalıştırma elde edilir. Bu, GHSA-gphh-9q3h-jgpp / CVE-2026-44209'dan farklıdır. Söz konusu uyarı, src/banks/env.py dosyasının Environment yerine SandboxedEnvironment kullanacak şekilde değiştirilmesiyle 2.4.2'de düzeltilmiştir. Düzeltme src/banks/extensions/completion.py dosyasına dokunmaz ve güvenli olmayan import + getattr zinciri 2.4.2'de hâlâ çalışır. Kötü amaçlı Tool JSON, işlenmiş şablon gövdesinde düz metindir — herhangi bir Jinja öznitelik erişimi gerektirmez, dolayısıyla sandbox konu dışıdır. Bu sorun 2.4.3 sürümünde düzeltilmiştir.
Nasıl düzeltilir
- banks2.4.3 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| masci banks | < 2.4.3 | — |
| banksPyPI | v ≤ 2.4.2 | 2.4.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.