Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-91858 — مُعيد إنتاج قابل للتشغيل بـ Spring Boot وQuarkus لـ CVE-2026-91858، وهو ثغرة XXE في Apache Camel camel-fop عبر TransformerFactory من طرف ثالث، مع التحقق من الإصدارات المتأثرة والمُصحّحة. | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-91858
أدوات دفاعيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتعلم والتعليم
GitHuboscerd/cve-2026-91858

CVE-2026-91858

مُعيد إنتاج قابل للتشغيل بـ Spring Boot وQuarkus لـ CVE-2026-91858، وهو ثغرة XXE في Apache Camel camel-fop عبر TransformerFactory من طرف ثالث، مع التحقق من الإصدارات المتأثرة والمُصحّحة.

عرض المستودع
10منذ 19س 12دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-91858 — camel-fop: كيان خارجي XML (XXE) عبر TransformerFactory من طرف ثالث

مُعيد إنتاج إثبات مفهوم قابل للتشغيل لثغرة Apache Camel حيث أنشأ FopProducer في camel-fop الخاصية javax.xml.transform.TransformerFactory الخاصة به مع FEATURE_SECURE_PROCESSING فقط قبل تشغيل تحويل هوية على جسم رسالة XSL-FO. في المحوّل المدمج في JDK، فإن هذه الميزة وحدها تُفرغ بالفعل حدود accessExternalDTD/accessExternalStylesheet، لذا تُرفض الموارد الخارجية. ولكن عندما يكون هناك TransformerFactory من JAXP من طرف ثالث مثل Saxon-HE على مسار الفئات (classpath) — على سبيل المثال لأن التطبيق يستخدم أيضًا camel-xslt-saxon أو camel-saxon — فإن TransformerFactory.newInstance() يُعيد ذلك التطبيق، و FEATURE_SECURE_PROCESSING وحدها لا تقيّد الوصول إلى الموارد الخارجية عليه. عندئذٍ يُحلّ DOCTYPE مع مجموعة فرعية خارجية مُعلنة في جسم XSL-FO أثناء تحويل الجسم، لذا يمكن لمستند مُرسِل خارجي قراءة الملفات التي يمكن لعملية Camel قراءتها أو جعلها تُصدر طلبات إلى مضيفين يُسمّيهم (CWE-611).

بيئة التشغيلالدليلالمكدّس
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-fop 4.22.0 (متأثر؛ مُصلح في 4.22.1) + Saxon-HE 13.0
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-fop (Camel 4.22.0، متأثر؛ عنصر تحكم مُصلح CQ 3.40.0 / Camel 4.22.1) + Saxon-HE 13.0

كلا الوحدتين تُظهران السلوك المتأثر و السلوك المُصلح مقابل FopProducer الحقيقي. Saxon-HE موجود على مسار الفئات في كلتيهما — وهو الشرط المسبق للثغرة؛ أما النشر الافتراضي الذي يستخدم محوّل JDK فهو غير متأثر قبل الإصلاح أو بعده.

ما الذي يُظهره

نقطة نهاية التحقق /exploit/attack تبدأ استدعاء HTTP داخل العملية وتُرسل مستند XSL-FO إلى fop:pdf حيث يُعلن DOCTYPE الخاص به عن DTD خارجي يشير إلى ذلك الاستدعاء:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fo:root SYSTEM "http://localhost:<port>/external.dtd">
<fo:root …>…Hello…</fo:root>

المُعرِف الحاسم هو ببساطة ما إذا كان قد طُلب استدعاء الرجوع — دليل قاطع على أن المورد الخارجي قد جُلب:

  • متأثر: تُرجع TransformerFactory.newInstance() مكتبة Saxon، والتي حتى في ظل المعالجة الآمنة وحدها لا تزال تجلب DTD الخارجي — يُستدعى استدعاء الرجوع (الآلية نفسها تقرأ عناوين URL من نوع file://).
  • مُصلَح: تم ضبط ACCESS_EXTERNAL_DTD على ""، لذا ترفض Saxon الـ DTD الخارجي؛ ولا يُستدعى استدعاء الرجوع أبدًا.
# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: callback hit = true; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -Djava.awt.headless=true -jar target/cve-2026-91858-fop-xxe-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: callback hit = false; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.22.0): callback hit = true
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -Djava.awt.headless=true -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: callback hit = false

ملخص الثغرة الأمنية

الخاصيةالقيمة
المكوّنcamel-fop (FopProducer)
CWECWE-611 (التقييد غير السليم لمرجع الكيان الخارجي في XML)
الخطورةمتوسطة
ناقل الهجوميصل XSL-FO من مُرسِل خارجي إلى منتج fop:، في عملية نشر تحتوي أيضًا على TransformerFactory من JAXP لطرف ثالث (مثل Saxon-HE) على مسار الفئات (classpath)
التأثيرقراءة الملفات المحلية التي يمكن لعملية Camel قراءتها؛ وهجمات SSRF على المضيفات الداخلية التي تسمّيها الوثيقة
الإصدارات المتأثرةمن 4.0.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.1 (فقط عند وجود TransformerFactory غير تابع لـ JDK)
الإصدارات المُصلحة4.18.5، 4.22.1، 4.23.0
JIRACAMEL-24605
الفضلClaude Security Scan Tool

الإشعار الأمني: https://camel.apache.org/security/CVE-2026-91858.html

وحدة Quarkus المتأثرة مبنية على CQ 3.39.0 (Camel 4.22.0). أما الضابط المُرقَّع فهو CQ 3.40.0 (Camel 4.22.1). أُضيف Saxon-HE 13.0 إلى كلتا الوحدتين ليكون بديلًا عن تطبيق يستخدم أيضًا camel-xslt-saxon/camel-saxon؛ فبدون TransformerFactory غير تابع لـ JDK لا يكون الخلل قابلًا للاستغلال.

الإصلاح

أصبح FopProducer يضبط أيضًا XMLConstants.ACCESS_EXTERNAL_DTD و XMLConstants.ACCESS_EXTERNAL_STYLESHEET على السلسلة الفارغة في TransformerFactory الذي ينشئه (بالإضافة إلى FEATURE_SECURE_PROCESSING)، بما يطابق إعدادات معالجة XML الآمنة المستخدمة في XmlConverter. وبالتالي يُرفض الوصول إلى DTD وأوراق الأنماط الخارجية على أي تطبيق JAXP يحترم تلك السمات، بما في ذلك Saxon-HE.

التخفيف إذا لم تتمكن من الترقية

لا تُرسِل XSL-FO غير موثوق إلى منتج fop:، أو أزِل TransformerFactory البديل من JAXP (مثل Saxon-HE) من مسار الفئات (classpath) حتى يُستخدم محوّل JDK — الذي يرفض بالفعل DTDs الخارجية في ظل المعالجة الآمنة.

إخلاء المسؤولية

نُشر هذا المستودع لأغراض تعليمية ودفاعية: لمساعدة مستخدمي Apache Camel على فهم الثغرة الأمنية، والتحقق مما إذا كانوا متأثرين بها، وتأكيد أن الترقية تحلّها. يشير DTD الخارجي إلى استدعاء راجع (callback) داخل العملية على localhost؛ ولا يتم الاتصال بأي شيء خارج أداة إعادة الإنتاج ولا تُقرأ أي ملفات حساسة. لا تستخدم هذه المواد ضد أنظمة لا تملكها أو لا تديرها.

تنزيل الأداة