Evmos' transaction execution not accounting for all state transition after interaction with precompiles
Evmos is a scalable, high-throughput Proof-of-Stake EVM blockchain that is fully compatible and interoperable with Ethereum. Prior to 17.0.0, there is a way to mint arbitrary tokens due to the possibility to have two different states not in sync during the execution of a transaction. The exploit is based on the fact that to sync the Cosmos SDK state and the EVM one, we rely on the `stateDB.Commit()` method. When we call this method, we iterate though all the `dirtyStorage` and, **if and only if** it is different than the `originStorage`, we set the new state. Setting the new state means we update the Cosmos SDK KVStore. If a contract storage state that is the same before and after a transaction, but is changed during the transaction and can call an external contract after the change, it can be exploited to make the transaction similar to non-atomic. The vulnerability is **critical** since this could lead to drain of funds through creative SC interactions. The issue has been patched in versions >=V17.0.0.
- Yayın
- 19 Nis 2024
- Güncelleme
- 17 Haz 2026
- EPSS
- %0,9 · 59. yüzdelik
- CWE
- CWE-662
Takip etmek için giriş yap · Takip ettiğin kayıt KEV’e girer, istismarı çıkar ya da güncellenirse bildirim alırsın.
Rapor araçları
Aksiyon skoru
36
İzleyin
Şimdilik düşük öncelik.
- CVSS
- 36 / 40 · 9.1 / 10
- CISA KEV
- 0 / 30 · Listede değil
- EPSS
- 0 / 30 · %0,9
CISA SSVC kararı
- Sömürü
- yok
- Otomatikleştirilebilir
- evet
- Teknik etki
- tam
Vulnrichment: CISA'nın karar ağacı girdileri.
CNA ile NVD puanı
- NVD
- 9,1
- CNA · GitHub_M
- 9,1
- uyumlu
Kaydı açan otoritenin puanı ile NVD’nin bağımsız puanı. İki puan arasındaki fark ciddiyetin tartışmalı olduğunu gösterir.
Etkilenen sistemler
| Üretici | Ürün | CPE |
|---|---|---|
| evmos | evmos | cpe:2.3:a:evmos:evmos |
Etkilenen sürümler
NVD sürüm aralıkları (katalogdaki ürünler için). Stack’ine sürümle eklersen eşleşme bunlarla yapılır.
- evmos evmos17.0.0 öncesi
Üreticinin bildirdiği sürümler
Kaydı açan otorite (GitHub_M) tarafından bildirilen etkilenen sürüm aralıkları. NVD'nin CPE analizinden bağımsızdır ve genellikle ondan önce gelir.
evmos evmos
- < 17.0.0etkilenir
Paket düzeyi etkilenme
OSV ve GitHub Advisory verisi: ekosistem, paket ve aralık. SBOM eşleşmesi bu tabloyu kullanır.
| Ekosistem | Paket | Etkilenen aralık | Düzeltme |
|---|---|---|---|
| Go | github.com/evmos/evmos | tüm sürümler | — |
| Go | github.com/evmos/evmos/v10 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v11 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v12 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v13 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v14 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v15 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v16 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v16 | 17.0.0 öncesi | 17.0.0 |
| Go | github.com/evmos/evmos/v17 | 17.0.0 öncesi | 17.0.0 |
| Go | github.com/evmos/evmos/v2 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v3 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v4 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v5 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v5 | 5.0.0 dahil öncesi | — |
| Go | github.com/evmos/evmos/v6 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v6 | 6.0.4 dahil öncesi | — |
| Go | github.com/evmos/evmos/v7 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v7 | 7.0.0 dahil öncesi | — |
| Go | github.com/evmos/evmos/v8 | tüm sürümler | — |
| Go | github.com/evmos/evmos/v9 | tüm sürümler | — |
| Go | github.com/tharsis/evmos | 1.1.3 dahil öncesi | — |
| Go | github.com/tharsis/evmos | tüm sürümler | — |
| Go | github.com/tharsis/evmos/v2 | tüm sürümler | — |
+7
Aynı üründe
evmos: tüm kayıtlarAynı birincil ürünün en yüksek skorlu diğer kayıtları.
- CVE-2024-39696Evmos vulnerable to exploit of smart contract account and vesting32İzleyin
- CVE-2024-37158Evmos is missing precompile checks32İzleyin
- CVE-2024-37153Evmos's contract balance not updating correctly after interchain transaction30İzleyin
- CVE-2022-24738Account compromise in Evmos29İzleyin
- CVE-2024-37159Evmos is missing create validator check26İzleyin
- CVE-2024-37154Evmos allows unvested token delegations21İzleyin
Düzeltme
Hangi sürüme geçmeli
Üretici, paket deposu ve Microsoft kayıtlarından derlenen düzeltme sürümleri. Yükseltmeden önce üreticinin notunu doğrulayın.
| Ürün / paket | Düzeltilmiş sürüm | Kaynak |
|---|---|---|
| Go:github.com/evmos/evmos/v16 | 17.0.0 | Paket deposu (OSV) |
| Go:github.com/evmos/evmos/v17 | 17.0.0 | Paket deposu (OSV) |
İstismar durumu
Bilinen kamuya açık istismar yok
Şu an kamuya açık bir istismar görülmedi. Bu, güvende olduğunuz anlamına gelmez; yalnızca eşiğin biraz daha yüksek olduğunu gösterir.
Araştırma bağlamı
Pentester ve araştırmacı için: saldırı profili, puan anlaşmazlığı, zaman çizelgesi, yama commit’leri, kredi, varyant ve zincir adayları, bug bounty kapsamı. Hepsi mevcut veriden türetilir; istismar kodu içermez.
Zaman çizelgesi
Yayından bugüne: kavram kanıtı, Metasploit modülü, CISA KEV ve düzeltme kaydı. Tarihler kaynakların bildirdiği tarihlerdir.
Yayın dışında tarihli olay yok.
FIRST EPSS günlük puanı; yalnızca 0,01 ve üstü değişimler kaydedilir (adım grafiği).
Yama ve commit bağlantıları
Referanslardaki commit, PR ve diff adresleri. Patch-diff ve varyant avı için başlangıç noktası; istismar değil, düzeltmedir.
Kredi
Tüm araştırmacılarCNA kaydında adı geçen bulan, bildiren ve analistler. Ada tıkla, aynı araştırmacının diğer kayıtlarını gör.
CNA kaydında kredi yok.
Varyant adayları
Aynı üründe aynı zafiyet sınıfı, 18 ay içinde. Yama kök nedeni kapatmadıysa kardeş hata burada olur.
Gece hesaplanan ilişki yok.
Zincir adayları
Aynı üründe kimlik doğrulama atlatma ile yetki isteyen bir açık kısa aralıkla yayımlanmış: birlikte kimlik doğrulamasız bir yola dönüşebilir.
—
Bug bounty kapsamı
Bilinen herkese açık program yok.
Kaynak: bounty-targets-data (HackerOne, Bugcrowd, Intigriti, YesWeHack herkese açık listeleri).
Teknik detay
Saldırı koşulları
- İnternetten erişebilen herkes tetikleyebilir.
- Hesap ya da parola gerekmez.
- Kullanıcının bir şey yapması gerekmez.
- Özel bir koşul gerekmez; tekrarlanabilir.
Başarılı olursa
- Gizlilik
- yok
- Bütünlük
- yüksek · veri ya da yapılandırma değiştirilebilir
- Erişilebilirlik
- yüksek · hizmet durdurulabilir
- Saldırı vektörü
- Ağ
- Karmaşıklık
- Düşük
- Gereken yetki
- Yok
- Kullanıcı etkileşimi
- Gerekmez
- Kapsam
- Değişmez
- Gizlilik etkisi
- Yok
- Bütünlük etkisi
- Yüksek
- Erişilebilirlik etkisi
- Yüksek
Zayıflık sınıfı (CWE)
CWE-662 · Improper SynchronizationCVSS vektörü
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
nvd-primary
Saldırı bağlamı
Bu zafiyet sınıfının (CWE) MITRE CAPEC saldırı desenleri ve ATT&CK teknikleri. Tespit kuralı ve tehdit avı için başlangıç noktası.
Saldırı desenleri (CAPEC)
Noroxi analizi
Bu kayıt için henüz Noroxi analizi yok
385 binden fazla zafiyetin tamamına elle analiz yazmıyoruz; bu dürüst olmazdı. Öne çıkan ve sahada etkisi olan zafiyetler için mekanizma, tespit ve kapatma adımlarını ekibimiz yazıyor.
Bu ürünü kullanıyoruz, yardım isteyinDeğişiklik günlüğü
- Düzeltme✗ → ✓
Takip ettiğiniz kayıtlarda bu değişiklikler bildirim olarak da gelir. →
Referanslar
- github.com/evmos/evmos/blob/b196a522ba4951890b40992e9f97aa610f8b5f9c/x/evm/statedb/statedb.go#L460-L465
- github.com/evmos/evmos/commit/08982b5ee726b97bc50eaf58d1914829648b6a5f
- github.com/evmos/evmos/security/advisories/GHSA-3fp5-2xwh-fxm6
Üretici bildirimleri ve resmî kayıtlar. İstismar/PoC bağlantıları bilinçli olarak dışarıda bırakıldı.