bitcoinjs-lib Bakımcıları Bitcoin (BTC) Ücretlerindeki İki Yüksek Riskli Açığı Açıkladı
bitcoinjs-lib'deki iki yüksek riskli açık, PSBT ücretini gerçek maliyetin çok altında gösterebiliyor; düzeltmeler 5.2.2, 6.1.9 ve 7.0.4 sürümlerinde yayımlandı.
AI ÖzetiAI
- bitcoinjs-lib bakımcıları 26 Ekim Pazartesi günü iki yüksek riskli güvenlik duyurusu yayımladı
- Bir yeniden üretimde 900.000.000 satoshi ücret 200 satoshi olarak hesaplandı
- İkinci örnekte 91.000 satoshi ücret ekranda 1.000 satoshi göründü
- Düzeltmeler 5.2.2, 6.1.9 ve 7.0.4 sürümleriyle geldi
Bitcoin (BTC) işlemlerinin kurulumunda yaygın biçimde kullanılan JavaScript kütüphanesi bitcoinjs-lib'de tespit edilen iki yüksek riskli güvenlik açığı, kısmen imzalanmış bir işlemin ağın gerçekten tahsil edeceği tutarın çok altında bir ücret göstermesine yol açabiliyor. Kütüphanenin bakımcıları, 26 Ekim Pazartesi günü iki ayrı güvenlik duyurusu yayımladı ve her iki zaafiyeti de yüksek risk sınıfında sınıflandırdı; her etkilenen sürüm serisi için düzeltilmiş sürümler aynı gün çıktı. Bitcoin fiyatı bu açıklamalardan etkilenmedi; iki açık da ağın mutabakat kurallarına değil, cüzdanların işlemi onaylamadan önce kullanıcıya sunduğu ücret muhasebesine dokunuyor. Yani risk, kullanıcının ekrandaki rakama güvenip imza atması durumunda ortaya çıkıyor: yayına giren işlem, ekranda vaat edilenden daha yüksek bir madencilik ücreti taşıyabiliyor.
Kapsam, kütüphane üzerinden PSBT işleyen ve buna dayanarak ücret hesaplaması yapan ya da aşırı ücrete karşı koruma sağlayan uygulamaları kapsıyor. PSBT, BIP 174 ile tanımlanan ve işlem verisiyle imzaları uygulamalar arasında taşıyan değişim formatı. BIP 174, her girdinin harcadığı önceki çıktı kaydını taşımasını şart koşuyor; imzacıların ücreti hesaplayıp gösterirken kullandığı değer işte bu kayıttan geliyor. Bu yapı, Segregated Witness imza verisini ayrı bir girdi türüne dönüştürdükten sonra oturmuş. İlk açık, tek bir girdinin aynı anda çelişen iki önceki çıktı kaydı taşıması durumunda devreye giriyor. İmzalama adımı gerçek değeri okurken, ücret hesaplaması diğer kayıttaki düşük rakamı seçebiliyor. Bakımcıların yeniden üretim örneğinde, gerçekte 900.000.000 satoshi olan ücret yalnızca 200 satoshi olarak hesaplandı. İmza doğrulaması geçti ve çıktı alma aşamasında varsayılan bir ücret oranı uyarısı da üretilmedi. Bakımcılar bu rakamın hatanın bir yeniden üretimi olduğunu, ölçülmüş bir kullanıcı kaybı olmadığını açıkça belirtiyor.
Açıklar Ne Yapabilir, Ne Yapamaz
İkinci açık, zaten imzalanmış bir girdinin hiç önceki çıktı kaydı taşımaması durumunda ortaya çıkıyor. Kütüphane o girdinin değerini sıfır olarak topladığında, ücret işlemin gerçekten ödediğinden düşük hesaplanıyor. Bakımcıların örneğinde 91.000 satoshi tutarındaki gerçek ücret, ekranda 1.000 satoshi olarak görüntülendi. İki örnek de aynı sonuca işaret ediyor: gösterilen ücret ve aşırı ücret bloğu, işlemin gerçek değerini yansıtmayı bırakabiliyor.
Her iki açık da imza sahteciliği yapamıyor ve kullanıcının onayı olmadan
Bitcoin (BTC) hareket ettiremiyor. Kayıp, onaylanmış ve geçerli bir işlemin yayına girip kabul edilip teyit alınmasıyla mümkün. O noktada ücretin tamamı, fazlalık dahil, ağın Proof of Work kuralları altında Kripto Madencilik yapan madencilere ödeniyor; fazlalık gönderene geri dönmüyor.
Etkilenen sürümler v5 serisinde bile birbirinden farklı. Çelişen kayıt sorunu 5.2.0'dan 5.2.1'e kadar olan sürümleri kapsarken, eksik kayıt sorunu 5.1.0'a kadar geriye gidiyor ve 5.2.1'i de kapsıyor. Her iki açık da 6.0.0'dan 6.1.8'e kadar tüm v6 aralığını ve 7.0.0-rc.0'dan 7.0.3'e kadar v7 yapılarını etkiliyor. Düzeltmeler 5.2.2, 6.1.9 ve 7.0.4 sürümlerinde geldi. Bakımcılar aynı gün 15 güvenlik duyurusu yayımladı; bunların bir kısmı başka konuları da kapsıyor. Her seri için güncel sürüm olarak 5.2.3, 6.1.10 ve 7.0.5 işaret ediliyor.
Geliştiricilere yönelik öneri somut: etkilenen aralıklar için doğrudan ve dolaylı bağımlılıkları denetleyin. Yükseltmenin mümkün olmadığı yerlerde her girdinin önceki çıktı değerini bağımsız olarak doğrulayın ve değerleri çelişen ya da eksik olan girdileri reddedin. Bireysel cüzdanların açıkta olup olmadığı ve gerçek bir kaybın yaşanıp yaşanmadığı henüz teyit edilmiş değil. Duyurular kusuru ve kütüphane içindeki erişimini belgeliyor; üzerine inşa edilen cüzdan sayısını saymıyor, dolayısıyla fiilen risk altındaki kullanıcı topluluğu bu belgelerin ölçtüğü alanın dışında kalıyor.
Ücret Ekranı Neden Bir Güven Sınırı
Cüzdan altyapılarına gömülü bir kütüphane için ücret rakamı, kullanıcının onaylamadan önce güvendiği sayıdır. Bu duyurular, o katmanın işlemin gerçek maliyetinden kopabileceğini gösterdi. Pratik yanıt Bitcoin geliştirme ekiplerinde: bağımlılık ağaçlarının denetlenmesi ve ücret ekranlarının kütüphaneye körü körüne güvenmek yerine bağımsız doğrulamadan geçirilmesi gerekiyor. İmzalama ekosistemi parçalı benimseme dönemlerini daha önce de yaşadı; 709.632 numaralı blokta devreye giren Taproot güncellemesi, cüzdan desteğini isteğe bağlı bırakmış ve benimseme piyasada bölünmüştü. Uygulamalar yamalı sürümü çalıştırdıklarını teyit edene kadar kullanıcılar, ekranda gördükleri her PSBT ücretini kesin değil, bilgilendirici bir değer olarak ele almalı.
Konu: Bitcoin haberleri
Yapay zekâ destekli üretildi, AI ile incelendi ve COINOTAG editöryal gözetiminde yayımlandı.

