EN
en direct

Le protocole réseau de Radicle envoie les dépôts privés en clair et laisse usurper l’identité des nœuds

Le 23 septembre 2026, Radicle a révélé que son protocole pair-à-pair — présent dans toutes les versions jamais publiées — transporte les données en clair et accepte l’usurpation d’identité des nœuds dans la poignée de main. Quiconque utilise des dépôts privés doit cesser de les servir et considérer comme divulgué tout ce qui a déjà transité sur le réseau.

Un tube pneumatique en verre reliant deux machines sombres, un message plié visible à l’intérieur du tube, un cachet de cire ambre posé sur le bord.

23 septembre 2026. Le projet Radicle, la forge de code décentralisée pair-à-pair bâtie sur Git, révèle deux failles critiques dans son protocole réseau. Toutes les versions. Les deux défauts touchent toutes les versions publiées à ce jour. Transport, pas stockage. Ils siègent dans la couche de transport entre nœuds, pas dans le modèle de données : les objets Git et les Signed References restent vérifiés, donc un attaquant ne peut pas falsifier du code ni des identités. Pourquoi c’est important : ce qui est cassé, c’est la confidentialité et l’authentification — et la seule correction possible est une migration cassante, sans rétrocompatibilité.

Deux failles qui se renforcent l’une l’autre

La première faille est simple à décrire : le trafic entre deux nœuds Radicle n’est ni chiffré ni authentifié. Les objets transitent en clair. N’importe quel acteur placé sur le chemin réseau entre deux nœuds qui se synchronisent peut lire tout ce qu’ils échangent. Ce problème a été signalé le 24 juin 2026 par Konstantinos Maninakis, qui en a publié l’analyse sur son blog ; Radicle l’a remonté en amont dans le dépôt netservices.rs de cyphernet-labs.

La seconde faille touche la poignée de main. L’authentification de pair est défectueuse et permet l’usurpation : un attaquant peut se connecter à un nœud en présentant un Node ID qui n’est pas le sien. Or les dépôts privés ne sont partagés qu’avec une liste blanche de Node ID. Un attaquant qui falsifie un identifiant autorisé peut donc récupérer un dépôt privé directement, sans même être sur le chemin réseau. Ce second défaut a été signalé le 12 août 2026 par le chercheur cryptocode, avec une correction proposée en amont dans cyphernet.rs.

Pris séparément, chaque défaut a ses limites. Pour usurper un Node ID autorisé, il faut d’abord le connaître, et la liste blanche n’est pas publique : un attaquant hors du chemin réseau doit deviner. C’est combinés que les deux failles deviennent réellement exploitables. Un attaquant sur le chemin voit les Node ID aux deux extrémités d’une connexion — tous deux normalement présents dans la liste blanche. Il lit ce qui est échangé pendant qu’il observe, puis réutilise un Node ID qu’il a vu pour aspirer l’intégralité du dépôt à la demande.

L’intégrité tient, la confidentialité tombe

Il faut être précis sur ce qui reste sûr, parce que c’est contre-intuitif. La signature des Signed References détecte toujours une modification d’objet en transit. Si un attaquant altère un fichier au passage, le nœud récepteur le voit et rejette l’objet. La menace n’est donc pas l’empoisonnement de code, mais la lecture. Pour un dépôt public, la fuite d’information est secondaire — le contenu est public par définition. Pour un dépôt privé, c’est l’inverse : le chiffrement du transport est précisément la garantie qui s’effondre.

C’est aussi pourquoi les contournements classiques ne suffisent pas. Radicle le dit noir sur blanc dans son avis : passer par Tor, I2P, un VPN ou tout autre réseau superposé ne protège pas. Ces surcouches cachent le trafic à un observateur sur le chemin, ce qui réduit la surface d’attaque, mais elles n’empêchent pas l’usurpation de pair. Une attaque ciblée et sophistiquée peut quand même conduire à l’exfiltration du contenu d’un dépôt privé. La menace réaliste, c’est quiconque se trouve sur le chemin entre votre nœud et celui avec lequel il se synchronise — et aucun réglage ni liste blanche ne protège contre elle.

Ce qu’il faut faire maintenant

Le correctif n’existe pas encore, et Radicle publie volontairement l’avis avant lui : aucun correctif ultérieur ne peut annuler une exposition qui a déjà eu lieu. Les consignes sont donc défensives, immédiates et sans ambiguïté.

