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
Tough-Cookie-v2.5.0-Patched — tough-cookie v2.5.0 corretto che risolve la vulnerabilità di prototype pollution CVE-2023-26136 con Object.create(null) in MemoryCookieStore, inclusa la dimostrazione dell'exploit e test unitari. | Kitploit
Strumenti/GitHubGitHub/dani33339/tough-cookie-v2.5.0-patched
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceExploitSicurezza WebApprendimento e Formazione
GitHubdani33339/tough-cookie-v2.5.0-patched

Tough-Cookie-v2.5.0-Patched

tough-cookie v2.5.0 corretto che risolve la vulnerabilità di prototype pollution CVE-2023-26136 con Object.create(null) in MemoryCookieStore, inclusa la dimostrazione dell'exploit e test unitari.

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 →
Vedi Repository
51 anno faNon ancora revisionato
Condividi

Tough-Cookie v2.5.0 Patchato - Correzione Prototype Pollution

Panoramica

Questo repository contiene una versione patchata del pacchetto tough-cookie, versione 2.5.0, per risolvere la critica vulnerabilità Prototype Pollution (CVE-2023-26136). La vulnerabilità consente agli attaccanti di manipolare la catena dei prototipi iniettando proprietà negli oggetti JavaScript. Ciò può portare a comportamenti inattesi, rischi per la sicurezza come l'esecuzione remota di codice e problemi di compatibilità nelle applicazioni che si affidano a questo pacchetto.

Descrizione della Vulnerabilità

Le versioni del pacchetto tough-cookie precedenti alla v4.1.3 sono vulnerabili alla Prototype Pollution quando si utilizza CookieJar con la modalità rejectPublicSuffixes=false. La vulnerabilità deriva da una gestione impropria dei cookie, in particolare quando cookie.domain viene impostato su . Ciò consente agli attaccanti di modificare l'oggetto principale , causando potenzialmente problemi diffusi in tutta l'applicazione.

__proto__
Object.prototype

Per maggiori dettagli sulla CVE-2023-26136, consulta:

  • NVD - CVE-2023-26136
  • Snyk - CVE-2023-26136 in Tough-Cookie
  • GitHub - Issue #282

Rischi potenziali della Prototype Pollution

La prototype pollution può introdurre diversi rischi critici, tra cui:

  • Vulnerabilità di sicurezza: Modificando l'Object.prototype di base, gli attaccanti possono manipolare il comportamento degli oggetti, potenzialmente aumentando i privilegi, accedendo a dati sensibili o aggirando i meccanismi di sicurezza nell'applicazione.

  • Denial of Service (DoS): L'inquinamento della catena dei prototipi può causare comportamenti imprevisti nel sistema, portando a crash, loop infiniti o esaurimento delle risorse, rendendo l'applicazione non disponibile per gli utenti legittimi.

  • Problemi di compatibilità: La modifica dell'Object.prototype può causare errori e comportamenti imprevisti nell'interazione con altre librerie o framework. Le dipendenze che si basano sulle catene dei prototipi potrebbero rompersi, portando a problemi di integrazione o a comportamenti errati dell'applicazione durante gli aggiornamenti.

  • Comportamento imprevisto dell'applicazione: La prototype pollution può portare a comportamenti irregolari del programma, inclusa la corruzione dei dati, violazioni della sicurezza e la potenziale esposizione dell'applicazione a ulteriori exploit.

Modifiche chiave

La patch consiste nel modificare la classe MemoryCookieStore, in particolare il metodo putCookie, per prevenire la prototype pollution creando oggetti privi di prototipo. Le modifiche principali includono:

  1. Utilizzare Object.create(null) invece di {} per creare oggetti senza prototipo.
  2. Correggere la vulnerabilità per cui i cookie potevano essere impostati con cookie.domain = __proto__.
  3. Aggiungere test per verificare che la vulnerabilità sia risolta correttamente.

Installazione della versione patchata

Per installare la versione patchata di tough-cookie, usa il seguente comando:

root@kitploit:~
npm install ./tough-cookie-2.5.0-PATCHED.tgz

