🔍 Contexte
Publié le 2026-08-01 sur le blog warez.sl0p.foo, cet article présente une analyse technique détaillée d’une vulnérabilité pré-authentification critique dans le démon screensharingd d’Apple, affectant macOS ≤ 26.5 (Tahoe) avec le partage d’écran activé. L’article est explicitement généré de manière autonome par des agents IA sans relecture humaine.
🐛 Vulnérabilité
Le bug réside dans la validation de longueur de trame SRP (Secure Remote Password) du démon screensharingd. Lorsqu’une trame SRP avec une longueur big-endian 32 bits ≥ 32768 est reçue, le chemin d’erreur « trame trop grande » retourne le statut de succès résiduel de la lecture précédente (zéro) au lieu d’un code d’erreur. L’appelant interprète ce zéro comme « authentification SRP complète » et entre dans la boucle de messages post-auth sans échange de clé, négociation de chiffrement ni crypto de session.
⚙️ Mécanisme d’exploitation
L’exploitation se déroule en quatre étapes dans une seule connexion TCP :
- Bypass d’authentification : envoi d’un blob de 24488 octets dont les 4 premiers octets sont
0x00045FA6(bit 18 set), forçant le retour prématuré avec statut 0 - Écriture fichier #1 : injection d’un reverse shell Perl dans
/var/tmp/.r(mode 755) via le protocole file-copy Apple (message type0x22) - Écriture fichier #2 : injection d’une crontab root dans
/var/at/tabs/root(mode 600) - Exécution : cron (actif par défaut) déclenche le payload en ≤ 60 secondes → shell root
🎯 Impact
- Aucune interaction utilisateur requise
- Aucun mot de passe, nom d’utilisateur ou connaissance de la cible nécessaire
- Résultat : exécution de code arbitraire en root (
uid=0) - Confirmé sur Mac mini M4 (Mac16,10), macOS 26.3 build 25D2128, arm64
- Le bypass réussit environ 1 fois sur 5 à 15 tentatives (dépendance au heap layout)
🔐 Vulnérabilité secondaire (non exploitée)
Une faiblesse SRP zero-key indépendante est également documentée : le serveur rejette A == 0 mais pas A ≡ 0 (mod N), permettant potentiellement de forcer le secret partagé à zéro (violation RFC 5054 §2.5.4).
🛠️ Outils et IoCs
- Exploit Python :
exploit.py(sha256:da19856499f1910e533fc99c4dffd3008a6f87633928c5fa009bde9effc92a20) - Nom interne de l’exploit : navi_the_clown
- IPs utilisées dans la démonstration :
192.168.1.153(cible),192.168.1.4(attaquant) - Fichiers déposés :
/var/tmp/.r,/var/at/tabs/root
📋 Correctif
macOS 26.6 (publié le 2026-07-27) corrige le bug en propageant correctement le code d’erreur sur le chemin de validation de longueur de trame.
📄 Type d’article : analyse technique détaillée avec preuve de concept (PoC) fonctionnel, publiée à des fins de recherche défensive selon l’auteur, produite de manière autonome par des agents IA.
🧠 TTPs et IOCs détectés
TTP
- T1190 — Exploit Public-Facing Application (Initial Access)
- T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
- T1053.003 — Scheduled Task/Job: Cron (Execution)
- T1059.006 — Command and Scripting Interpreter: Python (Execution)
- T1059.003 — Command and Scripting Interpreter: Windows Command Shell (Execution)
- T1105 — Ingress Tool Transfer (Command and Control)
- T1048 — Exfiltration Over Alternative Protocol (Exfiltration)
- T1070.004 — Indicator Removal: File Deletion (Defense Evasion)
- T1021.005 — Remote Services: VNC (Lateral Movement)
IOC
- IPv4 :
192.168.1.153— AbuseIPDB · VT · ThreatFox - IPv4 :
192.168.1.4— AbuseIPDB · VT · ThreatFox - SHA256 :
da19856499f1910e533fc99c4dffd3008a6f87633928c5fa009bde9effc92a20— VT · MalwareBazaar - Fichiers :
exploit.py - Chemins :
/var/tmp/.r - Chemins :
/var/at/tabs/root
Malware / Outils
- navi_the_clown (tool)
🟡 Indice de vérification factuelle : 55/100 (moyenne)
- ⬜ warez.sl0p.foo — source non référencée (0pts)
- ✅ 10762 chars — texte complet (fulltext extrait) (15pts)
- ✅ 6 IOCs dont des hashes (15pts)
- ⬜ 0/3 IOCs confirmés externellement (0pts)
- ✅ 9 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://warez.sl0p.foo/apple-screensharing-rce/