Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
spring-ai-sibling-loop-poc — # Spring AI ParagraphManager の兄弟自己ループ OOM の最小再現(CVE-2026-47851 の不完全な修正) | Kitploit
ツール/GitHubGitHub/tangyaofq/spring-ai-sibling-loop-poc
脆弱性分析エクスプロイト論文と研究学習と教育厳選リソース
GitHubtangyaofq/spring-ai-sibling-loop-poc

spring-ai-sibling-loop-poc

# Spring AI ParagraphManager の兄弟自己ループ OOM の最小再現(CVE-2026-47851 の不完全な修正)

リポジトリを見る
1日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Spring AI PDF Reader — 兄弟セルフループPoC(CVE-2026-47851の不完全な修正)

org.springframework.ai:spring-ai-pdf-document-reader の org.springframework.ai.reader.pdf.config.ParagraphManager における 無限ループ / OOM の最小再現コード。

spring-projects/security-advisories にプライベートGitHub Security Advisoryとして報告済み。公開開示ではありません。 このリポジトリは責任ある開示と検証の目的でのみ共有されています。


脆弱性

ParagraphManager.generateParagraphs は、getNextSibling() を使用してアウトラインの兄弟ノードを反復処理しますが、循環検出も反復回数の上限もありません。アウトライン項目が自身の /Next ポインタ(兄弟セルフループ)を宣言しているPDFの場合、ループが終了しなくなります。各反復で親の children リストに新しい Paragraph が追加され、 でJVMヒープを枯渇させます。

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
トリガー悪意のあるPDFを使用した new ParagraphPdfDocumentReader(resource)
影響OutOfMemoryError、プロセス終了 — DoS
深刻度7.5 HIGH — 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                 — 396バイトの悪意のあるPDF(兄弟セルフループ)
poc/normal.pdf                   — 384バイトの対照PDF(`/Next` 自己参照がないこと以外は同一)

2つのPDFはちょうど12バイトだけ異なります。selfloop.pdf にはアウトライン項目に /Next 5 0 R が1つ多く含まれており、項目が自身を次の兄弟として指しています。


ビルド

root@kitploit:~
mvn -q package

target/springai-release-verify-1.0.0.jar(fat 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 — 100ms未満で正常に完了
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パーサーにとって無害であり、Spring AIの ParagraphManager の走査における論理エラーのみを引き起こします。所有していないシステムに対して使用しないでください。

ツールをダウンロード