{"id":6339,"date":"2026-10-30T12:04:39","date_gmt":"2026-10-30T12:04:39","guid":{"rendered":"https:\/\/bitcoinlive24.com\/news\/core-lightning-crash-annuncio-canale\/"},"modified":"2026-10-30T12:04:39","modified_gmt":"2026-10-30T12:04:39","slug":"core-lightning-crash-annuncio-canale","status":"publish","type":"post","link":"https:\/\/bitcoinlive24.com\/news\/core-lightning-crash-annuncio-canale\/","title":{"rendered":"Core Lightning: un messaggio falso mandava in crash i nodi"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Core Lightning<\/strong>, uno dei software per gestire un nodo della Lightning Network, aveva un difetto che permetteva di spegnere un nodo con un messaggio di rete costruito ad arte. Lo ha reso pubblico lo sviluppatore Nishant Bansal, che il 24 ottobre 2026 ha riproposto la divulgazione in un <a href=\"https:\/\/delvingbitcoin.org\/t\/cln-self-referential-channel-announcement-dos-disclosure\/2974\" target=\"_blank\" rel=\"noopener\">post su Delving Bitcoin<\/a>. Le versioni dalla 25.02 alla 26.04 andavano in crash davanti a un annuncio di canale che indicava lo stesso nodo come entrambi gli estremi, e ricadevano nel crash a ogni riavvio. La correzione \u00e8 nella versione 26.04.1, uscita il 25 aprile 2026.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La vicenda \u00e8 stata ripresa il 30 ottobre dalla newsletter <a href=\"https:\/\/bitcoinops.org\/en\/newsletters\/2026\/10\/30\/\" target=\"_blank\" rel=\"noopener nofollow\">Bitcoin Optech #429<\/a>. Qui si ricostruisce cosa scrive l&#8217;autore, confrontato con la correzione su GitHub e con la specifica BOLT, lo standard che descrive come dialogano i nodi Lightning.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/bitcoinlive24.com\/news\/core-lightning-crash-annuncio-canale\/#Core_Lightning_cosa_succedeva_con_lannuncio_di_canale_falso\" >Core Lightning: cosa succedeva con l&#8217;annuncio di canale falso<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/bitcoinlive24.com\/news\/core-lightning-crash-annuncio-canale\/#Perche_riavviare_il_nodo_non_bastava\" >Perch\u00e9 riavviare il nodo non bastava<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/bitcoinlive24.com\/news\/core-lightning-crash-annuncio-canale\/#Quanto_costava_lattacco\" >Quanto costava l&#8217;attacco<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/bitcoinlive24.com\/news\/core-lightning-crash-annuncio-canale\/#Dalla_segnalazione_alla_divulgazione_la_cronologia\" >Dalla segnalazione alla divulgazione: la cronologia<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/bitcoinlive24.com\/news\/core-lightning-crash-annuncio-canale\/#Come_e_stato_trovato_e_cosa_fare\" >Come \u00e8 stato trovato e cosa fare<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/bitcoinlive24.com\/news\/core-lightning-crash-annuncio-canale\/#Domande_frequenti_sulla_falla_di_Core_Lightning\" >Domande frequenti sulla falla di Core Lightning<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Core_Lightning_cosa_succedeva_con_lannuncio_di_canale_falso\"><\/span>Core Lightning: cosa succedeva con l&#8217;annuncio di canale falso<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I nodi Lightning conoscono la mappa dei canali grazie ai messaggi di gossip della specifica BOLT 7. Un messaggio <code>channel_announcement<\/code> nomina i due nodi che gestiscono il canale, chiamati <code>node_id_1<\/code> e <code>node_id_2<\/code>. La specifica chiedeva a chi lo invia di ordinarli in modo che il primo fosse il minore in ordine lessicografico, ma non diceva nulla a chi lo riceve: lo ricorda la <a href=\"https:\/\/github.com\/lightning\/bolts\/pull\/1333\" target=\"_blank\" rel=\"noopener\">proposta BOLTs #1333<\/a>, che scrive di aver richiesto l&#8217;ordine per chi scrive e di averlo omesso per chi legge.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Secondo Bansal, Core Lightning non verificava che i due identificativi fossero diversi. Un annuncio con lo stesso nodo da entrambe le parti, firmato e collegato a un output 2-di-2 non speso, superava i controlli e veniva scritto sul disco, nel file <code>gossip_store<\/code>. Quando <code>gossipd<\/code>, il processo che gestisce il gossip, lo caricava nel grafo in memoria, aggiungeva il nodo due volte e faceva scattare una verifica interna contro i duplicati. Il processo si fermava e, poich\u00e9 <code>lightningd<\/code> considera il fatto grave, si spegneva l&#8217;intero nodo.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Versione di Core Lightning<\/th><th>Comportamento con l&#8217;annuncio autoreferenziale<\/th><\/tr><\/thead><tbody><tr><td>Prima della 25.02<\/td><td>Lo accetta e lo inoltra, senza crash: la tabella dei nodi ammetteva duplicati<\/td><\/tr><tr><td>Dalla 25.02 alla 26.04<\/td><td>Crash di <code>gossipd<\/code> e dell&#8217;intero nodo, ripetuto a ogni riavvio<\/td><\/tr><tr><td>Dalla 26.04.1<\/td><td>Annuncio rifiutato: <code>node_id_1<\/code> deve essere strettamente minore di <code>node_id_2<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Fonte della tabella: il <a href=\"https:\/\/delvingbitcoin.org\/t\/cln-self-referential-channel-announcement-dos-disclosure\/2974\" target=\"_blank\" rel=\"noopener\">post di Bansal<\/a>, per il comportamento delle versioni, e la <a href=\"https:\/\/github.com\/ElementsProject\/lightning\/releases\/tag\/v26.04.1\" target=\"_blank\" rel=\"noopener\">release v26.04.1<\/a> per il rifiuto dell&#8217;annuncio; il dettaglio \u00abstrettamente minore\u00bb \u00e8 nel post di Bansal e in Optech.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Perche_riavviare_il_nodo_non_bastava\"><\/span>Perch\u00e9 riavviare il nodo non bastava<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il nodo non si riprende da solo perch\u00e9 l&#8217;annuncio finisce sul disco prima di essere caricato. Al riavvio <code>gossipd<\/code> rilegge lo stesso record e si ferma di nuovo, quindi il nodo resta spento finch\u00e9 l&#8217;operatore non cancella il record a mano. Secondo l&#8217;autore, aggiornare il software da solo non elimina un record gi\u00e0 memorizzato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un nodo fermo non controlla la blockchain. Bansal avverte che in quel periodo pu\u00f2 perdere la trasmissione di una commitment revocata da parte di un peer (la versione vecchia di un canale, che un partner scorretto potrebbe pubblicare) o un HTLC (pagamento in sospeso) da reclamare prima della scadenza, con fondi a rischio. Dopo la pulizia, aggiunge, l&#8217;attaccante pu\u00f2 rimandare lo stesso annuncio senza altri costi finch\u00e9 l&#8217;output resta non speso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Quanto_costava_lattacco\"><\/span>Quanto costava l&#8217;attacco<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il costo, scrive l&#8217;autore, si limitava alle commissioni on-chain. L&#8217;attaccante finanzia un output P2WSH 2-di-2 di cui controlla entrambe le chiavi, costruisce un annuncio con un nuovo identificativo di nodo come entrambi gli estremi e lo firma con quella chiave e con le due chiavi di finanziamento. Aspetta che l&#8217;output abbia 6 conferme, poi lo invia al bersaglio dopo l&#8217;handshake BOLT 8 e lo scambio dei messaggi <code>init<\/code>. I fondi restano sotto il suo controllo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Non serve collegarsi a ogni vittima. Bansal e Optech osservano che le versioni di Core Lightning precedenti alla 25.02 accettano e inoltrano un annuncio simile senza andare in crash, quindi possono portarlo a nodi vulnerabili che l&#8217;attaccante non raggiunge direttamente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Dalla_segnalazione_alla_divulgazione_la_cronologia\"><\/span>Dalla segnalazione alla divulgazione: la cronologia<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Data<\/th><th>Evento<\/th><\/tr><\/thead><tbody><tr><td>23 aprile 2026<\/td><td>Segnalazione privata a Core Lightning<\/td><\/tr><tr><td>24 aprile 2026<\/td><td>Correzione unita al codice (<a href=\"https:\/\/github.com\/ElementsProject\/lightning\/pull\/9082\" target=\"_blank\" rel=\"noopener\">PR #9082<\/a>)<\/td><\/tr><tr><td>25 aprile 2026<\/td><td>Rilascio della <a href=\"https:\/\/github.com\/ElementsProject\/lightning\/releases\/tag\/v26.04.1\" target=\"_blank\" rel=\"noopener\">v26.04.1<\/a><\/td><\/tr><tr><td>4 maggio 2026<\/td><td>La specifica BOLT 7 aggiunge il requisito per chi riceve (<a href=\"https:\/\/github.com\/lightning\/bolts\/pull\/1333\" target=\"_blank\" rel=\"noopener\">BOLTs #1333<\/a>)<\/td><\/tr><tr><td>24 ottobre 2026<\/td><td>Divulgazione pubblica da parte di Bansal<\/td><\/tr><tr><td>30 ottobre 2026<\/td><td>La newsletter Bitcoin Optech #429 la riassume<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Le date di segnalazione sono quelle dichiarate da Bansal; quelle di correzione, rilascio e specifica risultano dalle pagine GitHub. Le note della v26.04.1 presentano la modifica come rispetto della specifica BOLT, che evita la corruzione del gossip store e lo stress sui lettori, senza parlare di vulnerabilit\u00e0. La descrizione come attacco DoS (denial of service, negazione del servizio) arriva con la divulgazione di ottobre.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Come_e_stato_trovato_e_cosa_fare\"><\/span>Come \u00e8 stato trovato e cosa fare<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il difetto \u00e8 emerso da un fuzz target, un programma che manda al software messaggi validi e malformati per farlo cedere. Quello per il gossip di Core Lightning \u00e8 stato proposto poi con la <a href=\"https:\/\/github.com\/ElementsProject\/lightning\/pull\/9115\" target=\"_blank\" rel=\"noopener\">PR #9115<\/a>: un annuncio autoreferenziale generato dal fuzzer ha fatto scattare la verifica sui duplicati, e la prova su un nodo di test ha mostrato il crash ripetuto al riavvio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chi gestisce un nodo Core Lightning dovrebbe passare all&#8217;ultima versione, che al 30 ottobre 2026 \u00e8 la <a href=\"https:\/\/github.com\/ElementsProject\/lightning\/releases\/tag\/v26.06.9\" target=\"_blank\" rel=\"noopener\">v26.06.9<\/a>, uscita il 7 ottobre 2026. Tra le lezioni indicate da Bansal ci sono due regole di progettazione: validare gli input non fidati prima di salvarli e controllare sul lato ricevente ci\u00f2 che la specifica impone a chi invia. BitcoinLive24 aveva gi\u00e0 scritto di <a href=\"https:\/\/bitcoinlive24.com\/news\/core-lightning-attacchi-nodi-aggiornamento\/\" target=\"_blank\" rel=\"noopener\">un altro avviso di sicurezza di Core Lightning<\/a> e delle <a href=\"https:\/\/bitcoinlive24.com\/news\/eclair-lightning-falle-dos-nodi-aggiornamento\/\" target=\"_blank\" rel=\"noopener\">due falle DoS di Eclair<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bitcoinlive24.com\" target=\"_blank\" rel=\"noopener\">Scarica l&#8217;app BitcoinLive24<\/a> per ricevere le novit\u00e0 sulla sicurezza della Lightning Network.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Domande_frequenti_sulla_falla_di_Core_Lightning\"><\/span>Domande frequenti sulla falla di Core Lightning<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Quali versioni di Core Lightning erano vulnerabili?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dalla 25.02 alla 26.04, secondo il post di Bansal. La correzione \u00e8 nella v26.04.1 del 25 aprile 2026: chi ha quella versione o una successiva ha la correzione.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Basta aggiornare per risolvere se il nodo \u00e8 gi\u00e0 in crash?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No: l&#8217;autore precisa che l&#8217;aggiornamento non cancella il record gi\u00e0 salvato nel gossip store, che va rimosso a mano dall&#8217;operatore.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L&#8217;attacco costava molto?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Secondo Bansal, no: bastava un output 2-di-2 controllato dall&#8217;attaccante, quindi il costo erano solo le commissioni on-chain, e i fondi restavano nelle sue mani.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Anche gli altri software Lightning sono coinvolti?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le fonti consultate riguardano solo Core Lightning. La modifica alla specifica BOLT 7 aggiunge per\u00f2 lo stesso requisito sull&#8217;ordine degli identificativi anche per chi riceve; le fonti non indicano per\u00f2 altre implementazioni vulnerabili.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Core Lightning dalla 25.02 alla 26.04 andava in crash con un annuncio di canale falso: cosa succedeva, la cronologia e come aggiornare.<\/p>\n","protected":false},"author":4,"featured_media":6119,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[608],"tags":[],"class_list":["post-6339","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novita"],"_links":{"self":[{"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/posts\/6339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/comments?post=6339"}],"version-history":[{"count":0,"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/posts\/6339\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/media\/6119"}],"wp:attachment":[{"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/media?parent=6339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/categories?post=6339"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitcoinlive24.com\/news\/wp-json\/wp\/v2\/tags?post=6339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}