Tranzacții nestandard special construite puteau ține ocupat un nod Bitcoin Core câteva secunde fiecare, fără ca expeditorul să fie deconectat, iar un atacator putea astfel întârzia propagarea blocurilor. Antoine Poinsot a raportat CVE-2025-46598, de severitate scăzută, iar v30.0 o atenuează prin reducerea timpului de validare în cel mai rău caz.
Bitcoin Core
Buletin de securitateDezvoltare2 minute de lectură
Blocurile de peste 1 GB puteau depăși o verificare de dimensiune pe nodurile Bitcoin Core de 32 de biți și le prăbușeau la scrierea pe disc, însă doar sub formă de compact block și doar la o victimă cu -maxmempool peste 3 GB și 1 GB de tranzacții în mempool. Pieter Wuille a descoperit CVE-2025-46597, de severitate scăzută; plafonarea -maxmempool pe sistemele de 32 de biți a închis problema în 29.1 și 30.0.
Comisioanele minime implicite scad în Bitcoin Core 28.3: -blockmintxfee la 1 satoshi per kvB, -minrelaytxfee și -incrementalrelayfee la 100 de satoshi per kvB. Comisioanele portofelului rămân neschimbate, iar tranzacțiile mai ieftine s-ar putea să nu se propage dacă noile valori implicite nu se răspândesc în rețea. Permisiunile de whitelist nu se mai aplică nici conexiunilor onion de intrare (#33395).
FillBlock primește două remedieri P2P în Bitcoin Core 29.2: o verificare a mutațiilor de witness (#32646) și o verificare a headerului gol înainte de apel (#33296). Verificările TRUC nu se mai aplică la reorganizări (#33504), iar getblock și getblockheader nu mai returnează ținta vârfului (#33446).
Limitele OP_RETURN practic dispar în Bitcoin Core 30.0: -datacarriersize are implicit 100.000, iar o tranzacție poate avea mai multe ieșiri de date, deși -datacarriersize=83 readuce vechiul plafon. Comisioanele implicite de retransmitere coboară la 0,1 satoshi per vB, operațiile de semnătură legacy au un plafon de 2500 pe tranzacție standard, iar noua comandă bitcoin înglobează executabilele existente.
Scrierea necondiționată în log din Bitcoin Core 29.1 are acum o limită de 1 MiB pe oră pentru fiecare locație din cod (#32604), iar tranzacțiile standard pot conține cel mult 2500 de operații de semnătură legacy potențial executate. Comisioanele implicite de retransmitere scad la 100 de satoshi per kvB, iar compilările pe 32 de biți plafonează -maxmempool la 500 MB și -dbcache la 1 GiB.
Puțin peste jumătate din modificările Bitcoin Core 28.2 țin de compilare. Guix notarizează acum pachetul de aplicație macOS și semnează toate binarele macOS și Windows (#31407), iar depends primește reparații de compilare pentru libevent pe NetBSD (#31500) și freetype sub cmake (#32693).
Treizeci și unu de contributori Bitcoin Core au semnat o scrisoare în care spun că software-ul de nod nu ar trebui să refuze retransmiterea tranzacțiilor cu cerere economică susținută care ajung în mod constant în blocuri, pentru că utilizatorii și minerii pot ocoli asemenea filtre. Semnatarii precizează că asta nu înseamnă o susținere a stocării de date nefinanciare și că doar utilizatorii aleg ce software și ce politici rulează.
Spamul addr neîntrerupt, ani la rând, putea depăși identificatorul pe 32 de biți din managerul de adrese Bitcoin Core și prăbuși nodul: atât mai rămăsese din atacul temperat prima dată prin limitarea de rată din v22.0. Versiunea 29.0 trece la un identificator pe 64 de biți și închide CVE-2024-52919, de severitate scăzută. Eugene Siegel a descoperit problema, iar Martin Zumsande a făcut modificarea.
Bitcoin Core 29.0 renunță la suportul UPnP; -natpmp rulează acum pe o implementare proprie PCP și NAT-PMP, în locul libnatpmp. Apare o politică nouă, ephemeral dust, o remediere pentru greutatea de bloc rezervată de două ori aduce -blockreservedweight, iar nodurile cer părinții lipsă ai unui orfan de la fiecare peer care l-a anunțat. Versiunile 26.x și mai vechi ajung la Maintenance End.
Cu -port setat, Bitcoin Core 28.1 calculează portul onion implicit de ascultare ca acel port plus unu, în loc să-l fixeze la 8334 pe mainnet, așa că mai multe noduri locale pot rula din nou unul lângă altul fără coliziune la pornire. Liniile HiddenServicePort scrise manual în torrc ar putea necesita modificări. În plus, datele secrete se șterg acum în DecodeExtKey (#31166).
Un peer care anunță un bloc și apoi tărăgănează putea ține un nod Bitcoin Core în așteptare până la 10 minute înainte să încerce în altă parte, iar atacatorii puteau repeta trucul. Vulnerabilitatea CVE-2024-52922, de severitate medie, raportată și reparată de Greg Sanders, e atenuată în v25.1 și v26.0, care pot cere un bloc imediat de la până la 3 peeri compact block în modul high-bandwidth.
Versiunea 27.2 a Bitcoin Core închide o condiție de cursă din detectarea autoconectărilor (#30394) și corectează apelurile FillPSBT care întorceau greșit complete=true (#30357). Firul de încărcare a blocurilor și schedulerul se opresc acum în altă ordine (#30435), iar codul se compilează cu miniupnpc 2.2.8 și GCC 15.
În versiunile Bitcoin Core anterioare v25.0, blocurile mutate de la un peer puteau șterge starea de descărcare a altor peeri care anunțau același bloc, iar nodul uita un compact block pe care încă îl reconstruia. Suhas Daftuar a observat problema, iar #27608 limitează fiecare peer la propria stare. CVE-2024-52921 are severitate medie.
Bitcoin Core
Buletin de securitateDezvoltare2 minute de lectură
Nodurile Bitcoin Core anterioare v25.0 puteau fi prăbușite de la distanță cu un mesaj blocktxn repetat pentru același bloc, care declanșa o aserțiune potrivit căreia FillBlock rulează o singură dată. Nu era nevoie de o coliziune short-id: includerea unor tranzacții absente din rădăcina merkle a blocului ducea pe același traseu. Niklas Gögge a găsit și a reparat bugul de severitate ridicată, CVE-2024-35202.
O explozie de activitate în rețea la începutul lui mai 2023, agravată de nodurile spion, a încetinit propagarea blocurilor și a tranzacțiilor, pentru că sortarea seturilor inv-to-send supradimensionate consuma aproape tot timpul firului P2P. Problema, de severitate medie, s-a rezolvat în Bitcoin Core v25.0 prin #27610, care elimină mai devreme tranzacțiile ieșite din mempool și golește seturile mai repede pe măsură ce cresc.
Testnet4 (BIP94) sosește în Bitcoin Core 28.0, alături de package relay limitat pentru perechi cu un părinte și un copil, tranzacții TRUC standard conform BIP 431 și un nou tip de ieșire, Pay To Anchor. -mempoolfullrbf are acum implicit valoarea 1, iar libbitcoinconsensus dispare după ce fusese declarat depreciat în 27.0.
Lanțuri de headere cu dificultate mică puteau prăbuși de la distanță nodurile Bitcoin Core anterioare v24.0.1, iar un singur lanț construit special putea fi refolosit împotriva oricărui nod din rețea. Remedierea din #25717 obligă nodul să verifice că lanțul are suficientă muncă înainte de a-l stoca, ceea ce a pus capăt și dependenței de checkpointuri împotriva atacurilor cunoscute. Severitate: ridicată.
Spamul cu mesaje addr putea prăbuși un nod Bitcoin Core: 2^32 de inserări în addrman depășeau un contor de ID pe 32 de biți și declanșau o aserțiune. Eugene Siegel a raportat bugul de severitate ridicată în 2021, iar v22.0 conține remedierea lui Pieter Wuille.
Bitcoin Core
Buletin de securitateDezvoltare2 minute de lectură
Dându-se drept dispozitiv UPnP în rețeaua locală, un atacator putea copleși un nod Bitcoin Core cu răspunsuri M-SEARCH umflate, până când acesta rămânea fără memorie. Erau expuse doar nodurile pornite cu -miniupnp, pentru că altfel biblioteca e dezactivată implicit. Bugul, de severitate scăzută, s-a reparat în v22.0.