CVE-2026-63317 in OpenNLPالمعلومات

الملخص

بحسب VulDB • 24/07/2026

ت instantiation عشوائي للفئات عبر واصف مولد السمات XML واسم التنسيق في Apache OpenNLP

الإصدارات المتأثرة:

- قبل الإصدار 2.5.10 - قبل الإصدار 3.0.0-M5

الوصف:

ثلاثة مسارات برمجية في Apache OpenNLP تقوم بتحميل فئة باستخدام اسمها المؤهل بالكامل عبر `Class.forName()` واستدعاء مُنشئها الذي لا يقبل وسيطات (no-arg constructor) دون أي تحقق مسبق من اسم الفئة أو نوعها.

المسارات المتأثرة هي:

(1) `GeneratorFactory`، التي تقرأ سمة الفئة لعناصر المولد في واصف مولد السمات XML؛ تُضمّن هذه الوصفات كأصول داخل أرشيفات النماذج (مثل نماذج TokenNameFinder وPOSTagger)، ويتم تحليلها أثناء تحميل النموذج، وبالتالي فإن المهاجم الذي يمكنه تزويد أرشيف نموذج مُعدّ خصيصاً يتحكم مباشرة في اسم الفئة.

(2) `StreamFactoryRegistry.getFactory(Class, String)`، التي تعود إلى تفسير اسم تنسيق غير مسجل على أنه الاسم المؤهل بالكامل لفئة من نوع ObjectStreamFactory؛ وهذا قابل للاستغلال في التطبيقات التي تمرر أسماء تنسيقات غير موثوقة (مثل تعريض المعلمة `-format` لأدوات سطر الأوامر لإدخال خارجي).

(3) `StringInterners`، الذي يقوم بت instantiation تنفيذية المُدمج للترميز المحددة بواسطة خاصية النظام `opennlp.interner.class`; هذه القيمة عادةً ما تكون تحت سيطرة مُعدّ النشر (deployer)، لذا فهي مشددة كإجراء دفاع متعدد الطبقات بدلاً من كونها قابلة للوصول بشكل مستقل من قبل المهاجم.

يتطلب الاستغلال وجود فئة ذات آثار جانبية مفيدة للمهاجم في المُهيئ الساكن أو المنشئ الذي لا يقبل وسيطات (مثل بحث JNDI، إدخال/إخراج شبكي خارجي، وصول إلى نظام الملفات) موجودة على مسار الفئة (classpath)، لذا فإن هذا ليس تنفيذًا مباشرًا للكود عن بُعد.

التخفيف:

ترقية إلى إصدار ثابت.

تقوم الإصلاحات بتوجيه جميع المسارات الثلاثة عبر `ExtensionLoader.instantiateExtension(...)`، والذي يستشير قائمة السماح بادئات الحزم قبل استدعاء `Class.forName()`، بحيث لا يتم تحميل أو تهيئة أو إنشاء فئة غير مسموح بها أبدًا. الفئات الموجودة تحت بادئة `opennlp.` تبقى مسموحة افتراضيًا. يجب على عمليات النشر التي تقوم بتحميل نماذج تشير إلى مصانع مولدات السمات، أو مصانع تدفقات الكائنات، أو مُدمجات النصوص خارج نطاق `opennlp.*` أن تختار هذه الحزم صراحةً للسماح بها، إما برمجياً عبر `ExtensionLoader.registerAllowedPackage(String)` قبل تحميل النموذج الأول، أو عن طريق تعيين خاصية النظام `OPENNLP_EXT_ALLOWED_PACKAGES` إلى قائمة مفصولة بفواصل من بادئات الحزم المسموح بها.

يجب على المستخدمين الذين لا يمكنهم الترقية فوراً التأكد من أن جميع ملفات النماذج وأسماء التنسيقات مصدرها موثوق، ويجب عليهم مراجعة مسار الفئة (classpath) الخاص بهم بحثًا عن الفئات التي تحتوي على مُهيئين ساكنين أو منشئين ذات آثار جانبية.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

Apache

حجز

16/07/2026

إفشاء

24/07/2026

الاعتدال

تمت الموافقة

إدخال

VDB-382880

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Want to know what is going to be exploited?

We predict KEV entries!