🔍 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