Cesser de servir les dépôts privés. La commande rad block <RID> pose un blocage explicite sur un dépôt, plus sûr que rad unseed : si vous avez changé la politique d’ensemencement par défaut de block vers allow, un unseed laisse votre nœud continuer à servir le dépôt, alors qu’un block est vérifié en premier.

bash
# Lister les dépôts privés en stockage
rad ls --private --all

# Bloquer explicitement l’ensemencement de chaque dépôt privé
rad block <RID>

# Ou arrêter complètement le nœud
rad node stop

Considérer comme divulgué tout ce qui a transité. Chaque dépôt privé déjà synchronisé sur le réseau doit être traité comme exposé. S’il contenait des identifiants, des clés ou des jetons non chiffrés, il faut les faire tourner.

Prévenir les pairs autorisés. Le blocage n’atteint pas les copies déjà récupérées par les pairs : leurs nœuds portent les mêmes défauts. Il faut leur demander de bloquer le dépôt à leur tour. Et le blocage n’efface pas votre copie locale — elle reste dans $(rad path)/storage/, ce qui est souhaitable si vous voulez reprendre l’ensemencement une fois la version corrigée sortie.

Une migration cassante, et ce qu’elle dit du design

La raison pour laquelle il n’y a pas de correctif rétrocompatible tient à l’absence de négociation de version dans le protocole actuel : la correction est incompatible sur le fil, donc il faut casser. Radicle annonce remplacer son protocole réseau — aujourd’hui un protocole maison bâti sur Noise — par iroh, une pile réseau pair-à-pair open source construite sur des standards ouverts. Au-delà des failles, iroh apporte la traversée de NAT, ce qui améliore la fiabilité et la résilience du réseau.

Cette bascule partitionnera le réseau en deux grappes qui ne peuvent plus se parler : les nœuds migrés et les nœuds non migrés. Le projet s’efforce de limiter la casse au réseau, en conservant la disposition du stockage pour adoucir la montée de version. C’est le prix d’une décision de conception prise à l’origine : ne pas négocier de version de protocole revient à se condamner à une rupture nette le jour où le protocole doit changer.

Verdict

Si vous hébergez des dépôts privés sur Radicle, cessez immédiatement de les ensemencer — rad block sur chacun —, faites tourner tous les secrets qu’ils contiennent et considérez tout ce qui a déjà synchronisé comme divulgué : aucun correctif futur ne remontera le temps. Si vous synchronisez les dépôts privés d’autrui, appliquez la même consigne et prévenez les autres pairs, car leurs nœuds sont tout aussi vulnérables que le vôtre. Si vous n’utilisez Radicle que pour du code public, le risque est faible — l’intégrité des objets est préservée par les Signed References — mais surveillez l’annonce de la version majeure, car la migration vers iroh vous obligera à mettre à jour pour rester connecté au réseau. La leçon dépasse Radicle : un protocole pair-à-pair sans chiffrement ni négociation de version ne se répare pas, il se remplace.

Références

Le brief cyber, chaque mardi

Les failles qui comptent, les correctifs à appliquer, en dix minutes de lecture.

Pas de spam. Désinscription en un clic.
à lire ensuite

Sur le même sujet

Homa divise par treize la latence des messages courts que TCP inflige au datacenter

Le 1er octobre 2026, John Ousterhout, professeur émérite de Stanford, défend Homa, un protocole de transport à messages dont la latence p99 sur les messages courts tombe à 92 microsecondes contre 1,2 milliseconde pour TCP sur un réseau à 100 Gbit/s. Évaluez-le sur les liaisons datacenter où chaque milliseconde immobilise un GPU, mais mesurez le coût d’adoption avant de remplacer quoi que ce soit.

La racine DNS change de clé le 11 octobre et coupera les résolveurs figés

Le 11 octobre 2026, la zone racine DNS remplace sa clé de signature KSK-2017 par KSK-2024, la deuxième rotation de l’histoire depuis la signature de la racine en 2010. Tout résolveur validant DNSSEC qui ne fait pas déjà confiance à la nouvelle clé cessera de résoudre l’intégralité des noms : l’enjeu est de repérer, avant dimanche, les résolveurs dont l’ancre de confiance a été figée.

← Retour au fil

Tapez au moins deux caractères.

↑ ↓ naviguer ↵ ouvrir esc fermer