Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
spring-ai-sibling-loop-poc — # إعادة إنتاج مصغّرة لاستنزاف الذاكرة OOM في Spring AI ParagraphManager بسبب الحلقة الذاتية بين الأشقاء (إصلاح غير مكتمل لـ CVE-2026-47851) | Kitploit
أدوات/GitHubGitHub/tangyaofq/spring-ai-sibling-loop-poc
تحليل الثغرات الأمنيةالاستغلالالأوراق والأبحاثالتعلم والتعليمموارد منسقة
GitHubtangyaofq/spring-ai-sibling-loop-poc

spring-ai-sibling-loop-poc

# إعادة إنتاج مصغّرة لاستنزاف الذاكرة OOM في Spring AI ParagraphManager بسبب الحلقة الذاتية بين الأشقاء (إصلاح غير مكتمل لـ CVE-2026-47851)

عرض المستودع
منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Spring AI PDF Reader — إثبات المفهوم للحلقة الذاتية بين الأشقاء (إصلاح غير مكتمل لـ CVE-2026-47851)

استنساخ مصغّر لحلقة لا نهائية / نفاد ذاكرة (OOM) في org.springframework.ai.reader.pdf.config.ParagraphManager من org.springframework.ai:spring-ai-pdf-document-reader.

تم الإبلاغ عنه كاستشارة أمنية خاصة على GitHub إلى spring-projects/security-advisories. ليس إفصاحًا عامًا. تتم مشاركة هذا المستودع فقط لأغراض الإفصاح المسؤول والتحقق.


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

ParagraphManager.generateParagraphs يكرر عبر أشقاء المخطط التفصيلي (outline) باستخدام getNextSibling() دون أي كشف للدورات أو حد أقصى للتكرار. ملف PDF الذي يصرّح عنصر مخططه التفصيلي بمؤشر /Next خاص به (حلقة ذاتية بين الأشقاء) يتسبب في عدم إنهاء الحلقة أبدًا؛ كل تكرار يضيف جديدًا إلى قائمة الخاصة بالعنصر الأب، مما يستنزف ذاكرة JVM مع خطأ .

Paragraph
children
OutOfMemoryError

الفحص المضاف في إصلاح CVE-2026-47851 (حد العمق + مجموعة الزيارات) يغطي فقط دورات firstChild، وليس الحلقات الذاتية بين الأشقاء: العمق لا يتجاوز أبدًا المستوى 1، ومجموعة الزيارات تسجل firstChild فقط لذا لا يدخل الشقيق إليها أبدًا. لذلك يتكرر هذا الاختلاف على أحدث إصدار (2.0.1) أيضًا.

العنصرالقيمة
المكوّن المتأثرorg.springframework.ai:spring-ai-pdf-document-reader
الإصدارات المتأثرة< 2.0.2 (جميع الإصدارات المعروفة؛ الإصدارات 1.x و2.0.0 لا تحتوي حتى على إصلاح CVE-2026-47851)
الفئة المعرضة للخطرorg.springframework.ai.reader.pdf.config.ParagraphManager
المحفّزnew ParagraphPdfDocumentReader(resource) مع ملف PDF خبيث
التأثيرOutOfMemoryError، إنهاء العملية — رفض الخدمة (DoS)
الخطورة7.5 عالية — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ذات صلةCVE-2026-47851 (إصلاح غير مكتمل)

الملفات

root@kitploit:~
pom.xml                          — بناء Maven، يعتمد على spring-ai-pdf-document-reader:2.0.1
src/main/java/ReleaseVerify.java — كود مستخدم حقيقي (استدعاء API رسمي)
poc/selfloop.pdf                 — ملف PDF خبيث بحجم 396 بايت (حلقة ذاتية بين الأشقاء)
poc/normal.pdf                   — ملف PDF ضابط بحجم 384 بايت (مطابق تمامًا باستثناء عدم وجود مرجع ذاتي /Next)

يختلف ملفا PDF بمقدار 12 بايتًا بالضبط — selfloop.pdf يحتوي على /Next 5 0 R إضافي واحد في عنصر المخطط التفصيلي، يشير العنصر إلى نفسه كشقيق تالٍ له.


البناء

root@kitploit:~
mvn -q package

ينتج target/springai-release-verify-1.0.0.jar (jar كامل، يتضمن PDFBox 3.0.7).

إعادة الإنتاج

root@kitploit:~
# ملف PDF خبيث — نفاد ذاكرة (OOM) خلال ثوانٍ
java -Xmx96m -cp target/springai-release-verify-1.0.0.jar ReleaseVerify para poc/selfloop.pdf

# ملف PDF ضابط — يكتمل بشكل طبيعي في أقل من 100 مللي ثانية
java -Xmx96m -cp target/springai-release-verify-1.0.0.jar ReleaseVerify para poc/normal.pdf

يحدث نفاد الذاكرة (OOM) داخل مُنشئ ParagraphPdfDocumentReader (الذي يستدعي new ParagraphManager(document))؛ لا يتم الوصول إلى get() أبدًا.


نطاق هذا المستودع

هذا المستودع موجود فقط لدعم التحقق من الاستشارة المبلّغ عنها بشكل خاص. ملفات PDF غير ضارة بـ PDFBox وأي محلل PDF متوافق آخر؛ فهي تثير خطأً منطقيًا في اجتياز ParagraphManager في Spring AI فقط. لا تستخدمها ضد أنظمة لا تملكها.

تنزيل الأداة