Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
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-replay — Regressione offline indipendente di CVE-2026-44431 su release urllib3 bloccate, con attribuzione del reporter originale. | Kitploit
Strumenti/GitHubGitHub/ssh-pur66/cve-replay
Strumenti DifensiviAnalisi StaticaAnalisi delle VulnerabilitàSicurezza WebPaper e RicercaApprendimento e FormazioneLab e Pratica
GitHubssh-pur66/cve-replay

cve-replay

Regressione offline indipendente di CVE-2026-44431 su release urllib3 bloccate, con attribuzione del reporter originale.

Vedi Repository
33 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 →
Sito web
Condividi

CVE Replay: il confine dell'header di redirect

CVE-2026-44431 · urllib3 2.6.3 → 2.7.0 · riprodotto il 27 settembre 2026

Una richiesta trasporta tre header sensibili verso una singola origine. Un redirect cambia la destinazione. La richiesta successiva li trasporta ancora?

Questa regressione indipendente esegue la reale implementazione del redirect da due release esatte di urllib3. La versione 2.6.3 mantiene tutti e tre gli header attraverso l'API di basso livello interessata. La versione 2.7.0 li rimuove. Un header benigno sopravvive, e le richieste ordinarie continuano a funzionare.

Risultato misurato

Fixtureurllib3 2.6.3urllib3 2.7.0
Redirect cross-origin di basso livello3 header sensibili mantenuti0 mantenuti
Stesso caso con nomi in minuscolo3 mantenuti0 mantenuti
Controllo API di alto livello0 mantenuti0 mantenuti
Risposta 200 diretta3 mantenuti come previsto3 mantenuti come previsto
Redirect esplicitamente disabilitatoUna chiamata; 302 restituitoUna chiamata; 302 restituito
Set di rimozione personalizzato aggiunge marcatore benignoTutti e 4 gli header mantenutiTutti e 4 rimossi

12/12 aspettative di scenario superate. Ogni scenario verifica anche lo stato della risposta, il numero di chiamate di trasporto, il set di header iniziale, il risultato dell'header benigno, e che gli header del chiamante non siano stati mutati. L'esito vulnerabile è un risultato di base atteso, non un controllo di sicurezza superato.

I risultati leggibili da macchina includono gli argomenti catturati, gli hash esatti dei wheel, il runtime, gli hash del codice sorgente dei test, l'attribuzione e il momento della riproduzione.

Il problema pubblicato

L'advisory upstream, pubblicato il 7 maggio 2026, identifica un problema di esposizione di informazioni nel percorso di redirect di basso livello con proxy di urllib3. Elenca le versioni >=1.23, <2.7.0 come interessate. Chiamare ProxyManager.connection_from_url(...).urlopen(..., assert_same_host=False) poteva trasportare header sensibili configurati in una richiesta reindirizzata verso un'altra origine. L'API di alto livello del manager li rimuoveva già.

La correzione upstream applica Retry.remove_headers_on_redirect prima della richiesta ricorsiva di basso livello. Il nostro caso con header in minuscolo segue l'attenzione della regressione upstream al casing dei nomi degli header. Il caso di rimozione personalizzata verifica che la regola rispetti il set configurato, oltre ai soli tre nomi predefiniti.

L'advisory accredita christos-cantina-security come segnalatore, illia-v come coordinatore, e sethmlarson come revisore della remediation. Il contributo di Sergio Rodriguez qui è l'harness offline indipendente e l'analisi prima/dopo. Questa è una riproduzione della loro CVE pubblicata.

Riprodurre la fixture

Usa Python 3.10 o successivo. Non è necessario pip install o un ambiente virtuale: ogni versione viene importata direttamente dal suo wheel pure-Python in un sottoprocesso isolato nuovo.

Dalla radice del repository del portfolio:

python -B ./labs/cve-replay/run_replay.py --fetch
python -B ./labs/cve-replay/run_replay.py

Il primo comando scarica i due wheel esatti nella directory .cache/wheels/ ignorata dal lab e verifica i loro hash SHA-256 rispetto al manifest. Il secondo comando usa quella cache senza scaricare. Per un checkout del sorgente autonomo, esegui python -B run_replay.py --fetch, poi lo stesso comando senza --fetch. --cache accetta una directory di cache locale diversa.

Dove inizia il mock

HTTPConnectionPool._make_request viene sostituito con un trasporto a due risposte: un 302 con una location fissa, poi un 200. La fixture cattura gli argomenti che raggiungono quel confine. Il parsing di urllib3, la policy di retry, il filtraggio degli header e la gestione ricorsiva dei redirect vengono eseguiti invariati dal wheel selezionato.

Tutte le destinazioni sono nomi .invalid riservati e fissi; tutti i valori degli header iniziano con DUMMY. La costruzione dei socket e le funzioni DNS sollevano immediatamente un'eccezione. La sonda di capacità IPv6 all'import della libreria viene negata e registrata separatamente; gli scenari di replay non tentano alcuna operazione di rete. Non c'è alcun server in ascolto o target live.

Questo convalida la gestione degli argomenti del redirect. Non misura il traffico proxy end-to-end. La versione 2.7.0 è la prima correzione per questa particolare CVE; questo confronto storico non è una raccomandazione a selezionarla al posto di release supportate più recenti.

Fonti e attribuzione

  • Advisory del maintainer / CVE-2026-44431
  • Correzione upstream e test di regressione
  • Sorgente della release interessata
  • Sorgente della release corretta
  • Note di rilascio di urllib3 2.7.0
  • URL dei pacchetti bloccati, metadati PyPI e hash

Gli script della fixture e l'analisi sono lavoro originale del portfolio. urllib3 è un progetto upstream distribuito sotto la sua licenza MIT; il suo codice e i wheel di rilascio non sono ridistribuiti nell'archivio sorgente del portfolio. Vengono scaricati separatamente da PyPI e importati invariati per l'esperimento.

Scarica lo strumento