Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Robots chiens Unitree - La backdoor que personne ne corrige

Par : Korben ✨
11 mai 2026 à 15:40

Si vous croisez un robot-chien Unitree dans un hall d'HLM, sur un parking, un chantier, ou en train de patrouiller dans votre ville, faut que vous sachiez 2 trucs quand même :

Un, n'importe qui peut le rooter en moins d'une minute avec son téléphone. Et de deux, le robot lui-même envoie en continu un flux chiffré vers un tunnel cloud opéré depuis la Chine. C'est en tout cas ce que Benn Jordan, musicien indépendant et chercheur amateur, vient de démontrer hier dans une enquête de 24 minutes qui fait, comme il le dit lui-même, un meilleur boulot que toute l'infrastructure cybersécurité du gouvernement américain.

Pour le hacker, suffit donc de se connecter au robot en Bluetooth, puis d'injecter une commande curl à la fin du mot de passe Wi-Fi, on éteint le toutou, on le rallume, et au reboot le robot exécute votre commande quand il active le Wi-Fi. C'est tout et c'est vraiment magique !! Pas besoin d'accès root physique donc mais juste un bon vieux téléphone et un Bluetooth pourri !

Le boss !

Alors vous pensez peut-être que ce n'est pas très grave parce que ces robots sont des gadgets mais c'est faux puisque les robots-chiens Unitree sont actuellement utilisés par les services de police de Pullman (Washington), Port St. Lucie (Floride) et Topeka (Kansas) et un peu partout ailleurs dans le monde.

Les Marines américains les déploient en test, certains armés de lance-roquettes, les forces chinoises leur sanglent diverses armes sur le dos depuis un moment et l'Ukraine s'en sert pour repérer des munitions non-explosées. Et dans le civil, ces robots circulent même dans des HLM d'Atlanta pour le compte de sociétés de surveillance privée...

En France, le tableau est un peu différent. Pas de déploiement confirmé par les forces de l'ordre ou l'armée pour l'instant. Chez nous, c'est Boston Dynamics Spot et l' E-Doggy d'Evotech (robot 100% français, utilisé au déminage pendant les JO 2024) qui tiennent ces marchés-là. Les Unitree restent encore dans les labos tels que l' INRIA Paris et le labo HUCEBOT de Nancy qui utilisent le Go2 pour leurs recherches en locomotion robotique.

