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-2025-55182 — Analisi basata su CodeQL della vulnerabilità di prototype pollution CVE-2025-55182 nei React Server Components, con POC di exploit e query di rilevamento statico per l'attraversamento non sicuro delle proprietà. | Kitploit
Strumenti/GitHubGitHub/klassiker/cve-2025-55182
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceSicurezza WebPaper e RicercaApprendimento e Formazione
GitHubklassiker/cve-2025-55182

CVE-2025-55182

Analisi basata su CodeQL della vulnerabilità di prototype pollution CVE-2025-55182 nei React Server Components, con POC di exploit e query di rilevamento statico per l'attraversamento non sicuro delle proprietà.

Vedi Repository
8 mesi 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-2025-55182

Applicazione Vulnerabile

Costruisci ed esegui:

root@kitploit:~
docker compose build
docker compose run --rm --entrypoint 'npm install' node
docker compose run --rm --entrypoint 'npm run build' node
docker compose up

POC (da https://github.com/msanft/CVE-2025-55182):

root@kitploit:~
node poc.js

Sperimentazione con unbundled:

root@kitploit:~
yarn --immutable

node --conditions react-server app.js

CodeQL

Clona facebook/react e crea unbundled:

root@kitploit:~
yarn --immutable

yarn cross-env RELEASE_CHANNEL=experimental node ./scripts/rollup/build.js react-server-dom-webpack/ --type=NODE_DEV

cp ./build/node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js \
    codeql/${version}/

Prepara CodeQL:

root@kitploit:~
codeql database create db -l javascript -s codeql

cd queries && codeql pack install

codeql query run ./queries/PrototypeTraversal.ql -d db

TODO

  • Aggiungi una query per trovare Promise.resolve(userData)
    • dovrebbe trovare tutte le funzioni asincrone che risolvono con un oggetto definito dall'utente
    • questa è la posizione immediata dei problemi di esecuzione del codice
  • Aggiungi una query per trovare await non-native-promise
    • dovrebbe trovare tutti gli await di funzioni che non restituiscono una promise nativa
    • un chiamante potrebbe erroneamente usare await su un metodo che (a volte) restituisce dati grezzi

Risultati

Ha rilevato l'uso corretto in getOutlinedModel (aggiunto hasOwnProperty.call) e quello rimosso in createModelResolver (ora fulfillReference).

Non so perché la prima e la seconda puntino alla stessa posizione, mentre quella estratta in vuln.js no.

Esempi

In codeql/tests.js ci sono queste tre varianti:

root@kitploit:~
var value = {};
for (let i = 0; i < path.length; i++) {
  value = value[path[i]] // VarAccess
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c = value[path[i]] // VarDecl
  value = c
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c
  c = value[path[i]] // use VarRef
  value = c
}

Riferimento: https://codeql.github.com/docs/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs/

Scarica lo strumento
filenamesourcesink
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]Traversata del prototipo non sicura: la variabile 'parentObject' viene aggiornata con la propria proprietà all'interno di un ciclo.
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]Traversata del prototipo non sicura: la variabile 'parentObject' viene aggiornata con la propria proprietà all'interno di un ciclo.
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsvalue[path[i]]value[path[i]]Traversata del prototipo non sicura: la variabile 'value' viene aggiornata con la propria proprietà all'interno di un ciclo.
./tests.jsvalue[path[i]]cTraversata del prototipo non sicura: la variabile 'value' viene aggiornata con la propria proprietà all'interno di un ciclo.
./tests.jsvalue[path[i]]cTraversata del prototipo non sicura: la variabile 'value' viene aggiornata con la propria proprietà all'interno di un ciclo.
./tests.jsvalue[path[i]]value[path[i]]Traversata del prototipo non sicura: la variabile 'value' viene aggiornata con la propria proprietà all'interno di un ciclo.
./vuln.jsparentObject[reference[key]]parentObject[reference[key]]Traversata del prototipo non sicura: la variabile 'parentObject' viene aggiornata con la propria proprietà all'interno di un ciclo.
./vuln.jsvalue[path[i]]value[path[i]]Traversata del prototipo non sicura: la variabile 'value' viene aggiornata con la propria proprietà all'interno di un ciclo.