JFrog Artifactory प्री-ऑथेंटिकेशन पूर्ण-श्रृंखला RCE पुनरुत्पादन परियोजना (CVE-2026-42018 / CVE-2026-65616 / CVE-2026-65615): पूर्ण आक्रमण श्रृंखला रिपोर्ट, 7.146.7 Docker पुनरुत्पादन डिलीवरेबल्स (EXP / परिनियोजन / बेसलाइन सत्यापन / payload नमूने / रिकवरी उपकरण)
केवल अधिकृत सुरक्षा परीक्षण, रक्षात्मक अनुसंधान और सुरक्षा शिक्षण के लिए। यह भेद्यता श्रृंखला विक्रेता द्वारा ठीक कर दी गई है (7.161.15+ में अपग्रेड करने की सलाह दी जाती है), कृपया इसे केवल एक बार उपयोग होने वाले पृथक प्रयोगात्मक वातावरण में पुनरुत्पादित करें। दूसरों के सिस्टम पर अनधिकृत रूप से इस रिपॉज़िटरी में वर्णित कोई भी कार्रवाई करना अवैध है, और इससे उत्पन्न होने वाले सभी परिणामों की ज़िम्मेदारी ऑपरेटर की स्वयं होगी।
यह रिपॉज़िटरी edrabb.fr द्वारा प्रकट की गई JFrog Artifactory प्री-ऑथेंटिकेशन RCE भेद्यता श्रृंखला का पूर्ण पुनरुत्पादन डिलीवरेबल है: आधिकारिक इमेज releases-docker.jfrog.io/jfrog/artifactory-oss:7.146.7 (7.146.x का एकमात्र आधिकारिक डिप्लॉयमेंट रूप: बाहरी PostgreSQL) के आधार पर 5-चरणीय हमला श्रृंखला का पूर्ण स्वचालित पुनरुत्पादन पूरा किया गया है, और "नए वातावरण से सीधे RCE निष्पादित" के बेसलाइन प्रयोग के माध्यम से पुनरुत्पादन की प्रामाणिकता सिद्ध की गई है (विवरण के लिए attack-chain-package/baseline/BASELINE-VERIFIED.md देखें)।
| चरण | चरण | CVE |
|---|---|---|
| Step 1 | ट्रेलिंग स्लैश प्रमाणीकरण बायपास, अनाम JWT प्राप्त करें (aud=*@*) | CVE-2026-42018 |
| Step 2 | access + refresh टोकन जोड़ी का आदान-प्रदान | CVE-2026-42018 |
| Step 3 | Router द्वारा jfrt@ सेवा ID की खोज → नकली admin JWT रीफ्रेश → वास्तविक हस्ताक्षरित व्यवस्थापक टोकन | CVE-2026-65616 |
| Step 4 | systemUpload द्वारा payload.zip अपलोड → system import द्वारा अनज़िप करके दुर्भावनापूर्ण logback.xml लिखें | — |
| Step 5 | Logback fileHeader द्वारा web.xml / CGI घटक डिस्क पर लिखें → Tomcat CGI प्री-ऑथेंटिकेशन RCE | CVE-2026-65615 |
├── 漏洞攻击链完整报告.md ← मुख्य रिपोर्ट (पुनरुत्पादन प्रामाणिकता बेसलाइन सत्यापन, सिद्धांत, प्रकटीकरण लेख से तुलना, सुधार सुझाव)
├── 复现报告.md ← 744 पंक्तियों की विस्तृत तकनीकी पुनरुत्पादन रिपोर्ट (स्रोत-स्तरीय सिद्धांत + मैनुअल चरण)
└── attack-chain-package/
├── README.md ← त्वरित शुरुआत (टारगेट डिप्लॉय / हमला शुरू करें / वातावरण पुनर्स्थापित करें)
├── exploit/
│ ├── exp.py ← पूर्ण श्रृंखला स्वचालित EXP (Python 3 मानक लाइब्रेरी, शून्य तृतीय-पक्ष निर्भरता)
│ └── forge_jwt.py ← Step 3 मैनुअल JWT फ़ोर्ज स्क्रिप्ट (exp.py से स्वतंत्र)
├── deploy/system.yaml ← Artifactory 7.146.7 कंटेनर माउंट कॉन्फ़िगरेशन (आधिकारिक इमेज की अनिवार्य PostgreSQL आवश्यकता)
├── baseline/ ← पुनरुत्पादन प्रामाणिकता बेसलाइन सत्यापन (नए वातावरण से सीधे RCE निष्पादन का प्रयोग रिकॉर्ड और कॉन्फ़िगरेशन)
├── payload-sample/ ← ऑफ़लाइन उत्पन्न payload घटक नमूने (exp.py --dump-payload का उत्पाद)
└── recovery/ ← वातावरण पुनर्स्थापन और सत्यापन स्क्रिप्ट (घटना प्रतिक्रिया संदर्भ)
# 1. 部署靶场(详见 attack-chain-package/README.md;需约 6 GB 磁盘与 8 GB 可用内存)
docker network create jfrog-net
docker run -d --name artifactory-pg --network jfrog-net \
-e POSTGRES_DB=artifactory -e POSTGRES_USER=artifactory -e POSTGRES_PASSWORD=artifactory \
postgres:15
docker run -d --name artifactory-rce --network jfrog-net -p 8081:8081 -p 8082:8082 \
-v <ABS_PATH>/attack-chain-package/deploy/system.yaml:/opt/jfrog/artifactory/var/etc/system.yaml \
releases-docker.jfrog.io/jfrog/artifactory-oss:7.146.7
# 等待 2–4 分钟,ping 返回 OK 即就绪
curl -s http://127.0.0.1:8082/artifactory/api/system/ping
# 2. 发起攻击(一次性模式,默认执行 id;Windows 宿主 python 为 2.x 时用 py -3)
python3 attack-chain-package/exploit/exp.py --target http://127.0.0.1:8082
# 3. 恢复环境(最简:销毁重建;原地恢复见 recovery/recover5.sh)
docker rm -f artifactory-rce
हमला webapp के लिए एकबारगी विनाशकारी है: RCE लागू होते ही Artifactory की मूल Web कार्यक्षमता नष्ट हो जाती है, कृपया एकबारगी प्रयोगात्मक कंटेनर का ही उपयोग करें।
attack-chain-package/payload-sample/payload.zip (अंतिम अपलोड वस्तु, आयात करने पर RCE ट्रिगर होता है) को base64 टेक्स्ट रूप में payload.zip.b64 के रूप में संग्रहीत किया गया है:
# Windows PowerShell
[IO.File]::WriteAllBytes("payload.zip", [Convert]::FromBase64String((Get-Content "payload.zip.b64" -Raw).Trim()))
# Linux / macOS
base64 -d payload.zip.b64 > payload.zip
admin / password (JFrog डिफ़ॉल्ट प्रारंभिक खाता; इस हमला श्रृंखला में पूरी प्रक्रिया प्री-ऑथेंटिकेटेड है, किसी भी क्रेडेंशियल का उपयोग नहीं किया जाता)