En dehors de la recherche, le cas le plus avancé est celui d'Orano, qui a testé fin 2025 le G1 humanoïde d'Unitree sur son site nucléaire de Marcoule en partenariat avec Capgemini (c'est un humanoïde, pas un quadrupède, mais même fabricant, même firmware, mêmes questions). Côté distribution, INNOV8 Power est également partenaire officiel Unitree depuis VivaTech 2025 et INGEN Geosciences distribue la marque depuis 2020. Le réseau pour vendre ces robots à des boîtes de sécurité privées françaises est donc déjà bien en place.

Du coup quand un mec démontre qu'on peut en prendre le contrôle complet rapidement, ça mérite qu'on regarde ça d'un peu plus près...

Et quand je dis contrôle complet, c'est pas un excès de langage. Avec cet accès root, Benn Jordan a réussi à enregistrer, télécharger et live streamer l'audio et la vidéo captés par le robot. Sans authentification donc ni même sans passer par l'app officielle. C'est assez dingue... On peut même contrôler les mouvements du robot. Une belle merde donc !

Cette faille n'est d'ailleurs pas une nouveauté absolue puisque j'avais déjà couvert le hack BLE des humanoïdes Unitree en décembre dernier. Et ensuite rebelote en mars dernier avec deux nouvelles CVE sur le Go2, partiellement patchées. La répétition des conneries devient un peu lourdingue chez Unitree...

La deuxième partie de l'enquête, elle, atteint un autre niveau puisque Benn Jordan a entendu parler de rapports affirmant que d'autres robots Unitree contenaient une backdoor envoyant des données à des serveurs étrangers. Il a donc voulu vérifier ça lui-même.

Il a donc transformé un Raspberry Pi sous Linux en routeur avec le mode moniteur activé, et lancé BetterCap pour analyser chaque paquet sortant.

Et là, surprise, le robot refuse purement et simplement de s'authentifier. Le hic, c'est que quelque chose côté serveur cloud détecte que le routeur est anormal et bloque la connexion. En analysant un peu plus finement la connexion, il a remarqué que la première IP chopée au sniff pointait vers Odessa, en Ukraine... Vu qu'aucune doc fabricant ne mentionne ce point d'accès, le truc devient alors officiellement louche... Le robot semble savoir quand il est "analysé" et cette détection d'environnement anormal est précisément le truc qui transforme une affaire de faille classique en problème de sécurité nationale.

Benn Jordan a donc ensuite contourné ça avec un routeur de voyage standard avant de sniffer derrière les paquets, et il a fini par confirmer ce qu'on appelle officiellement la CVE-2025-2894 . Il s'agit d'un tunnel P2P préinstallé sur le Go1 qui se connecte automatiquement au démarrage à une plateforme appelée CloudSail, opérée par une boîte chinoise nommée Zhexi Technology.

Le truc est référencé dans MITRE depuis le printemps 2025, soit environ un an. En 2025, les chercheurs Andreas Makris et Kevin Finisterre ont même chopé la clé API de CloudSail et identifié près de 2000 robots vulnérables sur ce réseau, dont des unités installées au MIT, à Princeton, à Carnegie Mellon et à l'université de Waterloo.

Côté américain, la seule action gouvernementale connue suite à ça, a été une mise en garde des Marines US concernant l'usage de produits Unitree en opérations militaires. Rien d'autre.

Et là on arrive à un point de blocage assez brutal. Les failles démontrées par Benn (le hack Bluetooth, la prise de contrôle complète) et la backdoor CloudSail ne peuvent pas être corrigées en même temps, parce que les solutions se neutralisent mutuellement.

Pour boucher les failles de Benn, il faut passer par une mise à jour firmware officielle d'Unitree. Mais cette mise à jour ferme aussi l'accès root au système. Sans accès root, impossible de détecter ou bloquer le tunnel CloudSail de l'intérieur. Du coup, on a un robot sécurisé contre les hackers, mais des données qui filent quand même vers la Chine.

À l'inverse, si vous gardez le firmware actuel pour maintenir l'accès root (et donc la capacité de surveiller et bloquer CloudSail), les failles restent béantes. N'importe quel inconnu avec un téléphone peut alors prendre le contrôle complet de votre flotte de robots clébards. Bien sûr, couper Internet sur le robot évite les deux problèmes à la fois, mais le rend inutilisable dans la plupart des déploiements opérationnels.

Si vous avez un Unitree à la maison ou en entreprise, voilà la recommandation perso de Benn Jordan. Selon lui, plutôt que d'installer la dernière mise à jour, mieux vaut ne plus jamais mettre à jour le firmware (gardez en tête que c'est son avis radical, pas une bonne pratique standard). Parce qu'à la prochaine mise à jour, vous risquez de perdre la capacité de rooter votre propre robot, et avec elle la capacité de détecter, bloquer ou rediriger la backdoor.

Vous perdrez aussi la possibilité d'écrire manuellement des services qui empêchent les hackers d'exploiter les autres failles. En clair, sa meilleure défense contre Unitree, c'est de figer le firmware actuel.

Un Flipper Zero suffisait déjà à neutraliser un robot-chien de la concurrence, mais ici "couper" le robot de son fabricant pour s'en protéger, c'est un autre délire...

Source

Copy Fail - Une IA trouve la faille Linux que personne n'a vue

Par : Korben ✨
30 avril 2026 à 11:27

732 octets, c'est tout ce qu'il faut pour passer de simple utilisateur à root sur n'importe quel Linux non patché compilé depuis 2017, soit la quasi-totalité des kernels. Cette faille béante s'appelle Copy Fail (CVE-2026-31431), elle a été dénichée par Taeyang Lee de chez Theori avec leur outil d'audit IA Xint Code. Et comme elle vient d'être divulguée hier sur la liste oss-security et qu'en plus, ils ont fait un joli petit site qui explique tout comme ça fonctionne, je vais essayer de tout vous expliquer !

La faille elle-même est moche mais surtout, c'est un agent IA qui l'a sorti en une heure environ. C'est un bug que la communauté kernel a laissé passer durant près de 9 ans et qui se trouve dans le sous-système crypto.

En gros, le noyau Linux expose une interface réseau spéciale pour accéder aux opérations de chiffrement depuis un programme normal, sans droits particuliers.

Et depuis 2017, une optimisation dans ce mécanisme a créé une situation bizarre : un fichier en lecture seule sur le disque, disons un binaire système, peut se retrouver dans la zone de sortie d'une opération de chiffrement .C'est la zone que votre programme a le droit de modifier.

Il suffit alors d'enchaîner un appel système particulier (splice) pour écrire 4 octets au bon endroit, on répète ça en boucle, et on modifie progressivement un binaire système de votre choix comme par exemple /usr/bin/su.

