CVE-2022-31170
Açıklama
OpenZeppelin Contracts, akıllı sözleşme geliştirme için kullanılan bir kütüphanedir. 4.0.0 ile 4.7.1 arasındaki sürümler, ERC165Checker bileşeninin `false` döndürmek yerine işlemi geri almasına (revert) karşı savunmasızdır. `ERC165Checker.supportsInterface`, her zaman başarılı bir şekilde boolean döndürmek üzere tasarlanmıştır ve hiçbir koşulda işlem geri alınmamalıdır. Ancak, Solidity 0.8'in `abi.decode` özelliği hakkındaki yanlış bir varsayım; hedef sözleşmenin EIP-165'i beklendiği gibi uygulamadığı durumlarda, özellikle de 0 veya 1 dışında bir değer döndürdüğünde bazı durumların geri alınmasına izin verir. Etkilenebilecek sözleşmeler, bir arayüz desteğini kontrol etmek için `ERC165Checker` kullanan ve ardından destek eksikliğini geri alma dışındaki bir yöntemle ele alan sözleşmelerdir. Sorun 4.7.1 sürümünde düzeltilmiştir.
Nasıl düzeltilir
- openzeppelin contracts4.7.1 ya da sonraki bir sürüm
- @openzeppelin/contracts4.7.1 ya da sonraki bir sürüm
- @openzeppelin/contracts-upgradeable4.7.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| openzeppelin contracts | 4.0.0 ≤ v < 4.7.1 | 4.7.1 |
| @openzeppelin/contractsnpm | 4.0.0 ≤ v < 4.7.1 | 4.7.1 |
| @openzeppelin/contracts-upgradeablenpm | 4.0.0 ≤ v < 4.7.1 | 4.7.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.