Testare la correzione

Questo repository include un test unitario progettato per verificare che la vulnerabilità di prototype pollution sia stata risolta con successo.

Il test, denominato prototype_pollution_test, verifica in particolare che l'impostazione di cookie con dominio __proto__ non influenzi più la catena dei prototipi JavaScript. Ciò garantisce che la prototype pollution sia prevenuta, mantenendo l'integrità dell'applicazione.

Per eseguire i test e confermare la correzione, esegui il seguente comando:

root@kitploit:~
npm test

Dimostrazione dell'exploit

Per dimostrare l'exploit sia nella versione originale che in quella patchata, segui i passaggi seguenti:

Versione originale vulnerabile

Installa la versione vulnerabile di tough-cookie:

root@kitploit:~
npm install [email protected] && node index.js

Output previsto:

root@kitploit:~
Polluted object: {
  Slonser: Cookie="Slonser=polluted; Domain=__proto__; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms",
  Auth: Cookie="Auth=Lol; Domain=google.com; Path=/notauth; hostOnly=false; aAge=5ms; cAge=5ms"
} EXPLOITED SUCCESSFULLY

Questo indica che il prototipo di un oggetto è stato inquinato, confermando che la vulnerabilità è presente nella versione originale.

Versione patchata

root@kitploit:~
 npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js

Output previsto:

root@kitploit:~
EXPLOIT FAILED

Questo mostra che l'exploit è stato bloccato con successo, confermando che la vulnerabilità di prototype pollution è stata corretta.

Approccio e passaggi eseguiti

Il processo di risoluzione della vulnerabilità Prototype Pollution in tough-cookie v2.5.0 ha coinvolto diversi passaggi metodici per garantire che la correzione fosse completa ed efficace. Di seguito una panoramica dell'approccio che ho seguito:

1. Comprendere la vulnerabilità

Ho iniziato ricercando la Prototype Pollution (CVE-2023-26136) per comprenderne l'impatto. La vulnerabilità consente agli attaccanti di iniettare proprietà nella catena dei prototipi tramite la proprietà cookie.domain, causando potenzialmente rischi per la sicurezza come l'esecuzione remota di codice.

2. Ricerca delle correzioni esistenti

Ho esplorato le issue e le discussioni GitHub sulla vulnerabilità, inclusa la correzione in tough-cookie v4.1.3, che utilizza Object.create(null) per prevenire la prototype pollution. Questo mi ha aiutato a identificare le modifiche necessarie per correggere la v2.5.0.

3. Analizzare le versioni vulnerabile e patchata

Ho confrontato la v2.5.0 con la v4.1.3 per comprendere le differenze e individuare le modifiche necessarie. La modifica chiave consisteva nell'utilizzare oggetti privi di prototipo per prevenire lo sfruttamento.

4. Implementare la soluzione

Ho aggiornato la classe MemoryCookieStore per utilizzare Object.create(null) invece di {}, assicurando che non ci sia prototype pollution.

5. Testare la soluzione

Ho scritto test unitari per verificare la correzione e ho creato uno script di dimostrazione dell'exploit (index.js) per mostrare come la vulnerabilità viene prevenuta nella versione patchata.

6. Documentare la correzione

Infine, ho documentato la correzione, includendo le istruzioni di installazione e test, e ho creato il pacchetto della versione patchata (tough-cookie-2.5.0-PATCHED.tgz) per una facile distribuzione.

Riepilogo delle modifiche

File aggiunti/modificati rispetto alla v2.5.0

  • index.js: Script principale per dimostrare la vulnerabilità e la correzione.
  • lib/memstore.js: La classe MemoryCookieStore modificata per prevenire la prototype pollution.
  • test/ietf_data/parser.json: Aggiornato per correggere le date obsolete nei dati di test.
  • test/prototype_pollution_test.js: Test unitari per verificare che la prototype pollution sia corretta.
  • tough-cookie-2.5.0-PATCHED.tgz: La versione patchata del pacchetto tough-cookie.
Scarica lo strumento