🔍 Contexte

Article publié le 26 mars 2026 par Patrick Wardle (Objective-See Foundation) sur son blog technique. L’article documente une analyse par rétro-ingénierie des nouveaux événements Endpoint Security (ES) introduits dans macOS 26.4, laissés sans documentation publique par Apple sous la forme ES_EVENT_TYPE_RESERVED_*.

🧩 Découverte des événements réservés

Avec la sortie du MacOSX26.4.sdk, Apple a ajouté 7 nouveaux types d’événements ES (RESERVED_0 à RESERVED_6) sans les documenter ni les nommer. Wardle tente de s’y abonner via es_subscribe :

  • RESERVED_0, RESERVED_1, RESERVED_2 : échec à l’abonnement (non implémentés)
  • RESERVED_3 à RESERVED_6 : abonnement réussi et événements effectivement délivrés

🐛 Kernel Panic (corrigé dans macOS 26.4)

Wardle mentionne un kernel panic dans l’extension noyau EndpointSecurity d’Apple, découvert dans macOS 26.3.1 et désormais corrigé. Ce bug était déclenché en appelant es_subscribe avec des valeurs d’événements supérieures à ES_EVENT_TYPE_LAST, provoquant une lecture hors limites et un panic noyau. Bien que nécessitant des droits root et l’entitlement com.apple.developer.endpoint-security.client, ce bug pouvait faire tomber l’ensemble du système et tous les outils de sécurité.

🌐 Identification des événements réseau

L’analyse des événements ES_EVENT_TYPE_RESERVED_5 (type 153, AUTH) et ES_EVENT_TYPE_RESERVED_6 (type 154, NOTIFY) révèle :

  • Ils sont générés par /usr/sbin/mDNSResponder (démon DNS d’Apple)
  • L’événement AUTH précède l’événement NOTIFY (pattern classique ES pour autorisation + notification)
  • Les données brutes contiennent des adresses IP (c0 a8 04 01 = 192.168.4.1), des ports (e9 14 = 5353), des protocoles (11 = UDP), et des bundle IDs (com.apple.WebKit.Networking)
  • Le NOTIFY contient également des chemins de processus (ex: WebKit.framework/...XPCServices/com...)

📋 Type d’article

Analyse technique approfondie de rétro-ingénierie, visant à comprendre des API non documentées d’Apple pour les intégrer dans des outils de sécurité open-source (LuLu, etc.).


🔗 Source originale : https://objective-see.org/blog/blog_0x86.html