🔍 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 :

  1. 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
  2. Écriture fichier #1 : injection d’un reverse shell Perl dans /var/tmp/.r (mode 755) via le protocole file-copy Apple (message type 0x22)
  3. Écriture fichier #2 : injection d’une crontab root dans /var/at/tabs/root (mode 600)
  4. 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.153AbuseIPDB · VT · ThreatFox
  • IPv4 : 192.168.1.4AbuseIPDB · VT · ThreatFox
  • SHA256 : da19856499f1910e533fc99c4dffd3008a6f87633928c5fa009bde9effc92a20VT · 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/