Radicle expone fallas críticas que revelan repositorios privados en texto plano
La red de colaboración peer‑to‑peer Radicle ha revelado dos vulnerabilidades que eliminan la confidencialidad de todas sus versiones, permitiendo a atacantes leer datos privados y suplantar nodos.

Radicle, la red de colaboración de código que funciona sin servidores centralizados, ha divulgado dos defectos críticos en su protocolo de capa de transporte que borran la confidencialidad de todas las versiones de nodo existentes. Las fallas permiten que un atacante en el camino de la red lea datos de repositorios privados en texto claro y se haga pasar por nodos en listas de acceso.
El problema surge porque el diseño del protocolo carece de campos de negociación de versión. Los mantenedores de proyectos no pueden desplegar una mitigación compatible hacia atrás, por lo que se aconseja detener inmediatamente las operaciones de repositorios privados en la capa pública hasta que salga una revisión arquitectónica mayor.
Descripción técnica
Kostis Maninakis, ingeniero independiente, detectó que Radicle ejecuta un handshake del Noise Protocol Framework, pero el daemon radicle-node descarta inmediatamente los estados de cifrado resultantes. El patrón de handshake XK de Noise se realiza en tres mensajes sobre TCP sin cifrado. Los pares intercambian claves efímeras y públicas, derivan dos claves de sesión y, después de la división (split), las claves quedan en memoria sin uso. Todo el tráfico posterior –gossip, tablas de ruteo y paquetes Git— se envía por el socket TCP sin cifrar.
Además, el handshake contiene una falla de validación de autenticación: un atacante puede suplantar un ID de nodo permitido al presentar un ID falsificado. Si el atacante captura un ID válido en claro y luego se hace pasar por él, puede descargar repositorios privados directamente del nodo semilla.
El núcleo del problema es la separación entre la configuración del transporte y el despacho de marcos en el repositorio Rust subyacente, Heartwood. Durante la inicialización, el motor de estado procesa el handshake Noise, pero la capa de enmarcado omite las rutinas de cifrado al escribir. Un análisis de tráfico capturado entre dos nodos locales muestra marcos de transporte sin etiquetas de autenticación ni cifrado de flujo.
La ausencia de MACs permite que dispositivos intermedios graben o reordenen paquetes. Los objetos Git siguen siendo íntegros porque son direccionados por contenido y firmados, pero la confidencialidad del transporte desaparece.
Recomendaciones inmediatas
- Tratar cualquier repositorio privado que se haya clonado, empujado o sembrado a través de conexiones clearnet como comprometido.
- Rotar tokens criptográficos, credenciales y secretos de producción almacenados en dichos repositorios.
- Restringir las operaciones de nodo a redes aisladas: usar túneles WireGuard o reenvío SSH.
- Configurar el flag de proxy global hacia nodos Tor no resuelve la exposición, ya que el tráfico sale en claro.
- Mantener las conexiones solo a través de servicios onion autenticados o demonios I2P.
Los mantenedores han confirmado que abandonarán el transporte Noise y migrarán a Iroh, una pila de networking peer‑to‑peer basada en QUIC y TLS. Como las versiones actuales carecen de campos de negociación de protocolo, introducir un parche de enmarcado cifrado en la estructura actual rompería las conexiones. La transición a Iroh romperá la compatibilidad hacia atrás, creando una partición de red entre instalaciones 1.x y las nuevas versiones.
Para más detalles, revisa la publicación original de la divulgación y el repositorio de Kostis.
La divulgación de vulnerabilidad | Perfil de Kostis Maninakis

