
ملاحظات هندسة عكسية وإثبات مفهوم عامل لـ CVE-2026-84568، وهو انتهاك لحدود الثقة في automountd على macOS يسمح بعمليات التركيب من localhost أو من اسم مضيف الضحية نفسه.
هندسة عكسية مستقلة لتصحيح autofs على macOS الخاص بـ CVE-2026-84568، بالإضافة إلى PoC عامل لانتهاك حدود الثقة.
نشرت Apple الإشعار الأمني. أبلغ Mr.Gedik (@h4ck2s3c) عن الثغرة. يوثّق هذا المستودع الآلية التقنية — الدالة المُصحّحة، وما الذي يفعله الفحص، وأي مسارات التركيب يحجبها التصحيح — ويتضمن PoC عامل يعيد إنتاج انتهاك الثقة على نظام مصاب.
| الحقل | القيمة |
|---|
| CVE | CVE-2026-84568 |
| المكوّن | autofs / automountd |
| المتأثر | macOS Tahoe 26.6 وما قبله |
| مُصحّح في | macOS Tahoe 26.7، macOS Golden Gate 27، macOS Sequoia 15.8 |
| تأثير الإشعار | "قد يتمكن مهاجم يتحكم في خادم دليل شبكي من تنفيذ تعليمات برمجية عشوائية بصلاحيات root." |
| أبلغ عنه | Mr.Gedik (@h4ck2s3c) من Turkish Technology |
يوثّق إشعار Apple الخاص بـ CVE-2026-84568 التأثير وإصدار التصحيح. لكنه لا يوثّق الآلية التقنية:
لم يتم العثور على أي تحليل تقني عام وقت كتابة هذا. يملأ هذا
المستودع تلك الفجوة بتحليل هندسة عكسية مستقل
لـ automountd_26.6 و automountd_27، و PoC عامل
لانتهاك حدود الثقة الأساسي.
هذا ليس ادعاء اكتشاف. تم الإبلاغ عن CVE بواسطة Mr.Gedik و تصحيحه بواسطة Apple. المساهمة هنا هي التحليل التقني وإعادة الإنتاج.
يجلب automountd خرائط automount من خدمة دليل مُهيّأة
(LDAP، NIS، OpenDirectory). في الإصدار المصاب (26.6 وما قبله)،
لم يتحقق automountd من أن مكوّن المضيف في إدخال الخريطة
يُحلّ إلى الجهاز المحلي.
لذلك يمكن لخادم دليل خبيث أن يقدّم إدخال خريطة كان مصدر التركيب فيه:
localhost<hostname>.local)127.0.0.1عندها يقوم الضحية بالتركيب من نفسه عند نقطة تركيب يتحكم بها المهاجم.
يضيف الإصدار المُصحّح (26.7 / 27) فحصًا لاسم المضيف في
sym.func.100005bd8 يرفض الإدخالات المطابقة لأي مما سبق.
sym.func.100005bd8 بين automountd_26.6
و automountd_27 — انظر docs/PATCH_DIFF.mdstrncasecmp مقابل
"localhost"، gethostname()، SCDynamicStoreCopyLocalHostName +
".local"، وحلقة getifaddrs / getipnodebyaddr تُعدّد
جميع عناوين IP المحليةfstype عبر parse_nfs →
mapline_to_mapent → asprintf("%s/mount_%s", "/sbin", fstype) —
لا يتم التحقق من الحقل قبل بناء مسار البرنامجwebdavfs_agent — يستخدم
استدعاء characters الدالة __memcpy_chk مع فحوصات طول صريحة؛ لا يوجد تجاوزod_process_record_attributes — يستخدم محلّل سجلات OpenDirectory
واجهات CoreFoundation في كل مكان؛ لا توجد
مخازن مؤقتة بحجم ثابتmount_nfs، mount_smbfs، mount_url،
وجميع حزم NetFSPlugins/* بحثًا عن تنفيذ shell؛ لم يُعثر
على أي منهاانظر docs/ANALYSIS.md للتحليل الكامل و
docs/ARTIFACTS.md للعناوين وعينات السجلات.
poc.sh — إعداد من جهة المهاجم في ملف واحد. يبدأ خادم LDAP
بخريطة auto_master / auto_evil خبيثة وتصدير NFS
بعلامة إثبات الوصول. عندما يجلب automountd الخاص بالضحية
الخريطة، يقوم بتركيب تصدير NFS الخاص به عند
المسار الذي يتحكم به المهاجم.auto_master / auto_evil مُصمّمةautomountd الخاص بالضحية للخريطة عبر الشبكة127.0.0.1تأثير "تنفيذ تعليمات برمجية عشوائية بصلاحيات root" في إشعار Apple
لا يمكن الوصول إليه عبر المسارات المُختبرة في هذا التحليل.
انظر قسم "المسارات المُختبرة والمستبعدة" في
docs/ANALYSIS.md للقائمة الكاملة.
التأثير المُوضّح هو انتهاك حدود الثقة نفسه: يقوم الضحية بالتركيب من مصدر كان ينبغي أن يرفضه.
poc.sh إعداد من جهة المهاجم (ملف واحد)
docs/
ANALYSIS.md تحليل الهندسة العكسية الكامل
PATCH_DIFF.md فرق sym.func.100005bd8 بين 26.6 و 27
ARTIFACTS.md العناوين وعينات السجلات
README.md هذا الملف
LICENSE
أربعة ملفات، مجلدان. لا شيء آخر.
brew install openldap)slapd.conf يُعرّف: database mdb مع suffix "dc=evil,dc=local"nfsd) — يأتي مع macOSslapd، nfsd، /etc/exports)automountd مصاب)+auto_master في /etc/auto_masternfsd على الضحية، مع تصدير دليليحتاج الضحية إلى خادم NFS قيد التشغيل لنجاح التركيب. تتعلق
CVE بـ قبول إدخال المضيف المحلي، وليس بتسليم
التصدير. إذا لم يُشغّل الضحية nfsd، يفشل التركيب
بـ NFS server 127.0.0.1 not responding — وهو ما لا يزال
يوضّح أن automountd قبل الإدخال.
./poc.sh <ATTACKER_IP>
استبدل <ATTACKER_IP> بعنوان IP الخاص بالمهاجم كما يظهر من الضحية.
sudo automount -vc
ls /System/Volumes/Data/mnt/evil/evil/
cat /System/Volumes/Data/mnt/evil/evil/proof.txt
الملف proof.txt قابل للقراءة عبر التركيب. مصدر التركيب
في مخرجات mount هو 127.0.0.1:<export_dir>:
127.0.0.1:/tmp/nfsroot on /System/Volumes/Data/mnt/evil/evil (nfs, nodev, nosuid, automounted, nobrowse)
يعكس وجود nodev و nosuid الإعدادات الافتراضية لتركيب NFS في النواة
ومعالجة الخيارات الخاصة بـ mount_nfs — وهي ليست من
automountd. انظر docs/ANALYSIS.md للتفصيل الكامل.
على نظام مُصحّح (26.7 / 27)، يتم رفض نفس إدخال الخريطة قبل
أي محاولة تركيب. انظر docs/PATCH_DIFF.md
لمقارنة التفكيك لـ sym.func.100005bd8.
للتأكد على مضيف مُصحّح:
# Serve the same map entry, then on the patched victim:
sudo automount -vc
ls /System/Volumes/Data/mnt/evil/evil/
المتوقع: لا يتم إنشاء نقطة التركيب، ولا يظهر أي إدخال في
مخرجات mount. يرفض فحص sym.func.100005bd8 الإدخال عندما
يكون المضيف 127.0.0.1 أو localhost أو اسم المضيف المحلي.
fstype (اكتشاف منفصل)أثناء التحليل، وُجد ضعف دفاعي منفصل:
sym.func.1000086f4 (run_mount_cmd) يبني مسار برنامج عبر
asprintf("%s/mount_%s", "/sbin", fstype) دون التحقق من
حقل fstype من إدخال الخريطة.
تصل تسلسلات اجتياز المسار في fstype إلى استدعاء asprintf:
automountd: Can't stat mount program /sbin/mount_../../../../../../tmp/evil_prog: No such file or directory
على تثبيت macOS القياسي، لا يُحلّ المسار الناتج إلى
ملف قابل للتنفيذ لأن /sbin/mount_.. غير موجود. الحقن
حقيقي لكنه محجوب بواسطة تحليل المسار. سيصبح قابلًا للاستغلال
فقط إذا وُجد مسار قابل للكتابة تحت /sbin، أو إذا تم إنشاء
رابط رمزي لدليل mount_<X> — وكلاهما لا ينطبق على
macOS القياسي.
هذا موثّق كملاحظة منفصلة، وليس كجزء من
CVE-2026-84568. انظر docs/ANALYSIS.md للتفاصيل.
يُقدَّم هذا المستودع للبحث الأمني الدفاعي والتعليم فقط.
MIT. انظر LICENSE.