
تم نسخه باستخدام آلية الإدراج لمختبر afl! تحية إلى antonio-morales.
CVE-2019-13288 هو ثغرة تم تحديدها في Xpdf الإصدار 4.01.01، وتحديدًا داخل دالة Parser::getObj() في Parser.cc. يمكن أن يؤدي هذا العيب إلى تكرار لانهائي عند معالجة ملف PDF مصمم خصيصًا، مما يؤدي إلى حالة رفض الخدمة (DoS). تشبه هذه الثغرة CVE-2018-16646 وتؤكد على أهمية التحقق القوي من المدخلات في الدوال التكرارية.
معرف CVE: CVE-2019-13288
البرنامج المتأثر: Xpdf 4.01.01
نوع الثغرة: التكرار غير المسيطر عليه (CWE-674)
التأثير: رفض الخدمة (DoS)
درجة CVSS v3.0 الأساسية: 5.5 (متوسطة)
Parser::getObj()دالة Parser::getObj() مسؤولة عن تحليل الكائنات داخل ملف PDF. في Xpdf 4.01.01، تفتقر هذه الدالة إلى الفحوصات الكافية لمنع التكرار اللانهائي. يمكن للمهاجم إنشاء ملف PDF بهيكل كائن ضار يتسبب في استدعاء getObj() لنفسها بشكل متكرر دون إنهاء، مما يؤدي إلى استنفاد المكدس وتعطل التطبيق.
يقوم المهاجم بإنشاء ملف PDF ضار بهيكل كائن محدد مصمم لتحفيز التكرار اللانهائي في دالة Parser::getObj(). عندما تتم معالجة هذا الملف بواسطة Xpdf أو أي تطبيق يستخدم مكتبته، يدخل التطبيق في حلقة تكرار لا نهائية، مستهلكًا موارد النظام ويتعطل في النهاية.
ملف PDF للإثبات (PoC) يوضح هذه الثغرة متاح أدناه في هذا المستودع.
للاطلاع على الخطوات التفصيلية حول كيفية إعادة إنتاج الثغرة، انظر أدناه:
ملاحظة: هذا الإثبات مخصص للأغراض التعليمية والبحثية فقط. الاستخدام غير المصرح به ضد الأنظمة دون إذن صريح غير أخلاقي وقد يكون غير قانوني. لا تكن سيئًا!
استلهم هذا التحليل من المنهجيات المقدمة في دليل Fuzzing101 لأنطونيو موراليس. تم تحديد الثغرة في البداية من خلال تقنيات الفازينغ، مما يسلط الضوء على فعالية هذه الأساليب في اكتشاف العيوب الخفية في البرمجيات.
يتم توفير هذه المعلومات للأغراض التعليمية والبحثية فقط. المؤلف غير مسؤول عن أي إساءة استخدام للمعلومات الواردة هنا. تأكد دائمًا من حصولك على التصريح المناسب قبل اختبار أو استغلال الثغرات على أي نظام.