🔍 Contexte
Article technique publié le 17 avril 2026 par Calif sur blog.calif.io, en partenariat avec OpenAI. Il documente une vulnérabilité d’exécution de code arbitraire découverte dans iTerm2, un émulateur de terminal macOS populaire, exploitable via la simple lecture d’un fichier texte malveillant.
🐛 Vulnérabilité identifiée
La faille repose sur un défaut de confiance dans le protocole d’intégration SSH d’iTerm2. Ce protocole utilise des séquences d’échappement terminales (DCS et OSC) pour coordonner un script distant appelé conductor. iTerm2 accepte ces séquences depuis n’importe quelle sortie terminale, sans vérifier qu’elles proviennent réellement d’un conductor légitime.
⚙️ Mécanisme d’exploitation
Un fichier malveillant peut contenir :
- Une fausse séquence DCS 2000p pour initier une session conductor
- De faux messages OSC 135 imitant les réponses du conductor distant
Lorsque la victime exécute cat readme.txt dans iTerm2, le terminal rend le fichier et traite ces séquences comme légitimes. iTerm2 enclenche alors son workflow SSH integration normal (getshell(), pythonversion()), et construit une commande run(...) en base64 intégrant des sshargs contrôlés par l’attaquant.
💥 Impact
Le dernier chunk base64 de la commande run est façonné pour correspondre à un chemin exécutable local (ace/c+aliFIo). Le shell local reçoit et exécute ce chunk, aboutissant à une exécution de code arbitraire sans interaction supplémentaire de l’utilisateur.
🧪 Reproduction
Un PoC (genpoc.py) est fourni, générant deux fichiers :
readme.txt: contient la fausse transcription conductorace/c+aliFIo: l’exécutable déclenché par le chunk final
Un second exploit (genpoc2.py) a été reconstruit à partir du patch seul, confirmant la reproductibilité.
📄 Type d’article
Analyse technique détaillée d’une vulnérabilité originale, visant à documenter le mécanisme d’exploitation et à fournir un PoC reproductible pour la communauté CTI et les équipes de sécurité.
🧠 TTPs et IOCs détectés
TTP
- T1059 — Command and Scripting Interpreter (Execution)
- T1027 — Obfuscated Files or Information (Defense Evasion)
- T1204.002 — User Execution: Malicious File (Execution)
- T1574 — Hijack Execution Flow (Privilege Escalation)
IOC
- Fichiers :
readme.txt - Fichiers :
genpoc.py - Fichiers :
genpoc2.py - Fichiers :
ace/c+aliFIo - Chemins :
ace/c+aliFIo
🟢 Indice de vérification factuelle : 70/100 (haute)
- ✅ blog.calif.io — source reconnue (Rösti community) (20pts)
- ✅ 6122 chars — texte complet (fulltext extrait) (15pts)
- ✅ 5 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 4 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://blog.calif.io/p/mad-bugs-even-cat-readmetxt-is-not