Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-41729 — CVE-2026-41729 PoC | Kitploit
ツール/GitHubGitHub/daehyuh/cve-2026-41729
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育
GitHubdaehyuh/cve-2026-41729

CVE-2026-41729

CVE-2026-41729 PoC

リポジトリを見る
53ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-41729: Spring Data REST JSON Patch Map Key SpEL Injection PoC

このリポジトリは、Spring公式セキュリティアドバイザリとして公開された CVE-2026-41729の最小再現PoCです。

  • 公式アドバイザリ: https://spring.io/security/cve-2026-41729/
  • 公式タイトル: Spring Data REST SpEL Injection via Map Key in JSON Patch
  • 深刻度: High
  • CVSS v3.1: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
  • 公開日: 2026-06-09

脆弱性の概要

Spring Data RESTがJSON Patchリクエスト (Content-Type: application/json-patch+json)を処理する際に、map型プロパティの mapキーパス断片をSpEL式に直接挿入する問題がありました。

公式アドバイザリによると、persistent entityがMap型属性を公開し、攻撃者が 該当itemリソースにPATCHリクエストを送信できる場合、map keyセグメントを操作して 意図されたmapインデクサーリテラルの外に脱出し、aggregate rootコンテキストでSpEL サブ式を評価させることができます。readパッチパスとwriteパッチパスの両方が 影響を受けると公開されています。

このPoCは、そのうちwriteパッチパスを使用して、通常のREST表現では公開されない @JsonIgnoreフィールドが、巧妙に細工されたJSON Patchパスによって変更されることを示しています。

影響範囲

公式アドバイザリの影響製品:

  • Spring Data REST

影響バージョン:

  • 3.7.0 - 3.7.19
  • 4.3.0 - 4.3.16
  • 4.4.0 - 4.4.14
  • 4.5.0 - 4.5.11
  • 5.0.0 - 5.0.5
  • サポートが終了した以前のバージョンも影響を受ける可能性があります

修正バージョン:

  • 3.7.20
  • 4.3.17
  • 4.4.15
  • 4.5.12 または 4.5.11.1
  • 5.0.6 または 5.0.5.1

このPoCが示すこと

テストは実際のSpring Bootアプリケーションを起動し、Spring Data RESTリポジトリの エンドポイントにHTTP PATCHリクエストを送信します。

ドメインオブジェクトは次の構造を持ちます。

  • 外部に公開されるpeople map
  • 各Person内に存在するが、Jackson/Spring Data REST表現では隠されている hiddenChildren map

通常のRESTレスポンスでは、hiddenChildrenとその内部の値は見えません。

GET /wrappers/sample

隠されたプロパティを直接指定するJSON Patchは拒否されます。

PATCH /wrappers/sample
Content-Type: application/json-patch+json

[
  {
    "op": "replace",
    "path": "/people/a/hiddenChildren/b/name",
    "value": "after"
  }
]

しかし、巧妙に細工されたmap keyを使用すると、Spring Data RESTのJSON Patchパス -> SpEL パス変換処理において、意図されたmap keyリテラルから逸脱して、隠されたプロパティパスに 到達することができます。

PATCH /wrappers/sample
Content-Type: application/json-patch+json

[
  {
    "op": "replace",
    "path": "/people/a'].hiddenChildren['b/name",
    "value": "after"
  }
]

脆弱なバージョンでは、このリクエストが成功し、内部の値が次のように変わります。

before -> after

テストでは、mapにa'].hiddenChildren['bという実際のキーが作成されたのではなく、 式のブレイクアウトによって隠されたプロパティパスが変更されたことを確認します。

実行方法

Windows:

.\mvnw.cmd test

macOS/Linux:

./mvnw test

脆弱バージョンでの期待される結果:

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

テストの成功は「脆弱な動作が再現された」ことを意味します。つまり、脆弱な依存関係では、 巧妙に細工されたJSON Patchリクエストが成功し、隠された内部状態の変更が証明されます。

使用した依存関係

このリポジトリはSpring Boot 3.5.14のparentを使用し、その組み合わせで spring-data-rest-webmvc 4.5.11が解決されます。これは公式アドバイザリの影響範囲である 4.5.0 - 4.5.11に含まれます。

なぜ危険なのか

Spring Data RESTエンドポイントにJSON Patchリクエストを送信できる攻撃者は、map keyを 操作してサーバー側で意図しないSpELパス評価を引き起こすことができます。その結果、 アプリケーションがREST表現で公開しないようにしていたオブジェクトグラフの内部値が 読み取られたり、変更されたりする可能性があります。

公式アドバイザリは、機密性と完全性への影響をHighと評価しました。

Credit

公式Springアドバイザリには次のように記載されています。

  • Daehyun Kang (@daehyuh)

参考リンク

  • Spring公式アドバイザリ: https://spring.io/security/cve-2026-41729/
  • CVSS計算ツール: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N&version=3.1
ツールをダウンロード