CVE-2025-54070

Orta

Açıklama

OpenZeppelin Contracts, güvenli akıllı sözleşme geliştirme için bir kütüphanedir. 5.2.0 sürümünden itibaren ve 5.4.0 sürümünden önce, `Bytes.sol` kütüphanesinin `lastIndexOf(bytes,byte,uint256)` fonksiyonu aşağıdaki iki koşul sağlandığında başlatılmamış belleğe erişebilir: 1) sağlanan arabellek uzunluğu boşsa (yani `buffer.length == 0`) ve konum `2**256 - 1` değilse (yani `pos != type(uint256).max`). `pos` argümanı, arabellek sınırlarının dışındaki rastgele verilere erişmek için kullanılabilir. Bu durum, işlemin gazının tükenmesine veya geçersiz bir dizin (boş arabelleğin dışında) döndürmesine yol açabilir. `buffer` öğesine erişmek için bu geçersiz sonucun işlenmesi, normal koşullar altında bir geri alınamaya (revert) neden olur. Tetiklendiğinde, fonksiyon `buffer + 0x20 + pos` uzaklığındaki belleği okur. Bu konumdaki bellek (`buffer` dışında) arama deseniyle eşleşirse, fonksiyon beklenen `type(uint256).max` yerine sınırların dışında bir dizin döndürür. Bu durum, çağıranların arabellek sınırlarının dışını işaret eden geçerli görünümlü bir dizin almasına neden olan beklenmeyen bir davranış yaratır. Sınırları kontrol etmeyen ve döndürülen dizini kullanan sonraki bellek erişimleri, kurulumlarına bağlı olarak olası etkiyi dikkatlice gözden geçirmelidir. Bu fonksiyonun boş arabellekler için `type(uint256).max` döndürmesine güvenen veya döndürülen dizini sınır kontrolü yapmadan kullanan kod, tanımsız davranış sergileyebilir. Kullanıcılar bir yama almak için 5.4.0 sürümüne yükseltmelidir.

ÖnemOrta
CVSS6.9
İstismar olasılığı—
Ürün@openzeppelin/contracts
Yayın17 Tem 2025
İlk görülme17 Tem 2025

Nasıl düzeltilir

Güncelleyin
  • @openzeppelin/contracts5.4.0 ya da sonraki bir sürüm
  • @openzeppelin/contracts-upgradeable5.4.0 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
@openzeppelin/contractsnpm5.2.0 ≤ v < 5.4.05.4.0
@openzeppelin/contracts-upgradeablenpm5.2.0 ≤ v < 5.4.05.4.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.

Intelligence 360 paketinde

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.