CVE-2026-26267
Açıklama
soroban-sdk, Soroban kontratları için bir Rust SDK'sıdır. 22.0.10, 23.5.2 ve 25.1.1 versiyonlarından önce, `#[contractimpl]` makrosu fonksiyon çağrılarını bağlama şeklinde bir hata içermektedir. `#[contractimpl]`, trait versiyonunu işlerken bile `MyContract::value()` tarzı çağrılar kullanan kodlar üretir. Bu durum, aynı isimle tanımlanmış yerleşik (inherent) bir fonksiyon varsa, trait fonksiyonu yerine yerleşik fonksiyonun çağrıldığı anlamına gelir. Dolayısıyla, iki koşul aynı anda karşılandığında Wasm ile dışa aktarılan giriş noktası sessizce yanlış fonksiyonu çağırır: Birincisi, `#[contractimpl]` uygulanmış olan ve bir veya daha fazla fonksiyon içeren bir `impl Trait for MyContract` bloğunun tanımlanmış olmasıdır. İkincisi, `#[contractimpl]` uygulanmamış olan ve aynı isimde bir veya daha fazla fonksiyon içeren bir `impl MyContract` bloğunun tanımlanmış olmasıdır. Eğer trait versiyonu, çağıran kişinin yetkili olduğunu doğrulamak gibi yerleşik versiyonda bulunmayan önemli güvenlik kontrolleri içeriyorsa, bu kontroller atlatılır. Kontratla genel arayüzü üzerinden etkileşime giren herkes yanlış fonksiyonu çağıracaktır. Sorun, `soroban-sdk-macros` 22.0.10, 23.5.2 ve 25.1.1 versiyonlarında düzeltilmiştir. Düzeltme, trait uygulamalarını işlerken üretilen çağrıyı `<Type>::func()` şeklinden `<Type as Trait>::func()` şekline değiştirerek, aynı isimde yerleşik bir fonksiyon olsa dahi Rust'ın trait ile ilişkili fonksiyonu çözümlemesini sağlar. Kullanıcıların `soroban-sdk-macros` 22.0.10, 23.5.2 veya 25.1.1 versiyonlarına yükseltme yapmaları ve kontratlarını yeniden derlemeleri gerekir. Yükseltmenin hemen mümkün olmadığı durumlarda, kontrat geliştiricileri, kontrat türündeki hiçbir yerleşik ilişkili fonksiyonun trait uygulamasındaki herhangi bir fonksiyonla aynı ismi paylaşmadığından emin olarak sorundan kaçınabilirler. Çakışan yerleşik fonksiyonun yeniden adlandırılması veya kaldırılması belirsizliği ortadan kaldırır ve makro tarafından üretilen kodun doğru şekilde trait fonksiyonuna çözümlenmesini sağlar.
Nasıl düzeltilir
- stellar rs-soroban-sdk22.0.10, 23.5.2, 25.1.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| stellar rs-soroban-sdk | v < 22.0.10, 23.0.0 ≤ v < 23.5.2, 25.0.0 ≤ v < 25.1.1 | 22.0.10, 23.5.2, 25.1.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.