REPLACEMENT CYCLING
Attaque qui exploite les règles de remplacement de transactions (RBF) pour retirer une transaction non confirmée des mempools des nœuds complets, sans qu’aucune transaction alternative ne prenne sa place. Elle affecte principalement les protocoles multi-parties qui dépendent du CPFP pour augmenter les frais, comme le Lightning Network. Cette vulnérabilité a été divulguée publiquement en octobre 2023 par Antoine Riard (CVE-2023-40231 à CVE-2023-40234).
L’attaque se déroule en plusieurs étapes cycliques. Bob diffuse sa transaction de sortie unilatérale accompagnée d’une transaction enfant pour le fee bumping via CPFP. Mallory répond en diffusant sa propre transaction de sortie concurrente, qui entre en conflit avec celle de Bob puisqu’elles dépensent les mêmes entrées, accompagnée d’une transaction enfant aux frais supérieurs. La transaction de Bob est remplacée dans les mempools. Mallory remplace alors sa propre transaction enfant par une transaction sans rapport avec le canal, ce qui provoque l’éviction de sa transaction de sortie. La mempool ne contient alors plus aucune transaction de règlement. Bob peut rediffuser, mais Mallory répète le cycle à chaque tentative, chaque itération lui coûtant un nouvel UTXO ou un taux de frais supérieur.
Cette attaque est particulièrement dangereuse pour les HTLC du Lightning Network, qui doivent être résolus dans une fenêtre temporelle définie. Si l’attaquant empêche la victime de confirmer sa transaction avant l’expiration du délai, il peut s’approprier les fonds. Les implémentations du Lightning Network ont déployé plusieurs mesures d’atténuation : la rediffusion agressive et fréquente des transactions, la surveillance de la mempool locale pour détecter les préimages avant leur éviction, et l’augmentation des délais d’expiration CLTV (cltv_expiry_delta).