Mise à jour de sécurité de Duniter, corrigeant deux failles concernant l’accès aux piscines.
Cette version n’est pas nécessaire mais recommandée. Pas de resynchronisation a réaliser.
Télécharger Duniter 1.7.19
Bugs
En observant les trames WS2P, j’ai remarqué que les certifications (#1379) et les adhésions (#1380) étaient acceptées à plusieurs reprises dans la piscine d’un même nœud, plus précisément des documents réapparaissaient parfois dans les piscines après avoir été écrits en blockchain, ce qui est anormal.
La cause : dans les deux cas (certifications, adhésions) les piscines acceptaient des documents sans vérifier leur date de péremption. De ce fait, et via divers mécanismes, de vieux documents périmés pouvaient être proposés aux nœuds du réseau et se voir acceptés en piscine, puis répliqués par rebonds.
Conséquence
Une surcharge réseau inutile, car ces certifications et adhésions se voyaient répliquées sur tous les nœuds de façon régulière, plusieurs fois par heure. Également une utilisation du disque inutile, puisque les documents incriminés que j’ai repéré étaient tous déjà écrits en blockchain.
Enfin un vecteur d’attaque pour remplir les piscines, toutefois très limité car les nouveaux documents ont priorité sur les anciens. Par contre les nœuds pourraient se voir saturés par la réception de documents déjà connus.
Correction et verrouillage par un test
Ces bugs ont été reproduis dans des tests automatisés, ce qui une fois les correctifs appliqués, permet de verrouiller le comportement désiré.
À noter que j’ai également verrouillé le comportement pour les identités et transactions, mais il existait déjà le code de contrôle de validité de ces documents. Donc, pas de faille de ce côté-là.
Versions Windows et ARM
@jytou, peux-tu réaliser un build stp ?
Bonne soirée à tous.