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-47883 — Proof-of-concept minimale per l'open redirect di UrlHandlerFilter di Spring Framework (CVE-2026-47883), che dimostra come richieste con doppio slash appositamente costruite producano header Location controllati dall'attaccante. | Kitploit
Strumenti/GitHubGitHub/daehyuh/cve-2026-47883
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza Web
GitHubdaehyuh/cve-2026-47883

CVE-2026-47883

Proof-of-concept minimale per l'open redirect di UrlHandlerFilter di Spring Framework (CVE-2026-47883), che dimostra come richieste con doppio slash appositamente costruite producano header Location controllati dall'attaccante.

Vedi Repository
2 giorni 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-47883: Spring Framework UrlHandlerFilter Open Redirect PoC

Questo repository è una proof-of-concept (PoC) minima che riproduce la CVE-2026-47883, pubblicata tramite l'avviso di sicurezza ufficiale di Spring.

  • Avviso ufficiale: https://spring.io/security/cve-2026-47883/
  • Titolo ufficiale: Spring Framework Open Redirect in UrlHandlerFilter
  • Gravità: Media
  • 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)
  • Data di pubblicazione: 2026-08-20

Riepilogo della vulnerabilità

Se si configura UrlHandlerFilter di Spring Framework con un pattern molto ampio e in modalità redirect, viene generato un header Location che punta a un origin esterno, causando un open redirect. L'avviso ufficiale di Spring indica come interessate entrambe le varianti del filtro in Spring MVC e Spring WebFlux.

Scarica lo strumento

Nel percorso Servlet di questa PoC, la posizione di redirect viene utilizzata nell'header di risposta dopo aver rimosso lo slash finale (trailing slash) dalla URI della richiesta.

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

Se la URI di richiesta grezza è //attacker.example/, il risultato è //attacker.example. Secondo la RFC 3986 §4.2, //attacker.example è un network-path reference, quindi il browser può interpretarlo come un indirizzo esterno che mantiene lo scheme corrente (ad esempio https://attacker.example).

Condizioni necessarie

Questa PoC utilizza le seguenti condizioni:

  • Viene utilizzata una versione interessata di Spring Framework.
  • UrlHandlerFilter è registrato in modalità redirect.
  • È applicato un pattern molto ampio, come /**.
  • L'attaccante può inoltrare al server un request target grezzo che inizia con //.
root@kitploit:~
UrlHandlerFilter.trailingSlashHandler("/**")
    .redirect(HttpStatus.PERMANENT_REDIRECT)
    .build();

Ambito di impatto

Artifact interessati secondo l'avviso ufficiale:

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

Versioni interessate:

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

Versioni corrette:

Versione correttaDisponibilità
7.0.9OSS
7.0.8.1Enterprise Support Only
6.2.20Enterprise Support Only

Cosa dimostra questa PoC

UrlHandlerFilterBootServletIntegrationTest (riproduzione principale)

Avvia una vera applicazione Spring Boot + Tomcat embedded e registra il seguente filtro:

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

Invia la richiesta tramite un socket TCP grezzo, in modo che il client HTTP non possa normalizzare in anticipo il percorso //.

  1. embeddedServletContainerEmitsNetworkPathReferenceForDoubleSlashPath
    • Invia GET //attacker.example/ HTTP/1.1.
    • Verifica 308 Permanent Redirect e Location: //attacker.example.
    • Dimostra il comportamento vulnerabile, interpretabile come origin esterno dal browser.
  2. embeddedServletContainerKeepsExpectedSameOriginRelativeLocationForOrdinaryPath
    • Come controllo normale invia GET /account/ HTTP/1.1.
    • Verifica che Location: /account venga mantenuto.

UrlHandlerFilterOpenRedirectTest (test ausiliario)

Verifica direttamente l'API del filtro Servlet tramite oggetti mock e controlla il gruppo di controllo con percorsi normali.

Nel test ausiliario reactive si verifica che una specifica URI creata con MockServerHttpRequest venga normalizzata in /attacker.example. Tuttavia, questa non è una riproduzione end-to-end del request-target grezzo di WebFlux, e non significa che WebFlux non sia interessato. L'ambito di impatto dell'avviso ufficiale di Spring comprende sia Spring MVC sia Spring WebFlux.

Esecuzione

Windows:

root@kitploit:~
.\mvnw.cmd test

macOS/Linux:

root@kitploit:~
./mvnw test

Risultato atteso con la versione vulnerabile:

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

Il successo dei test significa che il comportamento vulnerabile è stato riprodotto. Nel test di integrazione principale, una richiesta grezza appositamente costruita genera un valore Location interpretabile come origin esterno, mentre le richieste normali mantengono il percorso relativo same-origin.

Dipendenze utilizzate

Questo repository utilizza la seguente combinazione:

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

Spring Boot e Tomcat sono l'ambiente di esecuzione della PoC; il prodotto ufficialmente interessato è Spring Framework. La versione 6.2.18 di Spring Framework usata nella PoC rientra nell'intervallo ufficiale interessato 6.2.0 - 6.2.19.

Perché è pericoloso

Un attaccante può indurre l'utente a spostarsi su un sito esterno sfruttando l'URL di un'applicazione di cui l'utente si fida. Ciò può essere usato in scenari di phishing, abuso di relazioni di fiducia e successiva sottrazione di credenziali.

Il vettore CVSS ufficiale non richiede privilegi preliminari ma necessita dell'interazione dell'utente; valuta l'impatto su riservatezza e integrità come Low e quello sulla disponibilità come None.

Mitigazione

Come indicato nell'avviso ufficiale di Spring, è necessario aggiornare a una versione corretta compatibile con il canale di supporto in uso. L'avviso ufficiale specifica che dopo l'aggiornamento non sono necessarie ulteriori misure di mitigazione.

Crediti

Nell'avviso ufficiale di Spring è indicato quanto segue:

  • Daehyun Kang (@daehyuh)

Riferimenti

  • Avviso ufficiale di 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
  • Calcolatore 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