
إلغاء مرجعية مؤشر فارغ في MuPDF، أول CVE اكتشفته
إلغاء مرجعية مؤشر فارغ في دالة عرض EPUB في MuPDF 1.26.4
مرجع CVE - CVE-2025-55780
الإصدارات المتأثرة: الإصدار 1.26.7 وما قبله متأثرة
تم اكتشافه واختباره على: 1.26.4
درجة الخطورة CVSSv3 : 7.5 (عالية)
تم الإصلاح في commit : https://cgit.ghostscript.com/cgi-bin/cgit.cgi/mupdf.git/commit/?id=bdd5d241748807378a78a622388e0312332513c5
Bugzilla : https://bugs.ghostscript.com/show_bug.cgi?id=708720
موقع الانهيار :-
(1a44.55c0): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
mupdf!break_word_for_overflow_wrap+0x243:
00007ff7`6dbf2a23 8b00 mov eax,dword ptr [rax] ds:00000000`00000000=????????
الإصلاح :- إصلاح إلغاء مرجع مؤشر فارغ في تخطيط HTML.
إذا كان لدينا عقدة تدفق واحدة أكبر من أن تناسب
العرض المتاح، وكنا نستخدم نمط CSS
"overflow-wrap:break-word"، فإننا نحاول تقسيم عقدة التدفق إلى
أجزاء أصغر بحيث يمكنها الالتفاف بشكل جيد.
نقوم بذلك عن طريق المرور على نص عقدة التدفق لتقسيمه إلى مجموعات؛
نريد التقسيم على مستوى المجموعة بدلاً من مستوى الحرف
لتجنب مشاكل التشكيل.
بالنسبة للنص من اليمين إلى اليسار، تأتي المجموعات بترتيب معاكس
لما هو متوقع ويكون المنطق الحالي خاطئًا.
يمكن أن يؤدي هذا إلى عدم قيام كود التقسيم بتقسيم أي شيء فعليًا،
مما يؤدي بدوره إلى أن تكون node->next فارغة (NULL)، ومحاولة
إلغاء مرجعية مؤشر فارغ.
الإصلاح هو التقسيم بشكل مختلف للنص من اليمين إلى اليسار.
أثناء التحقيق في هذه المشكلة، تم اكتشاف مشكلة إضافية، وهي
أن الطريقة التي كنا نستدعي بها harfbuzz تعني أنه لم يجمع
المجموعات معًا كما توقعنا. وفقًا لذلك، قمنا بتوسيع الكود
هنا بحيث يمكن لـ 'string_walker' استدعاء harfbuzz في وضع مجموعة
'grapheme' بدلاً من عقدة مجموعة 'character'.
باستخدام ذلك، نقوم بعد ذلك بتحديث الكود للمرور على الأجزاء
المعادة من السلسلة، وتقسيم الكود في الموضع الصحيح
للمساحة المطلوبة، مع الحرص على التعامل بشكل صحيح مع كل من نص
l2r و r2l.
https://nvd.nist.gov/vuln/detail/CVE-2025-55780
https://www.tenable.com/cve/CVE-2025-55780
https://ubuntu.com/security/CVE-2025-55780
https://cvefeed.io/vuln/detail/CVE-2025-55780
https://osv.dev/vulnerability/UBUNTU-CVE-2025-55780
https://cve.akaoma.com/cve-2025-55780
https://vulners.com/cve/CVE-2025-55780
https://bugzilla.redhat.com/show_bug.cgi?id=2397702
https://github.com/advisories/GHSA-756h-grq9-2jvh
https://www.tenable.com/plugins/nessus/266050
https://security-tracker.debian.org/tracker/CVE-2025-55780
https://access.redhat.com/security/cve/cve-2025-55780
https://www.wiz.io/vulnerability-database/cve/cve-2025-55780
https://security.snyk.io/vuln/SNYK-UNMANAGED-MUPDF-13058631
https://feedly.com/cve/CVE-2025-55780
https://vulners.com/cve/CVE-2025-55780
https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-55780&sortby=bydate