
ملاحظات بحثية توثّق CVE-2024-30350، وهو قراءة خارج الحدود في معالجة التعليقات التوضيحية في Foxit PDF Reader، وتغطي الفرز والإفصاح والإرشادات الدفاعية.
CVE-2024-30350 هو ثغرة كشف معلومات ناتجة عن قراءة خارج الحدود في Foxit PDF Reader. نُشرت المشكلة من قبل Trend Micro Zero Day Initiative تحت المعرف ZDI-24-333 وتم تتبعها قبل الإفصاح تحت المعرف ZDI-CAN-22708.
يصف الإشعار العام المنطقة المصابة بأنها معالجة Foxit PDF Reader لكائنات Annotation. يمكن لملف PDF مُصمَّم بعناية أن يجعل التطبيق يقرأ خارج نهاية المخزن المؤقت المُخصَّص. يتطلب الاستغلال تفاعل المستخدم، مثل فتح ملف PDF ضار أو زيارة صفحة تُسلِّمه. التأثير المباشر هو كشف معلومات حساسة، ويشير الإشعار إلى أن الحالة قد تكون مفيدة عند ربطها بثغرات أخرى.
يوثّق هذا المستودع الثغرة، وسير عمل البحث، وعملية الفرز، وملاحظات الإفصاح. وهو لا يتضمن عمداً إثبات مفهوم جاهزاً للاستغلال.
| الحقل | القيمة |
|---|
| CVE | CVE-2024-30350 |
| إشعار ZDI | ZDI-24-333 |
| حالة ZDI | ZDI-CAN-22708 |
| المنتج | Foxit PDF Reader |
| المورّد | Foxit |
| المكوّن | معالجة كائن Annotation |
| الضعف | قراءة خارج الحدود |
| CWE | CWE-125 |
| التأثير | كشف المعلومات |
| CVSS | 3.3 |
| المتجه | CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N |
| تاريخ تقرير المورّد | 2023-12-20 |
| تاريخ الإشعار العام | 2024-03-28 |
| تاريخ تحديث الإشعار | 2024-07-01 |
| تم الإصلاح بواسطة | تحديثات Foxit PDF Reader 2024.1 و Foxit PDF Editor 2024.1 الأمنية |
وفقاً للنشرة الأمنية لـ Foxit بتاريخ 5 مارس 2024، تضمنت إصدارات Windows المتأثرة Foxit PDF Reader 2023.3.0.23028 والإصدارات الأقدم، وخطوط إصدار Foxit PDF Editor المتعددة حتى الإصدارات المذكورة في النشرة.
تُمثَّل تعليقات PDF كقواميس مرتبطة بالصفحات عبر مصفوفة /Annots الخاصة بالصفحة. يحتاج القارئ إلى تحليل قاموس التعليق، وحل القيم المباشرة وغير المباشرة، وتطبيع بيانات الهندسة والمظهر، وربط النتيجة بمسارات العرض والتحديد والتحرير و JavaScript وإمكانية الوصول.
فئة الخطأ في CVE-2024-30350 هي فشل في التحقق من الحدود في خط أنابيب تحليل التعليقات هذا. يمكن لكائن تعليق مشوّه أن يجعل Foxit PDF Reader يثق بطول مشتق أو شكل كائن لم يعد مطابقاً للمخزن المؤقت الداعم. في المسار المصاب، يمكن للبرنامج أن يقرأ خارج حدود الكائن المُخصَّص. كان نمط الفشل الملاحظ انتهاك وصول أثناء معالجة التعليق؛ ومع ترتيب الذاكرة بشكل مختلف، يمكن لنفس البدائية أن تكشف ذاكرة العملية المجاورة.
لم تكن المشكلة ثغرة شبكية بنقرة واحدة. احتاج المهاجم إلى إقناع المستخدم المستهدف بفتح مستند مُصمَّم أو الوصول إلى صفحة تسليم تؤدي إلى فتح المستند. وينعكس ذلك في متطلب تفاعل المستخدم في CVSS.
بدأ التحقيق الأصلي كتدقيق مركّز على عائلات كائنات PDF المعقدة بدلاً من كونه عملية fuzzing عامة لتنسيق الملفات. تم اختيار معالجة التعليقات لأن التعليقات تقع عند تقاطع كثيف بين منطق المحلل، وسلوك واجهة المستخدم، والتعرض لـ JavaScript، وتحديثات المستند التراكمية.
خلطت المجموعة الأولية بين مستندات عادية وصفحات اصطناعية تحتوي على قواميس تعليقات عالية التباين. نوّع المولّد أطوال المصفوفات، وغير المباشرة في الكائنات، والقيم الفارغة، والأنواع البدائية غير المتوقعة، والمراجع التكرارية، وتركيبات تدفقات المظهر. لم تكن العينات الأكثر فائدة عشوائية بالكامل. كانت واعية بالقواعد بما يكفي للوصول إلى كود تطبيع التعليقات، لكنها ظلت مشوّهة بما يكفي لاختبار الافتراضات في المحلل الأصلي.
كانت الإشارة الأولى انهياراً لم يتكرر إلا عندما احتوت صفحة على بنية تعليق مشوّهة محددة وتم إجبار التعليق على المرور عبر مسار المعالجة التفاعلي. كان فتح المستند كافياً لتحليل الصفحة، لكن التكرار الموثوق تحسّن عند تحديث العرض، أو تكبير الصفحة، أو لمس شجرة التعليقات بواسطة كود التحديد أو العرض.
ضيّق التصحيح المشكلة إلى قراءة خارج نهاية تخصيص heap أثناء معالجة كائن التعليق. لم يشبه الانهيار إلغاء مرجع فارغ. استهلكت التعليمة الفاشلة ذاكرة مجاورة لمخزن مؤقت مرتبط بالتعليق، وأشارت علاقات الحجم في العينة المُصغَّرة إلى عدم تطابق بين عدد منطقي مُحلَّل والتخزين الفعلي المتاح لذلك الكائن.
تم تصغير العينة بإزالة كائنات PDF غير ذات صلة، وموارد الصفحة، والخطوط، والبيانات الوصفية، والتدفقات بشكل متكرر حتى لم يتبقَّ سوى شجرة الصفحة، والصفحة المستهدفة، وبنية التعليق. حافظ الملف المُصغَّر على نفس بصمة الانهيار، مما جعله مناسباً للإفصاح المنسّق.
بعد الفرز، تم تقديم النتيجة عبر Zero Day Initiative. تاريخ تقرير المورّد في الإشعار العام هو 2023-12-20. نُشر الإشعار المنسّق في 2024-03-28، وعالجت Foxit المشكلة في خط تحديث 2024.1.
التأثير المباشر هو كشف ذاكرة من عملية Foxit PDF Reader. بمعزل عن ذلك، يعني هذا عادةً تأثير سرية محدود. ومع ذلك، في سلسلة استغلال أكثر اكتمالاً، يمكن أن تكون القراءة خارج الحدود ذات قيمة لتسريب محتويات heap، أو مؤشرات الكائنات، أو تخطيط التخصيص، أو حالة عملية أخرى مطلوبة لجعل ثغرة إفساد ذاكرة منفصلة موثوقة.
يفسّر هذا درجة CVSS المستقلة المنخفضة مع الحفاظ على أهمية المشكلة لتقوية سلسلة الاستغلال.
يجب على المستخدمين تحديث Foxit PDF Reader و Foxit PDF Editor إلى الإصدارات المُصلَحة. كما ينبغي للمؤسسات التي تتعامل مع ملفات PDF غير الموثوقة إبقاء Protected View، و Safe Reading Mode، وعناصر التحكم في سمعة الملفات، وتصفية المرفقات، وتخفيفات استغلال نقاط النهاية مُفعَّلة.
بالنسبة لمطوري المحللات، الدرس الرئيسي هو أن قواميس التعليقات يجب أن تُعامَل كمدخلات منظمة غير موثوقة حتى عندما يكون ملف PDF المحيط صحيحاً نحوياً. يجب التحقق من الأطوال المشتقة، والمصفوفات المُطبَّعة، والكائنات غير المباشرة المحلولة، وتمثيلات الكائنات المخزنة مؤقتاً عند كل حد بين المحلل، والعرض، والبرمجة النصية، وكود واجهة المستخدم.
| المسار | الغرض |
|---|---|
README.md | نظرة عامة رئيسية على الثغرة |
docs/discovery-process.md | سرد البحث من البداية إلى النهاية |
docs/advisory-notes.md | حقائق الإشعار العام والمراجع |
docs/triage-checklist.md | قائمة التحقق العامة المستخدمة لفرز انهيار قارئ PDF |