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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-12543-Fix-for-Wildfly — صورة Docker أساسية تتضمن إصلاحًا مُرحّلًا للتحقق من ترويسة المضيف (Host header) الخاص بثغرة CVE-2025-12543 في Undertow 1.4.x، مما يتيح نشرًا آمنًا لتطبيقات WildFly 11. | Kitploit
أدوات/GitHubGitHub/kavin71725/cve-2025-12543-fix-for-wildfly
أمن البنية التحتية السحابيةأمن الحاوياتتحليل الثغرات الأمنيةأمن الويبDevSecOpsأمن سلسلة التوريدسوء التكوين
GitHubkavin71725/cve-2025-12543-fix-for-wildfly

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-12543-Fix-for-Wildfly

صورة Docker أساسية تتضمن إصلاحًا مُرحّلًا للتحقق من ترويسة المضيف (Host header) الخاص بثغرة CVE-2025-12543 في Undertow 1.4.x، مما يتيح نشرًا آمنًا لتطبيقات WildFly 11.

عرض المستودع
14منذ 6 أشهرلم تتم المراجعة بعد
مشاركة

صورة أساسية لـ WildFly 11.0.0.Final — تصحيح CVE-2025-12543

نظرة عامة

يوفر هذا المستودع صورة قاعدة Docker مبنية على WildFly 11.0.0.Final مع تصحيح مُطبق من إصدار أحدث (backported) لثغرة CVE-2025-12543، وهي ثغرة حرجة في التحقق من ترويسة Host في Undertow.

الهدف من هذه الصورة هو توفيرها للزملاء كقاعدة. يمكنهم نشر تطبيق .war الخاص بهم وملف standalone.xml فوقها.


ملخص CVE-2025-12543

الحقلالتفاصيل
معرف CVECVE-2025-12543
المكوّنio.undertow:undertow-core
الخطورةحرجة (CVSS 9.6)
الإصدارات المتأثرةجميع الإصدارات < 2.2.39 (بما في ذلك 1.4.x)
تم الإصلاح فيUndertow 2.2.39 / 2.3.22
إصدار WildFly 11undertow-core-1.4.18.Final — متأثر

وصف الثغرة

يفشل Undertow في التحقق بشكل صحيح من ترويسة Host في طلبات HTTP الواردة. تتم معالجة الطلبات التي تحتوي على ترويسات Host تالفة أو خبيثة دون رفض، مما يتيح:

  • تسميم ذاكرة التخزين المؤقت (Cache poisoning)
  • اختطاف الجلسات (Session hijacking)
  • مسح الشبكة الداخلية
  • خلط البيانات عبر المستأجرين / تجاوز حدود الثقة

لماذا لا يتم ترقية WildFly؟

لا يزال المستخدمون الآخرون يعملون على WildFly 11، ولا توجد موارد أو خطط حاليًا للترقية. تم تطبيق التصحيح مباشرةً من إصدار أحدث (backported) داخل حزمة Undertow 1.4.18.Final JAR بدلاً من ذلك.


هيكل المستودع

.
├── Dockerfile                                  # Main image definition
├── README.md
├── wildfly-dist-11.0.0.Final.tar.gz           # WildFly 11 distribution archive
├── reports/
│   ├── result-20260401-0230.txt               # CVE scan report that identified the vulnerability
│   └── wildfly_11.0.0.Final_*.txt             # Additional scan reports
└── patch/
    ├── src/
    │   ├── HostHeaderHandler.java             # Backported fix — new handler class
    │   ├── HttpReadListener_only.java         # Decompiled + patched HttpReadListener source (reference)
    │   └── PatchHttpReadListener.java         # Javassist bytecode patcher tool
    ├── build.sh                               # Build script — rebuilds the patched JAR from scratch
    ├── undertow-core-1.4.18.Final.jar         # Original (unpatched) JAR — kept for reference
    └── undertow-core-1.4.18.Final-patched.jar # Patched JAR injected into the image

