Scanare AI găsește trei bug-uri în Bitcoin Core / nodurile Windows și Mac pot fi oprite

Puncte cheie

  • Scan LLM găsește trei bug-uri Bitcoin Core, corectate în versiunile 29.5, 30.4, 31.2, 32.1
  • Un peer rău intenționat poate opri orice nod Windows, macOS sau BSD prin date TCP urgente
  • Dezvăluite fără embargo: în mod normal bug-urile medii se publică după circa un an
Alex Numeris
Alex Numeris•
Distribuie

Bitcoin Core a publicat pe 28 octombrie trei avize de securitate pentru bug-uri descoperite printr-un scan automat cu un model de limbaj, toate corectate în versiunile 29.5, 30.4, 31.2 și 32.1. Două dintre ele permit unui peer rău intenționat să umple memoria nodului până la oprire, iar unul poate fi folosit pentru a opri cu ușurință orice nod care nu rulează pe Linux.

Bug-ul 1: date TCP urgente pe Windows, macOS și BSD

Pe alte platforme decât Linux, Bitcoin Core folosește un backend bazat pe select() pentru monitorizarea socket-urilor. Acesta urmărea condițiile excepționale chiar și când citirile de la un peer erau puse pe pauză, potrivit avizului publicat de Bitcoin Core.

Un peer putea trimite date TCP urgente (out-of-band) pentru a ocoli mecanismul de backpressure și a pune în coadă o cantitate nelimitată de date. În practică, un peer rău intenționat poate opri cu ușurință orice nod Windows, macOS sau BSD la care este conectat.

  • Severitate: medie, clasificat ca ușor de descoperit
  • Nodurile pe Linux nu sunt afectate, pentru că folosesc poll()
  • Identificat pe 23 octombrie, PR #36665 deschis de Antoine Poinsot pe 26 octombrie

Bug-ul 2: creștere lentă a memoriei prin peers pre-BIP31

Bitcoin Core pune în coadă anunțuri, în special INV-uri de tranzacții, pentru fiecare peer conectat, inclusiv cei puși pe pauză. Un peer care nu răspunde la un ping cu nonce în 20 de minute este deconectat, dar regula nu se aplică celor care nu suportă BIP 31, arată al doilea aviz.

Un atacator se poate preface că nu suportă BIP 31 și poate întârzia strategic citirea mesajelor, lăsând coada să crească fără limită.

  • Consum: până la 2 MB pe oră per peer inbound și 5 MB pe oră per peer outbound
  • Nodurile rulate cu -blocksonly sunt mult mai puțin afectate
  • Severitate medie; găsit de Loupe pe 15 septembrie și redescoperit independent de L0rinc pe 21 septembrie

Bug-ul 3: overflow în fișierele undo

Un miner poate produce blocuri valide cu date undo mult mai mari decât blocurile în sine, suficient cât un fișier rev*.dat să depășească 4 GiB. Pozițiile erau stocate pe 32 de biți, așa că datele noi le suprascriu pe cele vechi, iar la un reorg nodul nu mai poate citi datele undo și se oprește, explică al treilea aviz. Repornirea nu ajută, iar recuperarea necesită -reindex cu o versiune corectată.

Pe Windows și pe sistemele pe 32 de biți, limita este de 2 GiB și nu e nevoie de reorg: nodul nu mai poate scrie datele undo și se oprește la fiecare repornire.

  • Severitate: scăzută; exploatarea pe sisteme pe 64 de biți nu este practică
  • Atacatorul ar trebui să mineze câteva mii de blocuri, circa o lună din producția întregii rețele
  • Sistemele pe 32 de biți și nodurile cu blocurile stocate pe FAT32 rămân afectate și după fix
  • Raportat de Loupe pe 8 iulie, apoi independent de L0rinc (21 august) și Andrew Dorman (23 octombrie)

Cine le-a găsit și de ce sunt deja publice

Toate cele trei au fost descoperite printr-un scan automat cu LLM în cadrul Project Loupe, condus de Elias Rohrer la Spiral. Rezultatele au fost validate și transmise echipei de securitate Bitcoin Core de Gregory Sanders.

Politica Bitcoin Core definește vulnerabilitățile ușor de descoperit ca fiind cele găsite cu efort minim, de exemplu printr-un simplu prompt LLM. Pentru acestea, echipa publică o versiune de corecție pentru fiecare versiune majoră menținută, plus avizul, fără perioada standard de embargo.

În mod normal, bug-urile de severitate medie și mare sunt dezvăluite abia la două săptămâni după ce ultima versiune afectată iese din suport, adică la aproximativ un an de la prima versiune majoră cu fix.

Versiuni cu fix

Data lansării

31.2 și 32.1

27 octombrie 2026

29.5 și 30.4

28 octombrie 2026

Distribuie articol