Les nœuds Core Lightning peuvent continuer à planter après une mise à jour jusqu'à la suppression d'un déclencheur enregistré
Découvrez comment un défaut dans le logiciel Core Lightning peut provoquer le plantage des nœuds Bitcoin après une mise à jour, nécessitant une intervention manuelle pour résoudre efficacement le problème.

Défaut dans Core Lightning
Un défaut découvert dans Core Lightning, le logiciel utilisé pour le réseau de paiement Lightning de Bitcoin, peut provoquer le plantage d'un nœud au redémarrage, même après une mise à jour, car l'annonce malveillante qui a déclenché le problème reste stockée sur le disque. La divulgation du chercheur Nishant Bansal, le 24 octobre, identifie les versions v25.02 à v26.04 comme étant affectées.
Problème de redémarrage
Une fois l'annonce enregistrée, le redémarrage recharge le même déclencheur. Bansal précise que l'opérateur doit supprimer manuellement l'enregistrement problématique pour restaurer le nœud. Bitcoin Optech a souligné ce problème le 30 octobre, bien que le correctif préventif ait été disponible depuis plusieurs mois.
Correctif et vulnérabilité
Core Lightning a fusionné la PR #9082 le 24 avril et a intégré le correctif dans la version v26.04.1 le 25 avril. La divulgation d'octobre met en lumière un défaut dont le correctif préventif était déjà en place depuis avril. Les annonces de canal informent les nœuds des connexions dans le graphe de routage Lightning.
Dans ce cas, une annonce a désigné le même nœud, auparavant inconnu, comme les deux points de terminaison.
Le logiciel vulnérable a accepté cette annonce et l'a enregistrée dans son gossip_store sur disque avant de l'intégrer dans le graphe de routage. Ce dernier a ensuite tenté d'insérer ce nœud deux fois. Un garde-fou contre les doublons a interrompu gossipd, le composant gérant ces annonces, et Core Lightning a traité cet échec comme fatal pour l'ensemble du nœud.
Nouvelle vérification et solution
Le correctif vérifie désormais l'ordre des points de terminaison avant d'accepter une annonce. Il exige que l'ID du premier nœud soit strictement inférieur à celui du second, ce qui rejette également les ID égaux. Cela empêche l'entrée malformée d'être acceptée et stockée. La nouvelle vérification de validation s'applique aux annonces entrantes.
Cependant, le démarrage lit toujours les enregistrements déjà présents dans gossip_store, et la mise à niveau ne supprime pas l'enregistrement malveillant sauvegardé avant le plantage. La solution proposée par Bansal consiste à supprimer manuellement l'enregistrement malveillant de gossip_store.
Un simple nettoyage laisse également une installation vulnérable ouverte à un autre plantage.
La divulgation indique qu'un attaquant peut renvoyer la même annonce tant que la sortie de financement contrôlée par l'attaquant reste non dépensée. Bitcoin Optech note que les versions de Core Lightning antérieures à v25.02 pouvaient accepter et relayer de telles annonces sans planter elles-mêmes. Un attaquant n'avait donc pas besoin d'une connexion directe à chaque nœud vulnérable.
Recommandations et risques
Pour les opérateurs choisissant de mettre à niveau maintenant, la v26.04.1 marque le premier correctif pour ce défaut. Au 2 novembre, la dernière version du projet est la v26.06.9, publiée le 7 octobre, que les mainteneurs recommandent fortement d'installer.
Les temps d'arrêt comportent un risque de surveillance des paiements au-delà du simple service indisponible. Bansal avertit qu'un nœud hors ligne ne peut pas surveiller la chaîne pour un état de canal révoqué ou une demande de paiement limitée dans le temps qui doit être effectuée avant l'expiration. Manquer ces événements peut mettre des fonds en danger.