Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
spring-ai-sibling-loop-poc — # Reproduction minimale pour la boucle auto-référentielle OOM de Spring AI ParagraphManager (correctif incomplet de CVE-2026-47851) | Kitploit
Outils/GitHubGitHub/tangyaofq/spring-ai-sibling-loop-poc
Analyse des VulnérabilitésExploitationArticles et RechercheApprentissage et ÉducationRessources Organisées
GitHubtangyaofq/spring-ai-sibling-loop-poc

spring-ai-sibling-loop-poc

# Reproduction minimale pour la boucle auto-référentielle OOM de Spring AI ParagraphManager (correctif incomplet de CVE-2026-47851)

Voir le dépôt
il y a 1 jourPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Spring AI PDF Reader — PoC de boucle auto-référentielle entre frères (correction incomplète de CVE-2026-47851)

Reproduction minimale d'une boucle infinie / OOM dans org.springframework.ai.reader.pdf.config.ParagraphManager de org.springframework.ai:spring-ai-pdf-document-reader.

Signalé comme avis de sécurité GitHub privé à spring-projects/security-advisories. Pas une divulgation publique. Ce dépôt est partagé uniquement pour divulgation responsable et vérification.


Vulnérabilité

ParagraphManager.generateParagraphs itère sur les frères du plan via getNextSibling() sans détection de cycle ni limite d'itération. Un PDF dont l'élément du plan déclare son propre pointeur /Next (une ) provoque une boucle qui ne se termine jamais ; chaque itération ajoute un nouveau à la liste du parent, épuisant le tas de la JVM avec une .

boucle auto-référentielle entre frères
Paragraph
children
OutOfMemoryError

La vérification ajoutée dans la correction de CVE-2026-47851 (limite de profondeur + ensemble visité) ne couvre que les cycles firstChild, pas les boucles auto-référentielles entre frères : la profondeur ne dépasse jamais le niveau 1, et l'ensemble visité n'enregistre que firstChild, donc le frère n'y entre jamais. La variante se reproduit donc également sur la dernière version (2.0.1).

ÉlémentValeur
Composant affectéorg.springframework.ai:spring-ai-pdf-document-reader
Versions affectées< 2.0.2 (toutes les versions connues ; 1.x et 2.0.0 ne contiennent même pas la correction de CVE-2026-47851)
Classe vulnérableorg.springframework.ai.reader.pdf.config.ParagraphManager
Déclencheurnew ParagraphPdfDocumentReader(resource) avec un PDF malveillant
ImpactOutOfMemoryError, terminaison du processus — DoS
Sévérité7.5 ÉLEVÉE — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Lié àCVE-2026-47851 (correction incomplète)

Fichiers

root@kitploit:~
pom.xml                          — Build Maven, dépend de spring-ai-pdf-document-reader:2.0.1
src/main/java/ReleaseVerify.java — code utilisateur réel (appel API officiel)
poc/selfloop.pdf                 — PDF malveillant de 396 octets (boucle auto-référentielle entre frères)
poc/normal.pdf                   — PDF témoin de 384 octets (identique sauf absence de référence auto `/Next`)

Les deux PDF diffèrent d'exactement 12 octets — selfloop.pdf contient un /Next 5 0 R supplémentaire dans l'élément du plan, pointant l'élément vers lui-même comme frère suivant.


Build

root@kitploit:~
mvn -q package

Produit target/springai-release-verify-1.0.0.jar (fat jar, inclut PDFBox 3.0.7).

Reproduction

root@kitploit:~
# PDF malveillant — OOM en quelques secondes
java -Xmx96m -cp target/springai-release-verify-1.0.0.jar ReleaseVerify para poc/selfloop.pdf

# PDF témoin — se termine normalement en <100ms
java -Xmx96m -cp target/springai-release-verify-1.0.0.jar ReleaseVerify para poc/normal.pdf

L'OOM se produit à l'intérieur du constructeur ParagraphPdfDocumentReader (qui invoque new ParagraphManager(document)); get() n'est jamais atteint.


Portée de ce dépôt

Ce dépôt existe uniquement pour appuyer la vérification de l'avis signalé en privé. Les fichiers PDF sont inoffensifs pour PDFBox et tout autre analyseur PDF conforme ; ils ne déclenchent qu'une erreur logique dans la traversée de ParagraphManager de Spring AI. Ne pas utiliser contre des systèmes dont vous n'êtes pas propriétaire.

Télécharger l’outil