CVE-2024-38365
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.
Necə düzəltmək olar
- 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əhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| btcd_project btcd | 0.10.0 ≤ v < 0.24.2 | 0.24.2 |
| github.com/btcsuite/btcdGo | v < 0.24.2-beta.rc1 | 0.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.
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.