🔍 Contexte

Publié le 27 juillet 2026 sur le blog de Calif Global (blog.calif.io) par Bruce Dang, cet article détaille deux vulnérabilités exploitées pour réaliser le premier bypass public d’Apple MIE (Memory Integrity Enforcement) sur macOS 26.4.1. Les correctifs ont été intégrés dans macOS 26.6. La présentation complète est annoncée à Black Hat USA le 5 août 2026.

🐛 Vulnérabilité 1 — Type Confusion SMB (CVE-2026-64704)

  • Composant affecté : SMBClient (open-source, version SMBClient-538.100.12)
  • Mécanisme : lors d’une requête SMB2 CREATE avec un contexte AAPL « Resolve ID », un serveur malveillant peut répondre avec un contexte de type lease (RqLs) à la place
  • Le parseur smb2_smb_parse_create_contexts ne vérifie pas le type de contexte envoyé et réinterprète le pointeur create_contextp selon le nom présent dans la réponse du serveur
  • Résultat : confusion de types entre struct smb2_create_ctx_resolve_id et struct smb2_dur_hndl_and_lease — le champ file_id (contrôlé par l’attaquant via fsgetpath(2)) est interprété comme un pointeur leasep, permettant une lecture/déréférencement de pointeur arbitraire en kernel
  • Déclencheur : syscall fsgetpath(2) sur un volume smbfs monté sur un serveur malveillant ayant annoncé les bonnes capability flags

🐛 Vulnérabilité 2 — Fuite mémoire kernel WebDAV (CVE-2026-64699)

  • Composant affecté : webdavfs (open-source, version webdavfs-403.0.0.0.1)
  • Mécanisme : dans le chemin de lecture hors-bande (webdav_read_bytes), le kext alloue un buffer jusqu’à 16 MB sans M_ZERO (mémoire non initialisée)
  • L’agent userspace (webdavfs_agent) traite tout code HTTP 2xx comme un succès — un serveur malveillant peut répondre avec un HTTP 206 vide (corps de longueur zéro)
  • Le kext ne vérifie jamais que iolen couvre effectivement le buffer de réponse attendu
  • Résultat : uiomove copie vers userspace request_read.count octets de mémoire kernel non initialisée, constituant une infoleak kernel jusqu’à 16 MB

⛓️ Chaîne d’exploitation

  • Combinaison des deux bugs pour obtenir des primitives de lecture/écriture kernel arbitraires
  • Objectif final : exécution de code en kernel et élévation de privilèges jusqu’à root depuis un utilisateur non privilégié, avec Apple MIE activé
  • Durée de développement de l’exploit : environ 5 jours de la découverte du bug à l’exploit finalisé

🏆 Challenge communautaire

Calif Global lance un challenge public invitant humains, IA et équipes mixtes à développer un exploit complet utilisant ces deux CVE pour bypasser Apple MIE et atteindre root, avant la révélation de leur propre approche à Black Hat.

📄 Type d’article

Article de publication de recherche / analyse technique à visée de divulgation coordonnée et de challenge communautaire, publié après la disponibilité des correctifs Apple.

🧠 TTPs et IOCs détectés

TTP

  • T1203 — Exploitation for Client Execution (Execution)
  • T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
  • T1212 — Exploitation for Credential Access (Credential Access)
  • T1557 — Adversary-in-the-Middle (Collection)

IOC


🟢 Indice de vérification factuelle : 66/100 (haute)

  • ✅ blog.calif.io — source reconnue (Rösti community) (20pts)
  • ✅ 12967 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 2 IOC(s) (6pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 4 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ 0/2 CVE(s) confirmée(s) (0pts)

🔗 Source originale : https://blog.calif.io/p/apple-mie-exploitation-challenge