Et voilà, vous êtes root !

Maintenant, si vous administrez un serveur, le plus propre reste de patcher le kernel via votre distro. En attendant le patch, la mitigation dépend de comment votre distro a compilé le module algif_aead, et là il y a deux situations bien distinctes.

Cas 1 - Distros où le module est chargeable dynamiquement (Ubuntu, Debian, Arch, etc.). Vous le bloquez avec :

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead

Cas 2 - Distros entreprise où le module est compilé en dur dans le kernel (RHEL, Rocky Linux, AlmaLinux, Oracle Linux, SUSE Enterprise...). Là, attention au piège : lsmod | grep algif_aead ne renvoie rien, mais ça ne signifie PAS que c'est désactivé. Le code est embarqué directement dans le vmlinuz, donc rmmod et la blacklist via /etc/modprobe.d/ sont sans effet (vous aurez "Module algif_aead is builtin"). La vraie mitigation passe par la kernel command line au boot :

sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
sudo reboot

Ça empêche l'init_call du module de tourner au démarrage. Vous vérifiez ensuite avec cat /proc/cmdline que le paramètre est bien pris en compte. Si vous voulez aller encore plus loin, il est aussi possible de bloquer toute la surface d'attaque AF_ALG via seccomp au niveau de chaque service exposé.

Le PoC est également trouvable. C'est un script Python (Python 3.10+ obligatoire pour os.splice) capable de faire tomber Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1 et SUSE 16 avec exactement le même code.

Dans une première version j'avais écrit que SELinux en mode enforcing par défaut bloquait l'exploit sur Fedora et RHEL. C'est inexact, et je remercie le lecteur qui m'a fait corriger. La policy SELinux par défaut de Fedora et RHEL autorise les contextes utilisateurs à créer des sockets AF_ALG, et l'exploit écrit directement dans le page cache kernel sans déclencher les hooks LSM file-based.

Donc SELinux enforcing ne bloque pas Copy Fail tel que livré par défaut. Le seul OS immune via SELinux est GrapheneOS , qui durcit la policy AOSP en réservant AF_ALG au seul process dumpstate. Ceux qui veulent tester sans Python peuvent aussi regarder du côté du port C indépendant , un exécutable statique de 1,7 Ko sans dépendance externe.

Les comparaisons avec Dirty COW et Dirty Pipe pleuvent, sauf que là où Dirty COW exigeait du timing précis et où Dirty Pipe demandait une manipulation spécifique du pipe-buffer, Copy Fail tape tout pareil sur 4 distribs majeures sans rien avoir à ajuster.

Et côté sévérité officielle, c'est du 7.8/10 donc c'est assez élevé !

Pour trouver cette faille, Xint Code, l'agent IA de Theori, n'a pas tâtonné à l'aveugle. Taeyang Lee lui a surtout glissé un prompt très précis qui lui demandait d'examiner tous les chemins accessibles depuis un programme utilisateur dans le sous-système crypto, en insistant sur le fait que splice() peut faire atterrir des fichiers en lecture seule dans des zones modifiables.

Une heure plus tard, Copy Fail sortait comme trouvaille critique ! Theori précise que le même scan a aussi remonté d'autres vulnérabilités encore sous embargo. Brrrrrr.... Tremblez simples mortel !

Ouais donc ouais, l'IA n'a pas remplacé l'expertise humaine, mais elle l'a démultipliée. Car Lee savait où regarder, et Xint Code a juste fait ce qu'il aurait fait mais en plus rapide ! C'est pas magique donc... Mais ça fait gagner du temps !

L'exploit est dispo ici sur le GitHub de Theori et côté impact, c'est costaud sur les hôtes multi-users et tout ce qui est environnements partagés. Je pense aux conteneurs Docker, aux clusters Kubernetes, aux pipelines CI/CD...etc.

Après si y'a que vous qui avez accès à votre serveur, c'est un peu moins critique car il faut forcément un accès local pour l'exploiter. C'est la même logique de chaînage que BlueHammer côté Windows , sauf qu'ici la marche jusqu'à root est encore plus petite.

Comment tester le PoC sur une machine de test ?

Si vous avez une VM sous Ubuntu 22.04 non patchée (kernel 5.15.x), voilà exactement ce qui se passe, testé en conditions réelles. Ne faites ça que sur une machine dont vous êtes propriétaire et où vous avez l'autorisation explicite.

Étape 1 - Cloner le PoC et vérifier le hash

