
Avis et analyse technique de CVE-2026-15469, une clé privée RSA-512 codée en dur pour le groupe maillé dans les routeurs TP-Link Deco, incluant la cause racine, l'impact et la méthodologie du PoC pour la recherche défensive.
Clé privée de groupe maillé codée en dur — TP-Link Deco XE75 / XE5300 / WE10800
Une clé privée de groupe maillé RSA-512 partagée est intégrée au firmware, permettant à un attaquant adjacent au LAN d'usurper un nœud maillé de confiance, de réécrire la configuration, de flasher un firmware non signé et de pivoter sur l'ensemble du maillage.
English · 한국어
| Champ | Valeur |
|---|---|
| ID CVE | CVE-2026-15469 |
| Faiblesse | CWE-321 — Utilisation d'une clé cryptographique codée en dur |
| Schéma d'attaque | CAPEC-115 — Contournement d'authentification |
| Sévérité | 7.7 — ÉLEVÉE (CVSS 4.0) |
| Vecteur | AV:A/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L |
| CNA / Assigneur | TP-Link Systems Inc. |
| Publié | 2026-08-24 |
| Corrigé dans | 1.5.0 Build 20260603 et versions ultérieures |
| Crédit | Junsung Ahn (découvreur) |
Module concerné : mesh. Analysé à l'origine sur ver1.3.1 Build 20251023 rel.43624.
Le protocole maillé Deco authentifie les nœuds AP ↔ RE (satellite) avec une clé de groupe RSA stockée dans la partition group-info (fw_data/user_data/group-info, partition UBI 27). La clé RSA-512 complète — y compris les composants privés d, p et q — est intégrée dans l'image du firmware, et la même clé ainsi que le même ID de groupe statique sont livrés dans chaque unité de chaque modèle concerné.
Étant donné que la clé est privée, identique sur tous les appareils et extractible hors ligne à partir d'une image de firmware que n'importe qui peut télécharger, un attaquant n'a jamais besoin d'un identifiant spécifique à l'appareil. La possession de la clé seule suffit à satisfaire la passerelle d'authentification maillée (sync_slave_check dans discover.lua).
Le transport qui atteint cette passerelle ne fournit aucun secret supplémentaire :
tmpsvr écoute sur UDP 20002 (TDP) et TCP 20002 (TMP).opcode_whitelist est absent de la configuration /etc/config/firewall par défaut, donc tous les opcodes sont distribués sans filtrage.Une fois l'authentification réussie avec la clé extraite, les opérations sensibles sont accessibles sans authentification secondaire :
Résultat net : un attaquant non authentifié, adjacent au LAN, peut usurper un nœud maillé de confiance, réécrire la configuration de l'appareil et du maillage, flasher un firmware arbitraire et compromettre chaque nœud du maillage — sans accès physique.
sync_slave_check en déchiffrant le défi de groupe RSA avec la clé extraite.uci_apply), un flash de firmware non signé (SYNC_FIRMWARE + SYNC_UPGRADE), ou un pivot sur tout le maillage (forward_tmp_request).L'analyse complète du protocole et de la chaîne d'appels se trouve dans docs/technical-analysis.md ; la méthodologie de reproduction est dans docs/poc-methodology.md.
1.5.0 Build 20260603 ou une version ultérieure à partir des pages de téléchargement officielles de TP-Link (ci-dessous).tmpv2 v2.0) : le canal de contrôle passe derrière Dropbear SSH sur le port 20001 avec une poignée de main ASSOC et des jetons UUID par session, et tmpsvr se lie uniquement à 127.0.0.1. La validation statique du correctif est dans docs/patch-validation.md.Ce dépôt est publié après coordination avec le fournisseur et la sortie d'un correctif. Le matériel de clé privée RSA-512 réellement codé en dur et l'ID de groupe statique sont expurgés partout (affichés comme [REDACTED …]) pour empêcher l'exploitation directe des appareils qui n'ont pas encore été mis à jour. Les documents décrivent la structure de la vulnérabilité, la cause racine et la méthodologie de reproduction à des fins défensives et éducatives ; ils ne fournissent pas de matériel de clé d'exploitation clé en main.
La documentation et l'analyse sont sous licence CC BY 4.0 · © 2026 Junsung Ahn
| Produit | Versions affectées | Corrigé dans |
|---|
| TP-Link Deco XE75 v3 | < 1.5.0 Build 20260603 | 1.5.0 Build 20260603 |
| TP-Link Deco XE5300 v3.6 | < 1.5.0 Build 20260603 | 1.5.0 Build 20260603 |
| TP-Link Deco WE10800 v3.6 | < 1.5.0 Build 20260603 | 1.5.0 Build 20260603 |
| Opération | Chemin | Effet |
|---|
| Réécriture de configuration | inspect_and_save_subconfig → uci_apply | Remplacement complet de l'UCI — pare-feu, DNS, routage, identifiants administrateur |
| Flash de firmware non signé | SYNC_FIRMWARE + SYNC_UPGRADE | Aucune vérification de signature RSA/ECDSA, seulement un MD5 fourni par l'attaquant → porte dérobée root persistante |
| Pivot sur tout le maillage | forward_tmp_request | Relayer n'importe quel opcode vers chaque RE en utilisant les identifiants administrateur du routeur |
| Envoi de configuration en masse | SYNC_CONFIG | Réécrire la partition nvram user-config des satellites |
| Énumération de la topologie | fetch_subconfig | Lire toutes les IP des nœuds, les versions de firmware/config, les rôles |
| Date | Étape |
|---|
| 2025-10-23 | Build de firmware vulnérable analysé (ver1.3.1 Build 20251023 rel.43624) |
| 2026-03-19 | Firmware de correctif bêta du fournisseur publié (ver1.4.999, rel57690 / rel57838), validé statiquement |
| 2026-06-03 | Build de version corrigée (1.5.0 Build 20260603) |
| 2026-07-10 | CVE-2026-15469 réservé |
| 2026-08-24 | CVE-2026-15469 publié par TP-Link (CNA) |
| English | 한국어 |
|---|
| Analyse technique | technical-analysis.md | technical-analysis.ko.md |
| Méthodologie PoC | poc-methodology.md | poc-methodology.ko.md |
| Validation du correctif | patch-validation.md | patch-validation.ko.md |