CVE-2023-34459

Orta

Açıklama

OpenZeppelin Contracts, akıllı sözleşme geliştirme için bir kütüphanedir. 4.7.0 sürümünden itibaren ve 4.9.2 sürümünden önce, `verifyMultiProof`, `verifyMultiProofCalldata`, `procesprocessMultiProof` veya `processMultiProofCalldat` fonksiyonları kullanıldığında, rastgele bir yaprak kümesi için geçerli bir çoklu kanıtın (multiproof) sahte olarak oluşturulmasına izin veren merkle ağaçları oluşturmak mümkündür. Bir sözleşme, doğrulama için çoklu kanıtlar kullanıyorsa ve işlenen merkle ağacı derinlik 1'de (kökün hemen altında) değeri 0 olan bir düğüm içeriyorsa savunmasız olabilir. Bu, yapraklar hashlenmemişse 3 veya daha az yapraklı dengeli ağaçlar için istemeden meydana gelebilir. Bu, kötü niyetli bir ağaç oluşturucu ağaca böyle bir düğüm eklerse kasıtlı olarak meydana gelebilir. Bir sözleşme, tek yapraklı kanıtlama (`verify`, `verifyCalldata`, `processProof` veya `processProofCalldata`) kullanıyorsa veya yaprakları hashlenmiş bilinen bir ağaçla çoklu kanıtlar kullanıyorsa savunmasız değildir. @openzeppelin/merkle-tree kütüphanesi ile üretilen veya doğrulanan standart merkle ağaçları güvenlidir. Sorun 4.9.2 sürümünde yamalanmıştır. Bazı geçici çözümler mevcuttur. Çoklu kanıt kullananlar için: Merkle ağaçları oluştururken yaprakları hashleyin ve ağaçlarınıza boş düğümler eklemeyin. @openzeppelin/merkle-tree paketini kullanmak bu sorunu ortadan kaldırır. Ağacın en azından ilk seviyesini yeniden oluşturmadan kullanıcı tarafından sağlanan merkle köklerini kabul etmeyin. Merkle ağacı yapısını yapraklardan yeniden oluşturarak doğrulayın.

ÖnemOrta
CVSS5.3
İstismar olasılığı—
ÜrünOpenzeppelin Contracts
Yayın16 Haz 2023
İlk görülme16 Haz 2023
Zayıflık türüCWE-354CWE-354

Nasıl düzeltilir

Güncelleyin
  • openzeppelin contracts4.9.2 ya da sonraki bir sürüm
  • openzeppelin contracts_upgradeable4.9.2 ya da sonraki bir sürüm
  • @openzeppelin/contracts4.9.2 ya da sonraki bir sürüm
  • @openzeppelin/contracts-upgradeable4.9.2 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
openzeppelin contracts4.7.0 ≤ v < 4.9.24.9.2
openzeppelin contracts_upgradeable4.7.0 ≤ v < 4.9.24.9.2
@openzeppelin/contractsnpm4.7.0 ≤ v < 4.9.24.9.2
@openzeppelin/contracts-upgradeablenpm4.7.0 ≤ v < 4.9.24.9.2

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.