manu@ubuntu:~$ git clone https://github.com/theori-io/copy-fail-CVE-2026-31431
Cloning into 'copy-fail-CVE-2026-31431'...
remote: Enumerating objects: 9, done.
Resolving deltas: 100% (1/1), done.

manu@ubuntu:~$ cd copy-fail-CVE-2026-31431 && sha256sum copy_fail_exp.py
a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9 copy_fail_exp.py

manu@ubuntu:~/copy-fail-CVE-2026-31431$ id
uid=1000(manu) gid=1000(manu) groups=1000(manu) ← utilisateur normal, pas root

Theori ne publie pas de hash officiel dans leur README, mais le SHA256 ci-dessus est celui du PoC tel qu'il est actuellement sur le repo. Si votre hash diffère, ne lancez pas le script.

Étape 2 - Lancer l'exploit

manu@ubuntu:~/copy-fail-CVE-2026-31431$ python3 copy_fail_exp.py

# L'exploit écrit 4 octets à la fois dans le page cache de /usr/bin/su
# via l'interface AF_ALG du kernel (authencesn + splice)
# Aucune race condition, aucun timing précis requis.

Mot de passe :

Le script utilise AF_ALG (l'interface crypto du kernel) combiné à splice() pour écrire un shellcode de 160 octets directement dans le page cache de /usr/bin/su, sans jamais toucher le disque. Il remplace ensuite le binaire patché pour exécuter un shell root.

Étape 3 - Shell root obtenu

root@ubuntu:~# id
uid=0(root) gid=1000(manu) groups=1000(manu)

root@ubuntu:~# whoami
root

root@ubuntu:~# uname -r
5.15.0-143-generic

# Kernel 5.15 vulnérable confirmé - Ubuntu 22.04 non patché

Notez le uid=0(root) alors qu'on est parti d'un uid=1000 sans aucun mot de passe, aucune race condition, aucun timing à ajuster. Brutal.

Étape 4 - Accès aux fichiers root-only

root@ubuntu:~# cat /etc/shadow | head -3
root:*:20271:0:99999:7:::
daemon:*:20271:0:99999:7:::
bin:*:20271:0:99999:7:::

root@ubuntu:~# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash

/etc/shadow est normalement illisible pour un utilisateur standard. Là, avec notre PoC en Python et zéro interaction supplémentaire, on y accède comme si de rien n'était. Sur un serveur multi-utilisateurs, c'est game over pour tous les comptes présents.

Sur un système patché, le script échoue proprement à l'étape 2 avec un message d'erreur. C'est aussi simple que ça pour vérifier votre exposition.

Bref, mettez à jour vos kernels ou désactivez le module fautif rapidement !

Source

Pack2theRoot - 12 ans d'accès root offert dans PackageKit

Par : Korben ✨
25 avril 2026 à 07:11

Si vous tournez sur Ubuntu, Debian, Fedora ou RockyLinux, sachez que votre démon PackageKit a passé presque 12 ans à laisser une porte ouverte vers votre compte root. La Deutsche Telekom Red Team vient en effet de publier Pack2theRoot (CVE-2026-41651), une faille notée 8.8/10 qui permet à n'importe quel utilisateur local de devenir root sans mot de passe.

Pour corriger le soucis, mettez à jour vers PackageKit 1.3.5 ou le backport de votre distro. Pour vérifier votre version, c'est dpkg -l | grep -i packagekit sous Debian/Ubuntu, ou rpm -qa | grep -i packagekit côté Fedora et Rocky. Si vous êtes en 1.3.4 ou en dessous, considérez la machine comme exploitable.

Le bug est une race condition classique. En fait PackageKit vérifie vos droits, valide la transaction, mais utilise des données qui ont eu le temps de changer entre les deux. Un appel pkcon install bien chronométré et n'importe quel paquet s'installe en root, sans prompt Polkit . La liste des distros confirmées vulnérables couvre Ubuntu 18.04 à 26.04, Debian Trixie, RockyLinux 10.1, Fedora 43 et tout RHEL avec Cockpit.

Le détail marrant encore une fois c'est la méthode de découverte. La Telekom Red Team a tout simplement dirigé Claude Opus d' Anthropic vers la base de code de PackageKit, et c'est cette session d'audit assistée par IA qui a sorti la vuln. Les LLM commencent donc à trouver des bugs subtils que les audits humains ont laissé passer pendant plus d'une décennie. Tant mieux, ça va faire grimper le niveau de sécurité de nombreux projets !

Cette faille ancienne me rappelle BitPixie et son contournement de BitLocker resté en sommeil durant 20 ans. Le pattern est toujours le même, à savoir un composant système installé partout, qui cache un bug tout bête depuis siiii longtemps que plus personne ne l'audite avec un œil neuf.

Bref, merci Claude ^^

Source

Une faille IndexedDB permettait de relier toutes vos identités Tor

Par : Korben ✨
23 avril 2026 à 08:12

Bon, les amis, si vous utilisez Tor Browser pour faire du sérieux, faut que vous sachiez un truc. Le bouton "New Identity", censé vous donner une nouvelle identité vierge à chaque clic... bah il laissait filer, jusqu'à il y a peu de temps, un identifiant stable tant que Firefox tournait.

Deux chercheurs de Fingerprint ont en effet trouvé comment une fonction toute bête du navigateur se transformait en empreinte unique de votre browser, partagée entre tous les sites que vous visitiez.

Il faut donc dès à présent faire la mise à jour vers Firefox 150 ou l'ESR 140.10.0 (la version long-terme utilisée par Tor Browser), ainsi que la dernière version de Tor Browser qui récupère le patch. Si vous voulez en savoir plus, la CVE c'est CVE-2026-6770 , classé comme sévérité modérée par Mozilla.

Le truc marche en vase clos mais traverse les murs.

Mais avant, IndexedDB c'est quoi ?

En gros c'est une mini-base de données que les sites web peuvent créer dans votre navigateur, pour stocker des trucs en local (du cache, des données offline, l'état d'une app web). Chaque site peut y ranger plusieurs bases nommées, et une petite fonction JavaScript indexedDB.databases() permet au site de demander la liste de ses bases.

Rien de foufou sur le papier. Sauf que dans Firefox en navigation privée, le navigateur renomme en coulisse chaque base avec un identifiant aléatoire (UUID), et range tout ça dans une seule grosse table interne. Et le gros problème, c'est que cette table est partagée entre tous les sites ouverts, et pas cloisonnée site par site.

Et là, ça devient croustillant puisque quand un site redemande la liste de ses bases, Firefox la renvoie sans la trier, dans un ordre qui dépend de la structure interne de cette table partagée. Du coup, deux sites totalement différents qui créent chacun seize bases dans le même ordre récupèrent exactement la même suite en retour. Pas l'ordre de création donc mais une permutation bizarre, genre g,c,p,a,l,f,n,d,j,b,o,h,e,m,i,k.

Je vous passe les détails mais ça fait dans les 17 000 milliards de combinaisons possibles. Donc largement de quoi distinguer votre navigateur parmi des millions, comme une empreinte digitale qui colle au doigt !

Et ce qui pique vraiment c'est que cet identifiant survit à la fermeture de toutes vos fenêtres privées. Tant que le process Firefox tourne en arrière-plan, l'ID reste. Un site peut donc vous reconnaître après que vous ayez fermé vos onglets privés, rouvert une session pensée comme neuve, et revisité le site. Pour le user, c'est une session fraîche alors que pour le serveur c'est clairement le même navigateur qu'il y a dix minutes.

Côté Tor Browser c'est pire puisque le bouton "New Identity" a pour mission explicite de couper tout lien avec ce que vous faisiez avant. Il ferme les onglets, efface l'historique, vide les cookies, tire de nouveaux circuits Tor. La promesse officielle, c'est "empêcher votre activité future d'être liée à ce qui précède".

Sauf que cette fameuse table interne, elle, ne bouge pas. Le New Identity reset donc tout sauf ce qu'il ignore. C'est comme changer de fringues dans le même ascenseur... en gardant le même parfum. Techniquement vous êtes différent, mais reconnaissable en deux secondes. Bref, c'est assez grave car un site capable d'exploiter la faille peut lier votre session avant-New-Identity à votre session après-New-Identity.

Tant qu'on n'a pas redémarré Firefox complètement, l'ID persiste.

Les chercheurs disent avoir fait une divulgation responsable, directement à Mozilla et au Tor Project avant publication donc c'est nickel, et les deux équipes ont poussé les patches avant de communiquer sur quoi que ce soit. Donc les utilisateurs à jour sont tout simplement protégés contre cette faille précise.

Après si vous êtes du genre parano, pensez à redémarrer complètement votre Tor Browser entre deux sessions vraiment sensibles. Ça coupe le process Firefox, ça vide cette fameuse table, et ça évite ce genre de surprise pour d'autres leaks similaires qu'on n'aurait pas encore trouvés.

A bon entendeur, salut !!

Source

❌
❌