
🫖 Gitea CVE-2026-60004 के लिए अनुबंध-सहसंबंधित खोज और अधिकृत सत्यापन उपकरण
Gitea
diffpatchGit-hook रिमोट कोड एक्ज़ीक्यूशन भेद्यता के लिए एक स्टैंडअलोन डिस्कवरी, मूल्यांकन, और अनुबंध-सहसंबंधित सत्यापन उपकरण।
scanner.py पैठ परीक्षकों, रक्षकों, और सुरक्षा शोधकर्ताओं को एक निर्भरता-मुक्त उपकरण प्रदान करता है:
यह प्रोजेक्ट केवल अधिकृत सुरक्षा परीक्षण, रक्षात्मक सत्यापन, अनुसंधान, और शिक्षा के लिए प्रदान किया गया है। सक्रिय मोड केवल उन सिस्टमों के विरुद्ध चलाएं जिनके स्वामी आप हैं या जिनके मूल्यांकन के लिए आपके पास स्पष्ट लिखित अनुमति है। सभी लागू कानूनों, अनुबंधों, सगाई के नियमों, और प्रकटीकरण आवश्यकताओं का पालन करना आपकी ज़िम्मेदारी है।
लेखक और योगदानकर्ता दुरुपयोग, क्षति, सेवा व्यवधान, डेटा हानि, या कानूनी परिणामों के लिए ज़िम्मेदार नहीं हैं। सक्रिय PoC Gitea ऑपरेटिंग-सिस्टम उपयोगकर्ता के रूप में एक कमांड निष्पादित करता है और एक निजी रिपॉजिटरी बनाकर सर्वर स्थिति बदलता है। इसे किसी भी अन्य RCE सत्यापन उपकरण की तरह मानें।
CVE-2026-60004 Gitea की रिपॉजिटरी diffpatch वर्कफ़्लो को प्रभावित करता है। एक रिपॉजिटरी लेखक नियंत्रित पैच सामग्री प्रस्तुत कर सकता है जो साझा बेयर अस्थायी क्लोन में एक Git हुक स्थापित करता है। तैयार किए गए पैच को दो बार लागू करने से add/add टकराव उत्पन्न होता है और हुक Gitea सेवा खाते के रूप में निष्पादित होता है।
Forgejo और अन्य फोर्क स्वचालित रूप से भेद्य के रूप में वर्गीकृत नहीं हैं। उनके कार्यान्वयन की स्वतंत्र रूप से समीक्षा की जानी चाहिए।
सक्रिय मोड लक्ष्य सूची या वाइल्डकार्ड स्वीकार नहीं करते हैं।
PATH में Git उपलब्धdiscover के लिए एक LeakIX API कुंजीस्कैनर केवल Python की मानक लाइब्रेरी का उपयोग करता है। कोई pip install आवश्यक नहीं है।
git clone https://github.com/InfoSec-DB/CVE-2026-60004-Gitea-Validator.git
cd CVE-2026-60004-Gitea-Validator
python3 scanner.py --help
python3 scanner.py verify \
https://gitea.example \
--contract-number ENG-2026-001 \
--output evidence/version.json
python3 scanner.py recon \
https://gitea.example \
--contract-number ENG-2026-001 \
--output evidence/recon.json
संस्करण पहचान एक मूल्यांकन संकेत है, शोषण क्षमता का प्रमाण नहीं। बैकपोर्टेड पैच, कस्टम बिल्ड, रिवर्स प्रॉक्सी, और फोर्क मैन्युअल समीक्षा की आवश्यकता हो सकती है।
शेल इतिहास से पासवर्ड बाहर रखने के लिए इसे कमांड के लिए पर्यावरण में रखें:
GITEA_PASSWORD='replace-with-approved-test-password' \
python3 scanner.py confirm \
https://gitea.example \
--contract-number ENG-2026-001 \
--username audit-user \
--execute-poc \
--write-client-marker \
--output evidence/confirmation.json
जब तक स्वचालन के लिए --yes-i-am-authorized प्रदान नहीं किया जाता, confirm आपसे अनुबंध-बद्ध पुष्टि वाक्यांश टाइप करने के लिए कहता है। डिफ़ॉल्ट रिमोट कमांड id है।
इसका उपयोग केवल तभी करें जब सगाई के नियमों द्वारा खाता निर्माण की अनुमति हो:
python3 scanner.py confirm \
https://gitea.example \
--contract-number ENG-2026-001 \
--register-test-account \
--credential-log evidence/credentials.txt \
--execute-poc \
--write-client-marker \
--output evidence/confirmation.json
पासवर्ड केवल निजी क्रेडेंशियल लॉग में संग्रहीत होता है, JSON साक्ष्य या टर्मिनल परिणाम पैनल में डुप्लिकेट नहीं होता।
python3 scanner.py test \
https://gitea.example \
--contract-number ENG-2026-001
🚨 test एक सक्रिय सुविधा कमांड है। पंजीकरण सक्षम प्रभावित लक्ष्य पर, यह स्वचालित रूप से एक खाता और निजी रिपॉजिटरी बनाता है, अनुबंध मार्कर लिखता है, id चलाता है, और परिणाम afterdark-results/ के अंतर्गत सहेजता है। इसमें जानबूझकर कोई अतिरिक्त इंटरैक्टिव प्रॉम्प्ट नहीं है, इसलिए इसे आमंत्रित करना प्राधिकरण की स्वीकृति है।
संकीर्ण रूप से दायरे वाले, स्पष्ट रूप से अनुमोदित सत्यापन के लिए, confirm और test --cmd स्वीकार करते हैं। जब भी पर्याप्त हो, डिफ़ॉल्ट id प्रोफ़ाइल को प्राथमिकता दें।
GITEA_PASSWORD='replace-with-approved-test-password' \
python3 scanner.py confirm \
https://gitea.example \
--contract-number ENG-2026-001 \
--username audit-user \
--execute-poc \
--cmd 'uname -a' \
--output evidence/confirmation.json
export LEAKIX_API_KEY='replace-with-your-key'
python3 scanner.py discover \
--method app \
--pages 3 \
--output evidence/leakix.json
उस होस्ट से संपर्क किए बिना एक ज्ञात होस्ट के लिए LeakIX रिकॉर्ड का निरीक्षण करने के लिए:
python3 scanner.py discover \
--method host \
--target gitea.example \
--pages 1 \
--output evidence/leakix-host.json
डिस्कवरी परिणाम लीड हैं, सूचीबद्ध सिस्टम को स्कैन करने या शोषण करने का प्राधिकरण नहीं।
hooks/post-index-change फ़ाइल जोड़ने वाला पैच बनाता है।diffpatch API एंडपॉइंट पर दो बार प्रस्तुत करता है।0600 फ़ाइलों का उपयोग करके अनुबंध-सहसंबंधित साक्ष्य लिखता है और मौजूदा साक्ष्य को अधिलेखित करने से इनकार करता है।प्रमाणित HTTP रीडायरेक्ट चयनित लक्ष्य मूल तक सीमित हैं। Git आउटपुट पुनर्प्राप्ति भी प्राधिकरण हेडर सक्रिय होने पर रीडायरेक्ट अक्षम करता है।
सक्रिय रन उत्पन्न कर सकते हैं:
confirmation.json — टाइमस्टैम्प, लक्ष्य, खाता नाम, संस्करण मूल्यांकन, रिटर्न कोड, और कैप्चर किया गया आउटपुटconfirmation.command-output.txt — पूर्ण रिमोट कमांड आउटपुटcredentials.txt — उत्पन्न डिस्पोज़ेबल-खाता पासवर्ड, जब अनुरोध किया जाएembedded-result.txt सामग्रीइन फ़ाइलों में संवेदनशील सगाई डेटा हो सकता है। इन्हें शामिल .gitignore द्वारा अनदेखा किया जाता है, मोड 0600 के साथ बनाया जाता है, और आपकी साक्ष्य-हैंडलिंग नीति के अनुसार आराम पर एन्क्रिप्ट किया जाना चाहिए।
उपकरण जानबूझकर स्वचालित विलोपन से बचता है ताकि साक्ष्य समीक्षा के लिए उपलब्ध रहे। परीक्षण के बाद, एक लक्ष्य प्रशासक को चाहिए:
audit-* खाता हटाएं, यदि एक बनाया गया थाafterdark-* रिपॉजिटरी हटाएं/tmp/gitea-validation-*/client.txt मार्कर हटाएं1.27.1 या बाद में अपग्रेड करेंसफल PoC निष्पादन Gitea सेवा खाते के रूप में कमांड निष्पादन प्रदर्शित करता है। यह अकेले रूट पहुंच, दृढ़ता, पार्श्व गति, या अंतर्निहित होस्ट के समझौते को साबित नहीं करता।
id या whoami तक सीमितconfirm के लिए स्पष्ट --execute-poc स्विचशामिल परीक्षण स्थानीय हैं और कोई नेटवर्क अनुरोध नहीं करते:
python3 -m unittest discover -s tests -v
जिम्मेदार सुधारों का स्वागत है—विशेष रूप से संगतता सुधार, झूठी-सकारात्मक कमी, साक्ष्य-गुणवत्ता सुधार, और सुरक्षित सफाई वर्कफ़्लो। कृपया वास्तविक लक्ष्य विवरण, क्रेडेंशियल, निजी साक्ष्य, या हथियारबद्ध पेलोड जमा न करें।
इस उपकरण में ही सुरक्षा मुद्दे के लिए, SECURITY.md का पालन करें।
सावधान शोधकर्ताओं के लिए बनाया गया जो मानते हैं कि एक अच्छा PoC प्रतिलिपि योग्य, जिम्मेदार, और सफाई में उबाऊ होना चाहिए। 🛡️
| आइटम | विवरण |
|---|
| उत्पाद | Gitea |
| प्रभावित रिलीज़ | >= 1.17.0, < 1.27.1 |
| पैच की गई रिलीज़ | 1.27.1 |
| प्रभाव | Gitea OS उपयोगकर्ता के रूप में रिमोट कमांड निष्पादन |
| आवश्यक पहुंच | रिपॉजिटरी लेखन पहुंच; खुला पंजीकरण किसी हमलावर को इसे बनाने की अनुमति दे सकता है |
| सलाह | GHSA-rcr6-4jqh-j84m |
| मोड | नेटवर्क व्यवहार | लक्ष्य स्थिति बदलता है? | उद्देश्य |
|---|
discover | केवल LeakIX को क्वेरी करता है | नहीं | मौजूदा तृतीय-पक्ष इंडेक्स खोजता है; यह खोजे गए होस्ट से संपर्क नहीं करता |
recon | एक सटीक लक्ष्य | नहीं | निश्चित सार्वजनिक रूट और लक्ष्य-प्रकाशित Swagger दस्तावेज़ की सूची बनाता है |
verify | एक सटीक लक्ष्य | नहीं | /api/v1/version पढ़ता है और रिपोर्ट किए गए Gitea संस्करण को वर्गीकृत करता है |
test | एक सटीक लक्ष्य | हाँ | सुविधा प्रवाह: संस्करण गेट, पंजीकरण जांच, डिस्पोज़ेबल खाता, मार्कर, id, और साक्ष्य |
confirm | एक सटीक लक्ष्य | हाँ | अनुमोदित खाते या स्पष्ट डिस्पोज़ेबल पंजीकरण के साथ नियंत्रित पुष्टि |