Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-40864 — Proof-of-concept per CVE-2026-40864: bypass XSRF di JupyterHub tramite POST di form cross-origin che sfrutta Sec-Fetch-Mode: no-cors. Include HTML PoC, analisi della causa principale e cronologia della divulgazione. | Kitploit
Strumenti/GitHubGitHub/romain-deperne/cve-2026-40864
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e Formazione
GitHubromain-deperne/cve-2026-40864

CVE-2026-40864

Proof-of-concept per CVE-2026-40864: bypass XSRF di JupyterHub tramite POST di form cross-origin che sfrutta Sec-Fetch-Mode: no-cors. Include HTML PoC, analisi della causa principale e cronologia della divulgazione.

Vedi Repository
91 mese 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-40864 — Bypass XSRF in JupyterHub tramite POST di form cross-origin (Sec-Fetch-Mode: no-cors)

Gravità: Media (CVSS 5.4) CWE: CWE-352 — Cross-Site Request Forgery (XSRF) Interessato: jupyterhub 4.1.0 ≤ versione < 5.4.5 (corretto in 5.4.5) Avviso: GHSA-m68r-v472-jgq9 NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-40864 Credito: Romain Deperne

TL;DR

La protezione XSRF di JupyterHub (rivista nella 4.1.0) utilizzava l'header di richiesta Sec-Fetch-Mode per decidere se una richiesta fosse same-origin. Trattava Sec-Fetch-Mode: no-cors come same-origin — ma no-cors è esattamente ciò che un browser invia per un invio di form "semplice" cross-origin. Di conseguenza, i POST di form HTML cross-origin verso gli endpoint di form dell'Hub (/hub/spawn, /hub/accept-share) aggiravano completamente il controllo XSRF.

L'API JSON non è interessata (richiede un content type non semplice, che forza un preflight CORS). Solo gli endpoint di form HTML sono raggiungibili in questo modo.

Analisi

La logica XSRF passa direttamente a "attendibile" per un insieme di stati Sec-Fetch-* pensati per catturare le navigazioni same-origin. Sec-Fetch-Mode: no-cors era incluso in quell'insieme attendibile. Ma no-cors è la modalità che il browser assegna a un semplice <form method=POST> inviato verso un'origine diversa — precisamente il classico vettore CSRF che il token dovrebbe fermare. Quindi qualsiasi endpoint che modifica lo stato e che accetta un corpo di form semplice, e si affida unicamente a questo controllo XSRF, è falsificabile cross-origin.

Mappando ciò sugli endpoint reali: /hub/spawn (avvia il server della vittima) e /hub/accept-share (fa accettare alla vittima una condivisione del server dell'attaccante) sono entrambi POST di form dietro questo controllo.

Impatto

  • /hub/spawn — una pagina dell'attaccante può avviare il server single-user della vittima senza consenso (consumo di risorse / stato inatteso; l'attaccante non ottiene accesso a quel server).
  • /hub/accept-share — quando l'attaccante è un utente JupyterHub autorizzato a condividere il proprio server, può costringere una vittima ad accettare una condivisione, dando alla vittima accesso al server dell'attaccante (un passo preparatorio per ulteriori scenari di social engineering / data-drop).

Causa principale

Usare Sec-Fetch-Mode come oracolo di origine non è affidabile: no-cors non implica same-origin. La correzione nella 5.4.5 smette di considerare no-cors come same-origin. Gli operatori che non possono aggiornare immediatamente possono scartare le richieste che trasportano Sec-Fetch-Mode: no-cors a livello di reverse proxy.

Proof of Concept

poc/csrf_spawn.html — ospitalo su qualsiasi origine dell'attaccante e fai aprire il file a un utente JupyterHub autenticato. Il form con invio automatico effettua un POST cross-origin verso /hub/spawn (il browser invia Sec-Fetch-Mode: no-cors); le build vulnerabili lo accettano senza un token _xsrf valido e avviano il server della vittima. Imposta action su /hub/accept-share per la variante di accettazione della condivisione.

1. Edit TARGET-JUPYTERHUB in poc/csrf_spawn.html
2. Serve the file from an attacker origin (any static host)
3. Open it in a browser already authenticated to the target Hub
4. Observe the victim's server spawn with no XSRF token supplied

Cronologia della divulgazione

  • Segnalato privatamente tramite GitHub Security Advisory
  • Corretto in JupyterHub 5.4.5
  • Avviso GHSA-m68r-v472-jgq9 pubblicato; CVE-2026-40864 assegnato

Divulgato in modo responsabile. PoC pubblicato dopo il rilascio della correzione.

Scarica lo strumento