تفاصيل الملفات

Dockerfile

يقوم ببناء الصورة النهائية. وهو:

  1. يستخدم bitnamilegacy/java:1.8.432-7-debian-12-r2 (OpenJDK 1.8.0_432) كقاعدة
  2. يستخرج WildFly 11 إلى /opt/jboss/wildfly
  3. يستبدل undertow-core-1.4.18.Final.jar الأصلي بالإصدار المصحح
  4. يشغّل WildFly عبر standalone.sh -b 0.0.0.0 (يُربط بجميع الواجهات)

patch/undertow-core-1.4.18.Final-patched.jar

حزمة Undertow المصححة. وهي مطابقة للأصل باستثناء تغييرين:

  • أُضيف: io/undertow/server/handlers/HostHeaderHandler.class (وفئاته الداخلية)
  • عُدّل: io/undertow/server/protocol/http/HttpReadListener.class — يُحقن HostHeaderHandler في خط معالجة الطلبات

patch/src/HostHeaderHandler.java

معالج التحقق من ترويسة Host المُطبق من إصدار أحدث (backported). تم نقله من طلب السحب Undertow #1857 (UNDERTOW-2656).

جميع الثوابت (IP4_EXACT, IP6_EXACT, جداول الأحرف) مكتفية ذاتيًا — لا تعتمد على واجهات برمجية (APIs) أُضيفت في Undertow 2.x. عند كل طلب HTTP، يتحقق مما يلي:

  • وجود ترويسة Host (مطلوبة لـ HTTP/1.1)
  • وجود ترويسة Host واحدة فقط (بدون تكرار)
  • أن يكون المنفذ رقميًا وفي النطاق 1–65535
  • أن تكون حرفيات IP النصية (IPv4, IPv6, IPvFuture) سليمة البنية
  • أن تكون أحرف اسم المضيف أحرفًا صالحة وفقًا لتعريف reg-name في RFC 3986
  • يرفض الطلب برمز 400 Bad Request عند أي مخالفة

patch/src/PatchHttpReadListener.java

مصحح البايت كود Javassist لمرة واحدة. يقوم بتحميل HttpReadListener من حزمة JAR الأصلية ويستبدل:

// Before
Connectors.executeRootHandler(connection.getRootHandler(), exchange);

// After
Connectors.executeRootHandler(
    HostHeaderHandler.WRAPPER.wrap(connection.getRootHandler()),
    exchange
);

يؤدي ذلك إلى حقن HostHeaderHandler تلقائيًا في كل طلب HTTP، دون الحاجة إلى إعادة ترجمة كاملة لـ HttpReadListener (الذي يعتمد على فئات داخلية معقدة وخصائص xnio الداخلية).

patch/src/HttpReadListener_only.java

الكود المصدري المُفكك (Decompiled) لملف HttpReadListener الأصلي من Undertow 1.4.18.Final، ويُستخدم كمرجع لتحديد نقطة الحقن. ويتم أيضًا الاحتفاظ بالنسخة المصححة من هذا الكود المصدري هنا لأغراض التدقيق.

reports/result-20260401-0230.txt

تقرير فحص CVE (تم إنشاؤه في 2026-04-01) الذي حدد وجود CVE-2025-12543 في undertow-core-1.4.18.Final على المسار:

/opt/jboss/wildfly/modules/system/layers/base/io/undertow/core/main/undertow-core-1.4.18.Final.jar

إجراءات التصحيح

1. تحديد الثغرة

أكّد تقرير الفحص (result-20260401-0230.txt) أن undertow-core-1.4.18.Final متأثر بـ CVE-2025-12543 (CVSS 9.6).

2. البحث عن الإصلاح الصادر من المشروع الأصلي

الإصلاح موجود في Undertow PR #1857، وقد تم دمجه في main (2026-01-09) وتطبيقه على الإصدارين 2.2.x و2.3.x. يضيف الإصلاح HostHeaderHandler.java ويوصّله بـ HttpReadListener للتحقق من ترويسة Host في كل طلب.

