Core Lightning’in eski sürümlerini kullanan düğümlere kötü amaçlı bir kanal duyurusu kaydedilirse, güvenlik yaması uygulandıktan sonra bile düğüm her yeniden başlatıldığında durabilir. Yeni duyuruları engelleyen düzeltme ile diskte önceden saklanmış kayıtları silmek ayrı işlemler.
Nishant Bansal, 24 Ekim’de yayımladığı teknik analizde etkilenen sürümlerin v25.02 ile v26.04 arasındakiler olduğunu belirtti. Bansal, “Core Lightning v26.04.1 veya daha yeni bir sürüme yükseltin” tavsiyesinde bulundu.
Core Lightning, Bitcoin(BTC) için ikinci katman ödeme ağı olan Lightning Network’ü çalıştıran bir yazılım. Düğümler, herkese açık ödeme kanallarının bilgilerini kanal duyurusu mesajlarıyla paylaşarak ödeme rotalarını belirliyor.
Geçerli bir kanal duyurusunda kanalın iki ucunda farklı düğüm tanımlayıcıları bulunmalı. Bansal, aynı kayıtsız düğüm tanımlayıcısının her iki tarafa da yazıldığı bir duyurunun imza kontrolünü geçebildiğini açıkladı.
Core Lightning, duyuruyu önce diskteki ‘gossip_store’ dosyasına kaydediyor, ardından bellekteki rota bilgilerine ekliyor. Aynı düğümü iki kez ekleme girişimi hata verirse bilgi işleme programı gossipd durabiliyor ve tüm düğüm kapanabiliyor.
Sorunlu duyuru, düğüm yeniden başlatıldığında da diskte kalıyor. Düğüm kaydı yeniden okurken aynı hatayla karşılaşabileceğinden, saklanan duyuru kaldırılana kadar normal çalışması zorlaşabiliyor.
Saldırgan, iki imza anahtarını da kontrol ettiği bir fon çıktısı oluşturup bu çıktıda altı blok biriktikten sonra kötü amaçlı duyuruyu gönderebiliyor. Etkilenen sürümler, geçerli imzaya sahip duyuruları kabul ediyor.
Bansal, saldırı maliyetinin yalnızca zincir üstü işlem ücretlerinden ibaret olabileceğini belirtti. Duyuruyu alan düğüm, kaydedilmiş bilgiyi her yeniden başlatmada tekrar okuyarak kesintinin sürmesine yol açabiliyor.
Core Lightning geliştiricileri, hatalı kanal duyurularını reddeden PR #9082 düzeltmesini 24 Nisan’da birleştirdi. Düzeltme, ertesi gün yayımlanan v26.04.1 sürümüne eklendi.
Yama, düğüm tanımlayıcılarının sırası yanlış olan duyuruları kaydetmeden önce reddediyor. Aynı tanımlayıcının iki kez kullanıldığı duyurular da bu kontrole takılıyor.
Ancak yama, önceden kaydedilmiş duyuruları kendiliğinden silmiyor. Kesinti yaşamış düğümlerin yükseltme işleminin yanı sıra saklanan kayıtları da ayrıca kontrol etmesi gerekiyor. Bansal, yayımladığı analizde kayıtları silmek için belirli bir komut vermedi.
Saklanan kayıtlar silinip etkilenen sürüm kullanılmaya devam edilirse aynı sorun yeniden yaşanabilir. Saldırgan, söz konusu fon çıktısını kullanmadan tuttuğu sürece kötü amaçlı duyuruyu tekrar gönderebilir.
Doğrudan etki, Bitcoin blok zincirinin tamamının durması değil, ilgili Lightning düğümünün çevrimdışı kalması. Bansal, düğüm çalışmazken karşı tarafın geçersiz bir kanal durumunu blok zincirine göndermesi veya süresi sınırlı HTLC (hash time-locked contract) talebinin kaçırılması halinde kanal fonlarının risk altına girebileceği uyarısında bulundu.
Lightning Network’ün kanal duyurusu standardı BOLT 7 de 4 Mayıs’ta, alıcı düğümlerin tanımlayıcı sırasını doğrulamasını sağlayacak şekilde güncellendi. Böylece daha önce yalnızca gönderici taraf için geçerli olan kural alıcılar için de açıkça belirtildi.
3 Kasım itibarıyla Core Lightning’in en güncel sürümü v26.06.9. Geliştiriciler bu sürümü 7 Ekim’de yayımladı; TokenPost, mesaj gecikmesi ile kanal kapanışı sırasında yaşanan HTLC işleme hatalarının giderildiğini bildirdi. Yeniden durma sorunu v26.04.1’de düzeltildi; önceden kaydedilmiş duyuruların kaldırılıp kaldırılmadığı ise her düğüm için ayrıca kontrol edilmeli.
Yorum 0