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-47883 — Preuve de concept minimale pour la redirection ouverte du Spring Framework UrlHandlerFilter (CVE-2026-47883), démontrant que des requêtes forgées à double barre oblique produisent des en-têtes Location contrôlés par l'attaquant. | Kitploit
Outils/GitHubGitHub/daehyuh/cve-2026-47883
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité Web
GitHubdaehyuh/cve-2026-47883

CVE-2026-47883

Preuve de concept minimale pour la redirection ouverte du Spring Framework UrlHandlerFilter (CVE-2026-47883), démontrant que des requêtes forgées à double barre oblique produisent des en-têtes Location contrôlés par l'attaquant.

Voir le dépôt
il y a 2 joursPas 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-47883: Spring Framework UrlHandlerFilter Open Redirect PoC

Ce dépôt est un PoC de reproduction minimale de CVE-2026-47883, publié dans l'avis de sécurité officiel de Spring.

  • Avis officiel : https://spring.io/security/cve-2026-47883/
  • Titre officiel : Spring Framework Open Redirect in UrlHandlerFilter
  • Sévérité : Medium
  • CVSS v3.1 : 5.4 (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N)
  • CWE : CWE-601 — URL Redirection to Untrusted Site (Open Redirect)
  • Date de publication : 2026-08-20

Résumé de la vulnérabilité

Lorsque UrlHandlerFilter de Spring Framework est configuré avec un motif très large et en mode redirection, un en-tête Location pointant vers un origin externe peut être généré, entraînant un open redirect. L'avis officiel de Spring indique que les variantes du filtre pour Spring MVC et Spring WebFlux sont toutes deux concernées.

Télécharger l’outil

Dans le chemin Servlet de ce PoC, l'emplacement de redirection est utilisé dans l'en-tête de réponse après suppression du slash final de l'URI de la requête.

root@kitploit:~
String location = trimTrailingSlash(request.getRequestURI());
response.setHeader(HttpHeaders.LOCATION, location);

Si l'URI brute de la requête est //attacker.example/, le résultat est //attacker.example. Selon la RFC 3986 §4.2, //attacker.example est une reference network-path ; le navigateur peut donc l'interpréter comme une adresse externe conservant le schéma courant (par ex. https://attacker.example).

Conditions de déclenchement

Ce PoC utilise les conditions suivantes.

  • Utilisation d'une version affectée de Spring Framework.
  • UrlHandlerFilter enregistré en mode redirection.
  • Un motif très large tel que /** est appliqué.
  • L'attaquant peut faire parvenir au serveur une cible de requête brute commençant par //.
root@kitploit:~
UrlHandlerFilter.trailingSlashHandler("/**")
    .redirect(HttpStatus.PERMANENT_REDIRECT)
    .build();

Périmètre d'impact

Artefacts impactés selon l'avis officiel :

  • org.springframework:spring-webmvc
  • org.springframework:spring-webflux

Versions affectées :

  • Spring Framework 7.0.0 - 7.0.8
  • Spring Framework 6.2.0 - 6.2.19

Versions corrigées :

Version corrigéePortée
7.0.9OSS
7.0.8.1Enterprise Support Only
6.2.20Enterprise Support Only

Ce que ce PoC démontre

UrlHandlerFilterBootServletIntegrationTest (reproduction principale)

Démarre une véritable application Spring Boot + Tomcat embarqué et enregistre le filtre suivant.

root@kitploit:~
UrlHandlerFilter.trailingSlashHandler("/**")
    .redirect(HttpStatus.PERMANENT_REDIRECT)
    .build();

Pour empêcher le client HTTP de normaliser au préalable le chemin //, la requête est envoyée via un socket TCP brut.

  1. embeddedServletContainerEmitsNetworkPathReferenceForDoubleSlashPath
    • Envoie GET //attacker.example/ HTTP/1.1.
    • Vérifie 308 Permanent Redirect et Location: //attacker.example.
    • Démontre le comportement vulnérable, interprétable par le navigateur comme un origin externe.
  2. embeddedServletContainerKeepsExpectedSameOriginRelativeLocationForOrdinaryPath
    • Groupe témoin : envoie GET /account/ HTTP/1.1.
    • Vérifie que Location: /account est conservé.

UrlHandlerFilterOpenRedirectTest (test auxiliaire)

Vérifie directement l'API du filtre Servlet avec des objets mock et confirme le groupe témoin de chemin normal.

Le test auxiliaire reactive vérifie qu'un URI donné construit avec MockServerHttpRequest est normalisé en /attacker.example. Ce n'est toutefois pas une reproduction de bout en bout de la cible de requête brute WebFlux, et cela ne signifie pas que WebFlux n'est pas affecté. Le périmètre d'impact de l'avis officiel de Spring couvre à la fois Spring MVC et Spring WebFlux.

Exécution

Windows :

root@kitploit:~
.\mvnw.cmd test

macOS/Linux :

root@kitploit:~
./mvnw test

Résultat attendu avec une version vulnérable :

root@kitploit:~
UrlHandlerFilterBootServletIntegrationTest: Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
UrlHandlerFilterOpenRedirectTest: Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

La réussite des tests signifie que « le comportement vulnérable a été reproduit ». Dans le test d'intégration principal, la requête brute forgée produit une valeur Location pouvant être interprétée comme un origin externe, tandis que les requêtes normales conservent un chemin relatif same-origin.

Dépendances utilisées

Ce dépôt utilise la combinaison suivante.

root@kitploit:~
Spring Boot 3.5.14
Spring Framework 6.2.18
Apache Tomcat 10.1.54
Java 17+

Spring Boot et Tomcat constituent l'environnement d'exécution du PoC ; le produit officiellement impacté est Spring Framework. La version 6.2.18 de Spring Framework utilisée dans le PoC est incluse dans le périmètre officiel affecté 6.2.0 - 6.2.19.

Pourquoi c'est dangereux

Un attaquant peut inciter un utilisateur à quitter une application de confiance vers un site externe en exploitant l'URL de cette application. Cela peut être utilisé dans des scénarios de hameçonnage, d'exploitation de relations de confiance et de vol ultérieur d'identifiants.

Le vecteur CVSS officiel ne requiert aucun privilège préalable mais nécessite une interaction de l'utilisateur ; il évalue l'impact sur la confidentialité et l'intégrité comme Low et l'impact sur la disponibilité comme None.

Atténuation

Selon l'avis officiel de Spring, il convient de mettre à niveau vers la version corrigée correspondant à votre canal de support. L'avis officiel précise qu'aucune mesure d'atténuation supplémentaire n'est nécessaire après la mise à niveau.

Credit

L'avis officiel de Spring mentionne :

  • Daehyun Kang (@daehyuh)

Liens de référence

  • Avis officiel Spring : https://spring.io/security/cve-2026-47883/
  • CWE-601 : https://cwe.mitre.org/data/definitions/601.html
  • RFC 3986 §4.2 : https://www.rfc-editor.org/rfc/rfc3986#section-4.2
  • Calculateur CVSS v3.1 : https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N&version=3.1