3. تقييم جدوى الترقية المباشرة

الانتقال من Undertow 1.4.x إلى 2.2.x هو قفزة إصدار رئيسية تتضمن تغييرات جذرية في الواجهات البرمجية (APIs). يرتبط WildFly 11 ارتباطًا وثيقًا بـ Undertow 1.4.x عبر JBoss Modules. أي استبدال مباشر لملف JAR سيؤدي إلى ClassNotFoundException / NoSuchMethodError عند بدء التشغيل.

4. إعادة تطبيق HostHeaderHandler.java من إصدار أحدث

اكتب نسخة مكتفية ذاتيًا من HostHeaderHandler.java متوافقة مع Undertow 1.4.18.Final:

  • تضمين جميع ثوابت التعبيرات النمطية (IP4_EXACT, IP6_EXACT) — غير متوفرة في NetworkUtils الخاص بـ 1.4.x
  • إزالة exchange.isHostIncludedInRequestURI() — غير متوفرة في HttpServerExchange الخاص بـ 1.4.x
  • الحفاظ على جميع منطقيات التحقق مطابقة تمامًا للإصلاح الصادر من المشروع الأصلي

قم بالترجمة (compile) باستخدام classpath الخاص بـ Undertow 1.4.18 + xnio داخل صورة WildFly:

javac -cp undertow-core-1.4.18.Final.jar:xnio-api-3.5.4.Final.jar:jboss-logging-3.3.1.Final.jar \
      -d out HostHeaderHandler.java

5. تصحيح HttpReadListener عبر Javassist

فكّك HttpReadListener باستخدام Procyon لتحديد نقطة الحقن:

Connectors.executeRootHandler(this.connection.getRootHandler(), httpServerExchange);

يقع هذا الاستدعاء في handleEventWithNoRunningRequest().

ونظرًا لأن HttpReadListener يحتوي على فئات داخلية مجهولة ($1, $2, $3) لا يمكن الإشارة إليها من الكود المصدري المفكك، فإن إعادة الترجمة الكاملة غير ممكنة. بدلاً من ذلك، استخدم Javassist (PatchHttpReadListener.java) لتعديل البايت كود مباشرةً — مع استبدال استدعاء executeRootHandler ليلتف حول معالج الجذر (root handler) باستخدام HostHeaderHandler.WRAPPER.

java -cp javassist.jar:undertow-core-1.4.18.Final.jar:out \
     PatchHttpReadListener undertow-core-1.4.18.Final.jar out/

6. إعادة تعبئة الحزمة JAR

انسخ الحزمة JAR الأصلية واحقن ملفات الفئات المصححة/الجديدة:

cp undertow-core-1.4.18.Final.jar undertow-core-1.4.18.Final-patched.jar
jar uf undertow-core-1.4.18.Final-patched.jar \
    -C out io/undertow/server/handlers/HostHeaderHandler.class \
    -C out "io/undertow/server/handlers/HostHeaderHandler\$Wrapper.class" \
    -C out "io/undertow/server/handlers/HostHeaderHandler\$1.class" \
    -C out io/undertow/server/protocol/http/HttpReadListener.class

7. تحديث ملف Dockerfile

أضف تعليمة COPY للحزمة المصححة واستبدل الأصل داخل الصورة:

COPY patch/undertow-core-1.4.18.Final-patched.jar /tmp/
RUN cp /tmp/undertow-core-1.4.18.Final-patched.jar \
       /opt/jboss/wildfly/modules/system/layers/base/io/undertow/core/main/undertow-core-1.4.18.Final.jar

8. البناء والتحقق

docker build -t wildfly:11.0.0.Final-patched .

التحقق:

# Valid Host header — should return 200
curl -v -H "Host: localhost:8080" http://localhost:8080/
تنزيل الأداة