CVE-2024-38365

Yüksək

Təsvir

btcd, Go (golang) dilində yazılmış alternativ tam düyünlü bitcoin tətbiqidir. btcd Bitcoin kliyenti (versiyalar 0.10-dan 0.24-ə qədər) Bitcoin Core-un "FindAndDelete()" funksionallığını düzgün şəkildə yenidən tətbiq etməmişdir. Bu məntiq konsensus üçün kritikdir: digər Bitcoin kliyentləri ilə davranış fərqi btcd kliyentlərinin etibarsız Bitcoin blokunu qəbul etməsinə (və ya etibarlı olanı rədd etməsinə) səbəb ola bilər. Bu konsensus xətası zəncir bölünməsinə (etibarsız Bitcoin blokunun qəbulu) səbəb olmaq və ya btcd düyünlərinə qarşı DoS hücumu həyata keçirmək (etibarlı Bitcoin blokunun rəddi) üçün istifadə edilə bilər. Hücumçu elə bir standart tranzaksiya yarada bilər ki, orada FindAndDelete uyğunluq tapmasın, lakin removeOpCodeByData tapsın, bu da btcd-nin fərqli sighash əldə etməsinə və nəticədə zəncirin bölünməsinə gətirib çıxarsın. Vacib məqam odur ki, bu boşluq hər hansı Bitcoin istifadəçisi tərəfindən uzaqdan istismar edilə bilər və heç bir heş gücü tələb etmir. Bunun səbəbi davranış fərqinin "standart" Bitcoin tranzaksiyası — yəni Bitcoin blokuna daxil edilməzdən əvvəl P2P şəbəkəsi vasitəsilə ötürülən tranzaksiya ilə tetiklənməsinə imkan verməsidir. `removeOpcodeByData(script []byte, dataToRemove []byte)` funksiyası `script`-dən `dataToRemove` ehtiva edən bütün data push-larını silir. Lakin `FindAndDelete` yalnız dəqiq uyğunluqları silir. Məsələn, `script = "<data> <data||foo>"` və `dataToRemove = "data"` olduqda, btcd hər iki data push-nu siləcək, lakin Bitcoin Core-un `FindAndDelete` funksiyası yalnız birinci `<data>` push-nu siləcəkdir. Bu problem btcd versiya v0.24.2-də aradan qaldırılıb. İstifadəçilərə yeniləmə etmək tövsiyə olunur. Bu problem üçün məlum olan heç bir alternativ həll yolu yoxdur.

CiddilikYüksək
CVSS7.4
İstismar ehtimalı—
MəhsulBtcd
Dərc11 okt 2024
İlk görülmə11 okt 2024
Zəiflik növüCWE-670CWE-670

Necə düzəltmək olar

Yeniləyin
  • btcd_project btcd0.24.2 və ya daha yeni versiya
  • github.com/btcsuite/btcd0.24.2-beta.rc1 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
btcd_project btcd0.10.0 ≤ v < 0.24.20.24.2
github.com/btcsuite/btcdGov < 0.24.2-beta.rc10.24.2-beta.rc1

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.